Author: akarasulu
Date: Wed Apr 7 18:57:22 2004
New Revision: 9919
Added:
incubator/directory/rms/
incubator/directory/rms/trunk/
incubator/directory/rms/trunk/api/
incubator/directory/rms/trunk/api/LICENSE.txt
incubator/directory/rms/trunk/api/api.iml
incubator/directory/rms/trunk/api/maven.log
incubator/directory/rms/trunk/api/maven.xml
incubator/directory/rms/trunk/api/project.properties
incubator/directory/rms/trunk/api/project.xml
incubator/directory/rms/trunk/api/src/
incubator/directory/rms/trunk/api/src/docbook/
incubator/directory/rms/trunk/api/src/images/
incubator/directory/rms/trunk/api/src/java/
incubator/directory/rms/trunk/api/src/java/org/
incubator/directory/rms/trunk/api/src/java/org/apache/
incubator/directory/rms/trunk/api/src/java/org/apache/rms/
incubator/directory/rms/trunk/api/src/java/org/apache/rms/Application.java
incubator/directory/rms/trunk/api/src/java/org/apache/rms/BitPermission.java
incubator/directory/rms/trunk/api/src/java/org/apache/rms/BitPermissionIterator.java
incubator/directory/rms/trunk/api/src/java/org/apache/rms/BitUtils.java
incubator/directory/rms/trunk/api/src/java/org/apache/rms/CacheEvent.java
incubator/directory/rms/trunk/api/src/java/org/apache/rms/CacheEventType.java
incubator/directory/rms/trunk/api/src/java/org/apache/rms/CacheListener.java
incubator/directory/rms/trunk/api/src/java/org/apache/rms/DefaultApplication.java
incubator/directory/rms/trunk/api/src/java/org/apache/rms/DefaultBitPermission.java
incubator/directory/rms/trunk/api/src/java/org/apache/rms/DefaultProfile.java
incubator/directory/rms/trunk/api/src/java/org/apache/rms/DefaultRole.java
incubator/directory/rms/trunk/api/src/java/org/apache/rms/DefaultUser.java
incubator/directory/rms/trunk/api/src/java/org/apache/rms/Profile.java
incubator/directory/rms/trunk/api/src/java/org/apache/rms/Rms.java
incubator/directory/rms/trunk/api/src/java/org/apache/rms/RmsException.java
incubator/directory/rms/trunk/api/src/java/org/apache/rms/RmsFactory.java
incubator/directory/rms/trunk/api/src/java/org/apache/rms/Role.java
incubator/directory/rms/trunk/api/src/java/org/apache/rms/User.java
incubator/directory/rms/trunk/api/src/java/org/apache/rms/package.html
incubator/directory/rms/trunk/api/src/test/
incubator/directory/rms/trunk/api/src/test/org/
incubator/directory/rms/trunk/api/src/test/org/apache/
incubator/directory/rms/trunk/api/src/test/org/apache/rms/
incubator/directory/rms/trunk/api/src/test/org/apache/rms/BitUtilsTest.java
incubator/directory/rms/trunk/api/xdocs/
incubator/directory/rms/trunk/api/xdocs/images/
incubator/directory/rms/trunk/api/xdocs/images/cache-classes-color.gif (contents, props changed)
incubator/directory/rms/trunk/api/xdocs/images/interface-aggregation-color.gif (contents, props changed)
incubator/directory/rms/trunk/api/xdocs/images/interface-aggregation.gif (contents, props changed)
incubator/directory/rms/trunk/api/xdocs/index.xml
incubator/directory/rms/trunk/api/xdocs/navigation.xml
incubator/directory/rms/trunk/gui/
incubator/directory/rms/trunk/gui/main/
incubator/directory/rms/trunk/gui/main/.classpath
incubator/directory/rms/trunk/gui/main/.project
incubator/directory/rms/trunk/gui/main/conf/
incubator/directory/rms/trunk/gui/main/conf/block.xml
incubator/directory/rms/trunk/gui/main/conf/config.xml
incubator/directory/rms/trunk/gui/main/gui-main.iml
incubator/directory/rms/trunk/gui/main/maven.log
incubator/directory/rms/trunk/gui/main/maven.xml
incubator/directory/rms/trunk/gui/main/project.properties
incubator/directory/rms/trunk/gui/main/project.xml
incubator/directory/rms/trunk/gui/main/src/
incubator/directory/rms/trunk/gui/main/src/docbook/
incubator/directory/rms/trunk/gui/main/src/images/
incubator/directory/rms/trunk/gui/main/src/java/
incubator/directory/rms/trunk/gui/main/src/java/org/
incubator/directory/rms/trunk/gui/main/src/java/org/apache/
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/.cvsignore
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/AboutBox.java
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/ActionMenuManager.java
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/DetailTableManager.java
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/Images.java
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/RmcMainFrame.java
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/RmcTableCellEditor.java
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/RmcTableCellRenderer.java
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/RmcTableModel.java
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/RmcTreeCellRenderer.java
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/RmsManagementConsole.java
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/TreePathUtils.java
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/.cvsignore
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/AddPermissionToApplicationHandler.java
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/AddRoleToProfileHandler.java
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/BaseMenuItemHandler.java
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/CreateApplicationHandler.java
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/CreatePermissionDialog.java
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/CreateProfileForUserHandler.java
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/CreateRoleForApplicationHandler.java
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/CreateUserHandler.java
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/DeleteApplicationHandler.java
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/DeletePermissionFromApplicationHandler.java
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/DeleteProfileFromUserHandler.java
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/DeleteRoleFromApplicationHandler.java
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/DeleteUserHandler.java
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/DenyPermissionForProfileHandler.java
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/GrantPermissionToProfileHandler.java
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/GrantPermissionToRoleHandler.java
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/HandlerTemplate.java
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/MenuHandler.java
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/MenuItemHandler.java
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/RefreshHandler.java
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/RemoveRoleFromProfileHandler.java
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/RenameApplicationHandler.java
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/RenamePermissionDialog.java
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/RenamePermissionHandler.java
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/RenameRoleHandler.java
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/RenameUserHandler.java
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/RevokeDenialFromProfileHandler.java
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/RevokeGrantFromProfileHandler.java
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/RevokePermissionFromRoleHandler.java
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/SubMenuHandler.java
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/closefile.gif (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/help.gif (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/.cvsignore
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/add2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/application.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/application_add.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/application_delete.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/application_new.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/application_server.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/at.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/bullet_ball_blue.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/bullet_ball_glass_blue.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/bullet_ball_glass_green.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/bullet_ball_glass_red.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/bullet_ball_glass_yellow.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/bullet_ball_green.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/bullet_ball_red.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/bullet_ball_yellow.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/bullet_square_blue.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/bullet_square_green.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/bullet_square_red.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/bullet_square_yellow.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/bullet_triangle_blue.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/bullet_triangle_green.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/bullet_triangle_red.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/bullet_triangle_yellow.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/delete2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/earth.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/earth_lock.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/environment.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/goblet_bronze.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/goblet_gold.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/goblet_gold_add.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/goblet_gold_delete.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/goblet_gold_new.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/goblet_gold_preferences.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/goblet_silver.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/home.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/id_card.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/id_card2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/id_card_add.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/id_card_delete.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/id_card_error.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/id_card_information.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/id_card_new.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/id_card_ok.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/id_card_preferences.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/id_card_view.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/id_card_warning.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/id_cards.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/joypad.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/key1.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/key1_add.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/key1_delete.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/key1_preferences.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/key2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/keys.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/replace2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/user1.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/user1_add.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/user1_delete.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/user1_preferences.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/user1_refresh.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/users1.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/users2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/users3.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/users3_preferences.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/users_back.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/users_family.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/woman1.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/woman2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/woman3.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/woman4.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/worker.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/.cvsignore
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/add2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/application.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/application_add.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/application_delete.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/application_new.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/application_server.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/at.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/bullet_ball_blue.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/bullet_ball_glass_blue.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/bullet_ball_glass_green.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/bullet_ball_glass_red.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/bullet_ball_glass_yellow.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/bullet_ball_green.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/bullet_ball_red.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/bullet_ball_yellow.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/bullet_square_blue.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/bullet_square_green.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/bullet_square_red.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/bullet_square_yellow.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/bullet_triangle_blue.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/bullet_triangle_green.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/bullet_triangle_red.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/bullet_triangle_yellow.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/delete2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/earth.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/earth_lock.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/environment.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/goblet_bronze.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/goblet_gold.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/goblet_gold_add.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/goblet_gold_delete.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/goblet_gold_new.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/goblet_gold_preferences.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/goblet_silver.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/home.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/id_card.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/id_card2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/id_card_add.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/id_card_delete.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/id_card_error.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/id_card_information.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/id_card_new.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/id_card_ok.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/id_card_preferences.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/id_card_view.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/id_card_warning.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/id_cards.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/joypad.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/key1.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/key1_add.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/key1_delete.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/key1_preferences.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/key2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/keys.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/replace2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/user1.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/user1_add.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/user1_delete.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/user1_preferences.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/user1_refresh.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/users1.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/users2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/users3.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/users3_preferences.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/users_back.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/users_family.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/woman1.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/woman2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/woman3.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/woman4.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/worker.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/.cvsignore
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/add2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/application.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/application_add.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/application_delete.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/application_new.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/application_server.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/at.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/bullet_ball_blue.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/bullet_ball_glass_blue.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/bullet_ball_glass_green.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/bullet_ball_glass_red.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/bullet_ball_glass_yellow.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/bullet_ball_green.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/bullet_ball_red.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/bullet_ball_yellow.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/bullet_square_blue.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/bullet_square_green.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/bullet_square_red.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/bullet_square_yellow.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/bullet_triangle_blue.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/bullet_triangle_green.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/bullet_triangle_red.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/bullet_triangle_yellow.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/delete2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/earth.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/earth_lock.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/environment.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/goblet_bronze.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/goblet_gold.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/goblet_gold_add.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/goblet_gold_delete.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/goblet_gold_new.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/goblet_gold_preferences.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/goblet_silver.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/home.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/id_card.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/id_card2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/id_card_add.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/id_card_delete.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/id_card_error.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/id_card_information.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/id_card_new.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/id_card_ok.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/id_card_preferences.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/id_card_view.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/id_card_warning.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/id_cards.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/joypad.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/key1.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/key1_add.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/key1_delete.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/key1_preferences.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/key2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/keys.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/replace2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/user1.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/user1_add.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/user1_delete.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/user1_preferences.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/user1_refresh.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/users1.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/users2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/users3.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/users3_preferences.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/users_back.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/users_family.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/woman1.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/woman2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/woman3.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/woman4.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/worker.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/.cvsignore
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/add2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/application.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/application_add.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/application_delete.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/application_new.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/application_server.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/at.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/bullet_ball_blue.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/bullet_ball_glass_blue.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/bullet_ball_glass_green.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/bullet_ball_glass_red.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/bullet_ball_glass_yellow.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/bullet_ball_green.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/bullet_ball_red.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/bullet_ball_yellow.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/bullet_square_blue.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/bullet_square_green.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/bullet_square_red.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/bullet_square_yellow.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/bullet_triangle_blue.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/bullet_triangle_green.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/bullet_triangle_red.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/bullet_triangle_yellow.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/delete2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/earth.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/earth_lock.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/environment.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/goblet_bronze.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/goblet_gold.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/goblet_gold_add.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/goblet_gold_delete.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/goblet_gold_new.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/goblet_gold_preferences.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/goblet_silver.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/home.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/id_card.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/id_card2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/id_card_add.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/id_card_delete.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/id_card_error.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/id_card_information.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/id_card_new.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/id_card_ok.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/id_card_preferences.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/id_card_view.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/id_card_warning.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/id_cards.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/joypad.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/key1.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/key1_add.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/key1_delete.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/key1_preferences.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/key2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/keys.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/replace2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/user1.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/user1_add.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/user1_delete.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/user1_preferences.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/user1_refresh.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/users1.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/users2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/users3.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/users3_family.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/users3_preferences.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/users_back.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/woman1.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/woman2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/woman3.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/woman4.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/worker.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/.cvsignore
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/add2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/application.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/application_add.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/application_delete.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/application_new.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/application_server.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/at.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/bullet_ball_blue.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/bullet_ball_glass_blue.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/bullet_ball_glass_green.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/bullet_ball_glass_red.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/bullet_ball_glass_yellow.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/bullet_ball_green.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/bullet_ball_red.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/bullet_ball_yellow.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/bullet_square_blue.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/bullet_square_green.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/bullet_square_red.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/bullet_square_yellow.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/bullet_triangle_blue.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/bullet_triangle_green.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/bullet_triangle_red.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/bullet_triangle_yellow.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/delete2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/earth.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/earth_lock.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/environment.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/goblet_bronze.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/goblet_gold.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/goblet_gold_add.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/goblet_gold_delete.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/goblet_gold_new.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/goblet_gold_preferences.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/goblet_silver.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/home.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/id_card.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/id_card2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/id_card_add.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/id_card_delete.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/id_card_error.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/id_card_information.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/id_card_new.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/id_card_ok.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/id_card_preferences.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/id_card_view.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/id_card_warning.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/id_cards.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/joypad.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/key1.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/key1_add.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/key1_delete.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/key1_preferences.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/key2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/keys.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/replace2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/user1.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/user1_add.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/user1_delete.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/user1_preferences.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/user1_refresh.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/users1.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/users2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/users3.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/users3_preferences.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/users_back.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/users_family.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/woman1.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/woman2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/woman3.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/woman4.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/worker.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/.cvsignore
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/add2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/application.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/application_add.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/application_delete.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/application_new.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/application_server.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/at.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/bullet_ball_blue.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/bullet_ball_glass_blue.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/bullet_ball_glass_green.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/bullet_ball_glass_red.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/bullet_ball_glass_yellow.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/bullet_ball_green.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/bullet_ball_red.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/bullet_ball_yellow.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/bullet_square_blue.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/bullet_square_green.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/bullet_square_red.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/bullet_square_yellow.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/bullet_triangle_blue.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/bullet_triangle_green.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/bullet_triangle_red.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/bullet_triangle_yellow.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/delete2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/earth.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/earth_lock.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/environment.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/goblet_bronze.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/goblet_gold.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/goblet_gold_add.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/goblet_gold_delete.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/goblet_gold_new.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/goblet_gold_preferences.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/goblet_silver.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/home.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/id_card.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/id_card2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/id_card_add.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/id_card_delete.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/id_card_error.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/id_card_information.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/id_card_new.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/id_card_ok.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/id_card_preferences.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/id_card_view.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/id_card_warning.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/id_cards.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/joypad.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/key1.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/key1_add.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/key1_delete.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/key1_preferences.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/key2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/keys.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/replace2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/user1.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/user1_add.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/user1_delete.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/user1_preferences.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/user1_refresh.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/users1.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/users2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/users3.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/users3_preferences.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/users_back.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/users_family.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/woman1.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/woman2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/woman3.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/woman4.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/worker.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/.cvsignore
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/add2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/application.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/application_add.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/application_delete.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/application_new.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/application_server.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/at.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/bullet_ball_blue.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/bullet_ball_glass_blue.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/bullet_ball_glass_green.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/bullet_ball_glass_red.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/bullet_ball_glass_yellow.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/bullet_ball_green.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/bullet_ball_red.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/bullet_ball_yellow.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/bullet_square_blue.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/bullet_square_green.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/bullet_square_red.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/bullet_square_yellow.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/bullet_triangle_blue.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/bullet_triangle_green.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/bullet_triangle_red.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/bullet_triangle_yellow.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/delete2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/earth_lock.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/environment.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/goblet_bronze.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/goblet_gold.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/goblet_gold_add.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/goblet_gold_delete.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/goblet_gold_new.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/goblet_gold_preferences.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/goblet_silver.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/home.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/id_card.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/id_card2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/id_card_add.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/id_card_delete.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/id_card_error.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/id_card_information.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/id_card_new.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/id_card_ok.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/id_card_preferences.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/id_card_view.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/id_card_warning.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/id_cards.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/joypad.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/key1.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/key1_add.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/key1_delete.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/key1_preferences.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/key2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/keys.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/replace2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/user1.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/user1_add.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/user1_delete.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/user1_preferences.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/user1_refresh.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/users1.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/users2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/users3.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/users3_preferences.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/users_back.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/users_family.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/woman1.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/woman2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/woman3.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/woman4.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/worker.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/.cvsignore
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/add2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/application.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/application_add.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/application_delete.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/application_new.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/application_server.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/at.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/bullet_ball_blue.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/bullet_ball_glass_blue.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/bullet_ball_glass_green.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/bullet_ball_glass_red.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/bullet_ball_glass_yellow.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/bullet_ball_green.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/bullet_ball_red.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/bullet_ball_yellow.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/bullet_square_blue.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/bullet_square_green.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/bullet_square_red.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/bullet_square_yellow.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/bullet_triangle_blue.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/bullet_triangle_green.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/bullet_triangle_red.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/bullet_triangle_yellow.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/delete2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/earth_lock.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/environment.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/goblet_bronze.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/goblet_gold.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/goblet_gold_add.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/goblet_gold_delete.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/goblet_gold_new.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/goblet_gold_preferences.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/goblet_silver.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/home.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/id_card.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/id_card2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/id_card_add.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/id_card_delete.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/id_card_error.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/id_card_information.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/id_card_new.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/id_card_ok.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/id_card_preferences.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/id_card_view.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/id_card_warning.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/id_cards.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/joypad.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/key1.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/key1_add.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/key1_delete.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/key1_preferences.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/key2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/keys.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/replace2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/user1.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/user1_add.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/user1_delete.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/user1_preferences.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/user1_refresh.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/users1.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/users2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/users3.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/users3_preferences.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/users_back.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/users_family.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/woman1.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/woman2.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/woman3.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/woman4.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/worker.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/status.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/openfile.gif (contents, props changed)
incubator/directory/rms/trunk/gui/main/xdocs/
incubator/directory/rms/trunk/gui/main/xdocs/images/
incubator/directory/rms/trunk/gui/main/xdocs/images/mmc.png (contents, props changed)
incubator/directory/rms/trunk/gui/main/xdocs/index.xml
incubator/directory/rms/trunk/gui/main/xdocs/navigation.xml
incubator/directory/rms/trunk/gui/main/xdocs/requirements.xml
incubator/directory/rms/trunk/gui/main/xdocs/rt.xml
incubator/directory/rms/trunk/gui/navtree/
incubator/directory/rms/trunk/gui/navtree/.classpath
incubator/directory/rms/trunk/gui/navtree/.project
incubator/directory/rms/trunk/gui/navtree/navtree.iml
incubator/directory/rms/trunk/gui/navtree/project.xml
incubator/directory/rms/trunk/gui/navtree/src/
incubator/directory/rms/trunk/gui/navtree/src/java/
incubator/directory/rms/trunk/gui/navtree/src/java/org/
incubator/directory/rms/trunk/gui/navtree/src/java/org/apache/
incubator/directory/rms/trunk/gui/navtree/src/java/org/apache/rms/
incubator/directory/rms/trunk/gui/navtree/src/java/org/apache/rms/ui/
incubator/directory/rms/trunk/gui/navtree/src/java/org/apache/rms/ui/navtree/
incubator/directory/rms/trunk/gui/navtree/src/java/org/apache/rms/ui/navtree/BeanTreeNode.java
incubator/directory/rms/trunk/gui/navtree/src/java/org/apache/rms/ui/navtree/ContainerTreeNode.java
incubator/directory/rms/trunk/gui/navtree/src/java/org/apache/rms/ui/navtree/ContainmentTreeNode.java
incubator/directory/rms/trunk/gui/ocmm/
incubator/directory/rms/trunk/gui/ocmm/api/
incubator/directory/rms/trunk/gui/ocmm/api/.classpath
incubator/directory/rms/trunk/gui/ocmm/api/.project
incubator/directory/rms/trunk/gui/ocmm/api/maven.log
incubator/directory/rms/trunk/gui/ocmm/api/maven.xml
incubator/directory/rms/trunk/gui/ocmm/api/ocmm-api.iml
incubator/directory/rms/trunk/gui/ocmm/api/project.xml
incubator/directory/rms/trunk/gui/ocmm/api/src/
incubator/directory/rms/trunk/gui/ocmm/api/src/java/
incubator/directory/rms/trunk/gui/ocmm/api/src/java/org/
incubator/directory/rms/trunk/gui/ocmm/api/src/java/org/apache/
incubator/directory/rms/trunk/gui/ocmm/api/src/java/org/apache/rms/
incubator/directory/rms/trunk/gui/ocmm/api/src/java/org/apache/rms/ui/
incubator/directory/rms/trunk/gui/ocmm/api/src/java/org/apache/rms/ui/ocmm/
incubator/directory/rms/trunk/gui/ocmm/api/src/java/org/apache/rms/ui/ocmm/Action.java
incubator/directory/rms/trunk/gui/ocmm/api/src/java/org/apache/rms/ui/ocmm/Container.java
incubator/directory/rms/trunk/gui/ocmm/api/src/java/org/apache/rms/ui/ocmm/ContainmentMetadata.java
incubator/directory/rms/trunk/gui/ocmm/api/src/java/org/apache/rms/ui/ocmm/ContainmentModel.java
incubator/directory/rms/trunk/gui/ocmm/api/src/java/org/apache/rms/ui/ocmm/ContextUtils.java
incubator/directory/rms/trunk/gui/ocmm/api/src/java/org/apache/rms/ui/ocmm/DefaultAction.java
incubator/directory/rms/trunk/gui/ocmm/api/src/java/org/apache/rms/ui/ocmm/DefaultContainer.java
incubator/directory/rms/trunk/gui/ocmm/api/src/java/org/apache/rms/ui/ocmm/DefaultContainmentMetadata.java
incubator/directory/rms/trunk/gui/ocmm/api/src/java/org/apache/rms/ui/ocmm/DefaultContainmentModel.java
incubator/directory/rms/trunk/gui/ocmm/api/src/java/org/apache/rms/ui/ocmm/DefaultIconUsage.java
incubator/directory/rms/trunk/gui/ocmm/api/src/java/org/apache/rms/ui/ocmm/IconUsage.java
incubator/directory/rms/trunk/gui/ocmm/api/src/java/org/apache/rms/ui/ocmm/package.html
incubator/directory/rms/trunk/gui/ocmm/impl/
incubator/directory/rms/trunk/gui/ocmm/impl/.classpath
incubator/directory/rms/trunk/gui/ocmm/impl/.project
incubator/directory/rms/trunk/gui/ocmm/impl/conf/
incubator/directory/rms/trunk/gui/ocmm/impl/conf/block.xml
incubator/directory/rms/trunk/gui/ocmm/impl/conf/config.xml
incubator/directory/rms/trunk/gui/ocmm/impl/maven.log
incubator/directory/rms/trunk/gui/ocmm/impl/maven.xml
incubator/directory/rms/trunk/gui/ocmm/impl/merlin.properties
incubator/directory/rms/trunk/gui/ocmm/impl/ocmm-impl.iml
incubator/directory/rms/trunk/gui/ocmm/impl/project.xml
incubator/directory/rms/trunk/gui/ocmm/impl/src/
incubator/directory/rms/trunk/gui/ocmm/impl/src/java/
incubator/directory/rms/trunk/gui/ocmm/impl/src/java/org/
incubator/directory/rms/trunk/gui/ocmm/impl/src/java/org/apache/
incubator/directory/rms/trunk/gui/ocmm/impl/src/java/org/apache/rms/
incubator/directory/rms/trunk/gui/ocmm/impl/src/java/org/apache/rms/ui/
incubator/directory/rms/trunk/gui/ocmm/impl/src/java/org/apache/rms/ui/ocmm/
incubator/directory/rms/trunk/gui/ocmm/impl/src/java/org/apache/rms/ui/ocmm/impl/
incubator/directory/rms/trunk/gui/ocmm/impl/src/java/org/apache/rms/ui/ocmm/impl/MerlinOcmmFactory.java
incubator/directory/rms/trunk/gui/ocmm/impl/src/java/org/apache/rms/ui/ocmm/impl/MerlinOcmmFactory.xconfig
incubator/directory/rms/trunk/gui/ocmm/impl/src/test/
incubator/directory/rms/trunk/gui/ocmm/impl/src/test/org/
incubator/directory/rms/trunk/gui/ocmm/impl/src/test/org/apache/
incubator/directory/rms/trunk/gui/ocmm/impl/src/test/org/apache/rms/
incubator/directory/rms/trunk/gui/ocmm/impl/src/test/org/apache/rms/ui/
incubator/directory/rms/trunk/gui/ocmm/impl/src/test/org/apache/rms/ui/ocmm/
incubator/directory/rms/trunk/gui/ocmm/impl/src/test/org/apache/rms/ui/ocmm/test/
incubator/directory/rms/trunk/gui/ocmm/impl/src/test/org/apache/rms/ui/ocmm/test/MerlinOcmmFactoryTest.java
incubator/directory/rms/trunk/gui/ocmm/maven.log
incubator/directory/rms/trunk/gui/ocmm/maven.xml
incubator/directory/rms/trunk/gui/ocmm/project.properties
incubator/directory/rms/trunk/gui/ocmm/project.xml
incubator/directory/rms/trunk/gui/ocmm/spi/
incubator/directory/rms/trunk/gui/ocmm/spi/.classpath
incubator/directory/rms/trunk/gui/ocmm/spi/.project
incubator/directory/rms/trunk/gui/ocmm/spi/maven.log
incubator/directory/rms/trunk/gui/ocmm/spi/maven.xml
incubator/directory/rms/trunk/gui/ocmm/spi/ocmm-spi.iml
incubator/directory/rms/trunk/gui/ocmm/spi/project.xml
incubator/directory/rms/trunk/gui/ocmm/spi/src/
incubator/directory/rms/trunk/gui/ocmm/spi/src/java/
incubator/directory/rms/trunk/gui/ocmm/spi/src/java/org/
incubator/directory/rms/trunk/gui/ocmm/spi/src/java/org/apache/
incubator/directory/rms/trunk/gui/ocmm/spi/src/java/org/apache/rms/
incubator/directory/rms/trunk/gui/ocmm/spi/src/java/org/apache/rms/ui/
incubator/directory/rms/trunk/gui/ocmm/spi/src/java/org/apache/rms/ui/ocmm/
incubator/directory/rms/trunk/gui/ocmm/spi/src/java/org/apache/rms/ui/ocmm/spi/
incubator/directory/rms/trunk/gui/ocmm/spi/src/java/org/apache/rms/ui/ocmm/spi/ContainmentModelFactory.java
incubator/directory/rms/trunk/gui/ocmm/spi/src/java/org/apache/rms/ui/ocmm/spi/ModelFactoryMonitor.java
incubator/directory/rms/trunk/gui/ocmm/spi/src/java/org/apache/rms/ui/ocmm/spi/ModelFactoryMonitorAdapter.java
incubator/directory/rms/trunk/gui/ocmm/spi/src/java/org/apache/rms/ui/ocmm/spi/package.html
incubator/directory/rms/trunk/gui/ocmm/xdocs/
incubator/directory/rms/trunk/gui/ocmm/xdocs/index.xml
incubator/directory/rms/trunk/gui/ocmm/xdocs/navigation.xml
incubator/directory/rms/trunk/gui/ocmm/xdocs/site.jsl
incubator/directory/rms/trunk/gui/ocmm/xdocs/structure/
incubator/directory/rms/trunk/gui/ocmm/xdocs/structure/index.xml
incubator/directory/rms/trunk/gui/ocmm/xdocs/structure/navigation.xml
incubator/directory/rms/trunk/gui/ocmm/xdocs/stylesheet.css
incubator/directory/rms/trunk/jdbc/
incubator/directory/rms/trunk/jdbc/jdbc.iml
incubator/directory/rms/trunk/jdbc/maven.log
incubator/directory/rms/trunk/jdbc/maven.xml
incubator/directory/rms/trunk/jdbc/project.properties
incubator/directory/rms/trunk/jdbc/project.xml
incubator/directory/rms/trunk/jdbc/src/
incubator/directory/rms/trunk/jdbc/src/docbook/
incubator/directory/rms/trunk/jdbc/src/images/
incubator/directory/rms/trunk/jdbc/src/java/
incubator/directory/rms/trunk/jdbc/src/java/org/
incubator/directory/rms/trunk/jdbc/src/java/org/apache/
incubator/directory/rms/trunk/jdbc/src/java/org/apache/rms/
incubator/directory/rms/trunk/jdbc/src/java/org/apache/rms/jdbc/
incubator/directory/rms/trunk/jdbc/src/java/org/apache/rms/jdbc/JdbcApplicationFactory.java
incubator/directory/rms/trunk/jdbc/src/java/org/apache/rms/jdbc/JdbcPermFactory.java
incubator/directory/rms/trunk/jdbc/src/java/org/apache/rms/jdbc/JdbcProfileFactory.java
incubator/directory/rms/trunk/jdbc/src/java/org/apache/rms/jdbc/JdbcRms.java
incubator/directory/rms/trunk/jdbc/src/java/org/apache/rms/jdbc/JdbcRmsFactory.java
incubator/directory/rms/trunk/jdbc/src/java/org/apache/rms/jdbc/JdbcRoleFactory.java
incubator/directory/rms/trunk/jdbc/src/java/org/apache/rms/jdbc/JdbcUserFactory.java
incubator/directory/rms/trunk/jdbc/src/java/org/apache/rms/jdbc/oracle/
incubator/directory/rms/trunk/jdbc/src/java/org/apache/rms/jdbc/oracle/GrantCalculations.java
incubator/directory/rms/trunk/jdbc/src/java/org/apache/rms/jdbc/oracle/PermissionConstraints.java
incubator/directory/rms/trunk/jdbc/src/java/org/apache/rms/jdbc/oracle/RawFunctions.java
incubator/directory/rms/trunk/jdbc/src/java/org/apache/rms/jdbc/utils/
incubator/directory/rms/trunk/jdbc/src/java/org/apache/rms/jdbc/utils/PropertiesDataSource.java
incubator/directory/rms/trunk/jdbc/src/sql/
incubator/directory/rms/trunk/jdbc/src/sql/rms-oracle.sql
incubator/directory/rms/trunk/jdbc/src/sql/rms-test-data.sql
incubator/directory/rms/trunk/jdbc/src/test/
incubator/directory/rms/trunk/jdbc/src/test/org/
incubator/directory/rms/trunk/jdbc/src/test/org/apache/
incubator/directory/rms/trunk/jdbc/src/test/org/apache/rms/
incubator/directory/rms/trunk/jdbc/src/test/org/apache/rms/jdbc/
incubator/directory/rms/trunk/jdbc/src/test/org/apache/rms/jdbc/JdbcApplicationFactoryTest.java
incubator/directory/rms/trunk/jdbc/src/test/org/apache/rms/jdbc/JdbcPermFactoryTest.java
incubator/directory/rms/trunk/jdbc/src/test/org/apache/rms/jdbc/JdbcRoleFactoryTest.java
incubator/directory/rms/trunk/jdbc/xdocs/
incubator/directory/rms/trunk/jdbc/xdocs/images/
incubator/directory/rms/trunk/jdbc/xdocs/images/rms-database-schema.gif (contents, props changed)
incubator/directory/rms/trunk/jdbc/xdocs/index.xml
incubator/directory/rms/trunk/jdbc/xdocs/navigation.xml
incubator/directory/rms/trunk/jdbm/
incubator/directory/rms/trunk/jdbm/jdbm.iml
incubator/directory/rms/trunk/jdbm/src/
incubator/directory/rms/trunk/jdbm/src/java/
incubator/directory/rms/trunk/jdbm/src/java/org/
incubator/directory/rms/trunk/jdbm/src/java/org/apache/
incubator/directory/rms/trunk/jdbm/src/java/org/apache/rms/
incubator/directory/rms/trunk/jdbm/src/java/org/apache/rms/jdbm/
incubator/directory/rms/trunk/jdbm/xdocs/
incubator/directory/rms/trunk/jdbm/xdocs/index.xml
incubator/directory/rms/trunk/jdbm/xdocs/navigation.xml
incubator/directory/rms/trunk/je/
incubator/directory/rms/trunk/je/je.iml
incubator/directory/rms/trunk/je/maven.xml
incubator/directory/rms/trunk/je/project.properties
incubator/directory/rms/trunk/je/project.xml
incubator/directory/rms/trunk/je/src/
incubator/directory/rms/trunk/je/src/java/
incubator/directory/rms/trunk/je/src/java/org/
incubator/directory/rms/trunk/je/src/java/org/apache/
incubator/directory/rms/trunk/je/src/java/org/apache/rms/
incubator/directory/rms/trunk/je/src/java/org/apache/rms/je/
incubator/directory/rms/trunk/je/src/java/org/apache/rms/je/AbstractJeTest.java
incubator/directory/rms/trunk/je/src/java/org/apache/rms/je/JePermFactory.java
incubator/directory/rms/trunk/je/src/java/org/apache/rms/je/PermMapTupleBinding.java
incubator/directory/rms/trunk/je/src/test/
incubator/directory/rms/trunk/je/src/test/org/
incubator/directory/rms/trunk/je/src/test/org/apache/
incubator/directory/rms/trunk/je/src/test/org/apache/rms/
incubator/directory/rms/trunk/je/src/test/org/apache/rms/je/
incubator/directory/rms/trunk/je/src/test/org/apache/rms/je/PermMapTupleBindingTest.java
incubator/directory/rms/trunk/je/xdocs/
incubator/directory/rms/trunk/je/xdocs/index.xml
incubator/directory/rms/trunk/je/xdocs/navigation.xml
incubator/directory/rms/trunk/jndi/
incubator/directory/rms/trunk/maven.xml
incubator/directory/rms/trunk/project.properties
incubator/directory/rms/trunk/project.xml
incubator/directory/rms/trunk/rms-trunk.ipr
incubator/directory/rms/trunk/rms-trunk.iws
incubator/directory/rms/trunk/spi/
incubator/directory/rms/trunk/spi/.classpath
incubator/directory/rms/trunk/spi/.project
incubator/directory/rms/trunk/spi/maven.log
incubator/directory/rms/trunk/spi/maven.xml
incubator/directory/rms/trunk/spi/project.properties
incubator/directory/rms/trunk/spi/project.xml
incubator/directory/rms/trunk/spi/spi.iml
incubator/directory/rms/trunk/spi/src/
incubator/directory/rms/trunk/spi/src/docbook/
incubator/directory/rms/trunk/spi/src/images/
incubator/directory/rms/trunk/spi/src/java/
incubator/directory/rms/trunk/spi/src/java/org/
incubator/directory/rms/trunk/spi/src/java/org/apache/
incubator/directory/rms/trunk/spi/src/java/org/apache/rms/
incubator/directory/rms/trunk/spi/src/java/org/apache/rms/spi/
incubator/directory/rms/trunk/spi/src/java/org/apache/rms/spi/ApplicationFactory.java
incubator/directory/rms/trunk/spi/src/java/org/apache/rms/spi/ApplicationFactoryMonitor.java
incubator/directory/rms/trunk/spi/src/java/org/apache/rms/spi/ApplicationFactoryMonitorAdapter.java
incubator/directory/rms/trunk/spi/src/java/org/apache/rms/spi/CachingFactory.java
incubator/directory/rms/trunk/spi/src/java/org/apache/rms/spi/MutableApplication.java
incubator/directory/rms/trunk/spi/src/java/org/apache/rms/spi/MutableBitPermission.java
incubator/directory/rms/trunk/spi/src/java/org/apache/rms/spi/MutableProfile.java
incubator/directory/rms/trunk/spi/src/java/org/apache/rms/spi/MutableRms.java
incubator/directory/rms/trunk/spi/src/java/org/apache/rms/spi/MutableRole.java
incubator/directory/rms/trunk/spi/src/java/org/apache/rms/spi/MutableUser.java
incubator/directory/rms/trunk/spi/src/java/org/apache/rms/spi/PermissionFactory.java
incubator/directory/rms/trunk/spi/src/java/org/apache/rms/spi/PermissionFactoryMonitor.java
incubator/directory/rms/trunk/spi/src/java/org/apache/rms/spi/PermissionFactoryMonitorAdapter.java
incubator/directory/rms/trunk/spi/src/java/org/apache/rms/spi/ProfileFactory.java
incubator/directory/rms/trunk/spi/src/java/org/apache/rms/spi/ProfileFactoryMonitor.java
incubator/directory/rms/trunk/spi/src/java/org/apache/rms/spi/ProfileFactoryMonitorAdapter.java
incubator/directory/rms/trunk/spi/src/java/org/apache/rms/spi/RoleFactory.java
incubator/directory/rms/trunk/spi/src/java/org/apache/rms/spi/RoleFactoryMonitor.java
incubator/directory/rms/trunk/spi/src/java/org/apache/rms/spi/RoleFactoryMonitorAdapter.java
incubator/directory/rms/trunk/spi/src/java/org/apache/rms/spi/UserFactory.java
incubator/directory/rms/trunk/spi/src/java/org/apache/rms/spi/UserFactoryMonitor.java
incubator/directory/rms/trunk/spi/src/java/org/apache/rms/spi/UserFactoryMonitorAdapter.java
incubator/directory/rms/trunk/spi/xdocs/
incubator/directory/rms/trunk/spi/xdocs/images/
incubator/directory/rms/trunk/spi/xdocs/images/application-api-classes.gif (contents, props changed)
incubator/directory/rms/trunk/spi/xdocs/images/application-spi-classes.gif (contents, props changed)
incubator/directory/rms/trunk/spi/xdocs/images/cache-api-classes.gif (contents, props changed)
incubator/directory/rms/trunk/spi/xdocs/images/default-bit-permission-api-classes.gif (contents, props changed)
incubator/directory/rms/trunk/spi/xdocs/images/default-role-api-classes.gif (contents, props changed)
incubator/directory/rms/trunk/spi/xdocs/images/permission-spi-classes.gif (contents, props changed)
incubator/directory/rms/trunk/spi/xdocs/images/profile-api-classes.gif (contents, props changed)
incubator/directory/rms/trunk/spi/xdocs/images/profile-spi-classes.gif (contents, props changed)
incubator/directory/rms/trunk/spi/xdocs/images/role-spi-classes.gif (contents, props changed)
incubator/directory/rms/trunk/spi/xdocs/images/spi-classes.gif (contents, props changed)
incubator/directory/rms/trunk/spi/xdocs/images/user-api-classes.gif (contents, props changed)
incubator/directory/rms/trunk/spi/xdocs/images/user-spi-classes.gif (contents, props changed)
incubator/directory/rms/trunk/spi/xdocs/index.xml
incubator/directory/rms/trunk/spi/xdocs/navigation.xml
incubator/directory/rms/trunk/todo.txt
incubator/directory/rms/trunk/xdocs/
Log:
Importing RMS
Added: incubator/directory/rms/trunk/api/LICENSE.txt
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/api/LICENSE.txt Wed Apr 7 18:57:22 2004
@@ -0,0 +1,204 @@
+/*
+ * Apache License
+ * Version 2.0, January 2004
+ * http://www.apache.org/licenses/
+ *
+ * TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+ *
+ * 1. Definitions.
+ *
+ * "License" shall mean the terms and conditions for use, reproduction,
+ * and distribution as defined by Sections 1 through 9 of this document.
+ *
+ * "Licensor" shall mean the copyright owner or entity authorized by
+ * the copyright owner that is granting the License.
+ *
+ * "Legal Entity" shall mean the union of the acting entity and all
+ * other entities that control, are controlled by, or are under common
+ * control with that entity. For the purposes of this definition,
+ * "control" means (i) the power, direct or indirect, to cause the
+ * direction or management of such entity, whether by contract or
+ * otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ * outstanding shares, or (iii) beneficial ownership of such entity.
+ *
+ * "You" (or "Your") shall mean an individual or Legal Entity
+ * exercising permissions granted by this License.
+ *
+ * "Source" form shall mean the preferred form for making modifications,
+ * including but not limited to software source code, documentation
+ * source, and configuration files.
+ *
+ * "Object" form shall mean any form resulting from mechanical
+ * transformation or translation of a Source form, including but
+ * not limited to compiled object code, generated documentation,
+ * and conversions to other media types.
+ *
+ * "Work" shall mean the work of authorship, whether in Source or
+ * Object form, made available under the License, as indicated by a
+ * copyright notice that is included in or attached to the work
+ * (an example is provided in the Appendix below).
+ *
+ * "Derivative Works" shall mean any work, whether in Source or Object
+ * form, that is based on (or derived from) the Work and for which the
+ * editorial revisions, annotations, elaborations, or other modifications
+ * represent, as a whole, an original work of authorship. For the purposes
+ * of this License, Derivative Works shall not include works that remain
+ * separable from, or merely link (or bind by name) to the interfaces of,
+ * the Work and Derivative Works thereof.
+ *
+ * "Contribution" shall mean any work of authorship, including
+ * the original version of the Work and any modifications or additions
+ * to that Work or Derivative Works thereof, that is intentionally
+ * submitted to Licensor for inclusion in the Work by the copyright owner
+ * or by an individual or Legal Entity authorized to submit on behalf of
+ * the copyright owner. For the purposes of this definition, "submitted"
+ * means any form of electronic, verbal, or written communication sent
+ * to the Licensor or its representatives, including but not limited to
+ * communication on electronic mailing lists, source code control systems,
+ * and issue tracking systems that are managed by, or on behalf of, the
+ * Licensor for the purpose of discussing and improving the Work, but
+ * excluding communication that is conspicuously marked or otherwise
+ * designated in writing by the copyright owner as "Not a Contribution."
+ *
+ * "Contributor" shall mean Licensor and any individual or Legal Entity
+ * on behalf of whom a Contribution has been received by Licensor and
+ * subsequently incorporated within the Work.
+ *
+ * 2. Grant of Copyright License. Subject to the terms and conditions of
+ * this License, each Contributor hereby grants to You a perpetual,
+ * worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ * copyright license to reproduce, prepare Derivative Works of,
+ * publicly display, publicly perform, sublicense, and distribute the
+ * Work and such Derivative Works in Source or Object form.
+ *
+ * 3. Grant of Patent License. Subject to the terms and conditions of
+ * this License, each Contributor hereby grants to You a perpetual,
+ * worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ * (except as stated in this section) patent license to make, have made,
+ * use, offer to sell, sell, import, and otherwise transfer the Work,
+ * where such license applies only to those patent claims licensable
+ * by such Contributor that are necessarily infringed by their
+ * Contribution(s) alone or by combination of their Contribution(s)
+ * with the Work to which such Contribution(s) was submitted. If You
+ * institute patent litigation against any entity (including a
+ * cross-claim or counterclaim in a lawsuit) alleging that the Work
+ * or a Contribution incorporated within the Work constitutes direct
+ * or contributory patent infringement, then any patent licenses
+ * granted to You under this License for that Work shall terminate
+ * as of the date such litigation is filed.
+ *
+ * 4. Redistribution. You may reproduce and distribute copies of the
+ * Work or Derivative Works thereof in any medium, with or without
+ * modifications, and in Source or Object form, provided that You
+ * meet the following conditions:
+ *
+ * (a) You must give any other recipients of the Work or
+ * Derivative Works a copy of this License; and
+ *
+ * (b) You must cause any modified files to carry prominent notices
+ * stating that You changed the files; and
+ *
+ * (c) You must retain, in the Source form of any Derivative Works
+ * that You distribute, all copyright, patent, trademark, and
+ * attribution notices from the Source form of the Work,
+ * excluding those notices that do not pertain to any part of
+ * the Derivative Works; and
+ *
+ * (d) If the Work includes a "NOTICE" text file as part of its
+ * distribution, then any Derivative Works that You distribute must
+ * include a readable copy of the attribution notices contained
+ * within such NOTICE file, excluding those notices that do not
+ * pertain to any part of the Derivative Works, in at least one
+ * of the following places: within a NOTICE text file distributed
+ * as part of the Derivative Works; within the Source form or
+ * documentation, if provided along with the Derivative Works; or,
+ * within a display generated by the Derivative Works, if and
+ * wherever such third-party notices normally appear. The contents
+ * of the NOTICE file are for informational purposes only and
+ * do not modify the License. You may add Your own attribution
+ * notices within Derivative Works that You distribute, alongside
+ * or as an addendum to the NOTICE text from the Work, provided
+ * that such additional attribution notices cannot be construed
+ * as modifying the License.
+ *
+ * You may add Your own copyright statement to Your modifications and
+ * may provide additional or different license terms and conditions
+ * for use, reproduction, or distribution of Your modifications, or
+ * for any such Derivative Works as a whole, provided Your use,
+ * reproduction, and distribution of the Work otherwise complies with
+ * the conditions stated in this License.
+ *
+ * 5. Submission of Contributions. Unless You explicitly state otherwise,
+ * any Contribution intentionally submitted for inclusion in the Work
+ * by You to the Licensor shall be under the terms and conditions of
+ * this License, without any additional terms or conditions.
+ * Notwithstanding the above, nothing herein shall supersede or modify
+ * the terms of any separate license agreement you may have executed
+ * with Licensor regarding such Contributions.
+ *
+ * 6. Trademarks. This License does not grant permission to use the trade
+ * names, trademarks, service marks, or product names of the Licensor,
+ * except as required for reasonable and customary use in describing the
+ * origin of the Work and reproducing the content of the NOTICE file.
+ *
+ * 7. Disclaimer of Warranty. Unless required by applicable law or
+ * agreed to in writing, Licensor provides the Work (and each
+ * Contributor provides its Contributions) on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied, including, without limitation, any warranties or conditions
+ * of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ * PARTICULAR PURPOSE. You are solely responsible for determining the
+ * appropriateness of using or redistributing the Work and assume any
+ * risks associated with Your exercise of permissions under this License.
+ *
+ * 8. Limitation of Liability. In no event and under no legal theory,
+ * whether in tort (including negligence), contract, or otherwise,
+ * unless required by applicable law (such as deliberate and grossly
+ * negligent acts) or agreed to in writing, shall any Contributor be
+ * liable to You for damages, including any direct, indirect, special,
+ * incidental, or consequential damages of any character arising as a
+ * result of this License or out of the use or inability to use the
+ * Work (including but not limited to damages for loss of goodwill,
+ * work stoppage, computer failure or malfunction, or any and all
+ * other commercial damages or losses), even if such Contributor
+ * has been advised of the possibility of such damages.
+ *
+ * 9. Accepting Warranty or Additional Liability. While redistributing
+ * the Work or Derivative Works thereof, You may choose to offer,
+ * and charge a fee for, acceptance of support, warranty, indemnity,
+ * or other liability obligations and/or rights consistent with this
+ * License. However, in accepting such obligations, You may act only
+ * on Your own behalf and on Your sole responsibility, not on behalf
+ * of any other Contributor, and only if You agree to indemnify,
+ * defend, and hold each Contributor harmless for any liability
+ * incurred by, or claims asserted against, such Contributor by reason
+ * of your accepting any such warranty or additional liability.
+ *
+ * END OF TERMS AND CONDITIONS
+ *
+ * APPENDIX: How to apply the Apache License to your work.
+ *
+ * To apply the Apache License to your work, attach the following
+ * boilerplate notice, with the fields enclosed by brackets "[]"
+ * replaced with your own identifying information. (Don't include
+ * the brackets!) The text should be enclosed in the appropriate
+ * comment syntax for the file format. We also recommend that a
+ * file or class name and description of purpose be included on the
+ * same "printed page" as the copyright notice for easier
+ * identification within third-party archives.
+ *
+ * Copyright [yyyy] [name of copyright owner]
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
Added: incubator/directory/rms/trunk/api/api.iml
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/api/api.iml Wed Apr 7 18:57:22 2004
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module version="4" relativePaths="false">
+ <component name="ModuleRootManager" />
+ <component name="NewModuleRootManager">
+ <output url="file://$MODULE_DIR$/target/classes" />
+ <exclude-output />
+ <content url="file://$MODULE_DIR$">
+ <sourceFolder url="file://$MODULE_DIR$/src/java" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/test" isTestSource="true" />
+ <excludeFolder url="file://$MODULE_DIR$/target" />
+ </content>
+ <orderEntry type="inheritedJdk" />
+ <orderEntry type="sourceFolder" forTests="false" />
+ <orderEntry type="library" name="commons-lang-2.0.jar" level="application" />
+ <orderEntry type="library" name="junit-3.8.1.jar" level="application" />
+ </component>
+</module>
+
Added: incubator/directory/rms/trunk/api/maven.log
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/api/maven.log Wed Apr 7 18:57:22 2004
@@ -0,0 +1,625 @@
+2004-04-07 21:12:51,559 INFO org.apache.maven.plugin.PluginManager - Initializing Plugins!
+2004-04-07 21:12:51,590 INFO org.apache.maven.plugin.PluginManager - Unpacking plugins from directory --> j:\apache\maven\maven-1.0-beta-10\plugins
+2004-04-07 21:12:51,684 INFO org.apache.maven.plugin.PluginManager - Processing unpacked plugins in C:\Documents and Settings\akarasulu\.maven\plugins
+2004-04-07 21:12:51,684 INFO org.apache.maven.plugin.PluginManager - Processing Plugin: maven-deploy-plugin-1.1
+2004-04-07 21:12:51,856 INFO org.apache.maven.plugin.PluginManager - Processing Plugin: maven-plexus-plugin-0.2
+2004-04-07 21:12:51,887 INFO org.apache.maven.plugin.PluginManager - Processing Plugin: maven-runner-plugin-0.2
+2004-04-07 21:12:51,887 INFO org.apache.maven.plugin.PluginManager - Processing Plugin: maven-sea-plugin-1.0
+2004-04-07 21:12:51,887 INFO org.apache.maven.plugin.PluginManager - Processing Plugin: maven-vdoclet-plugin-1.0
+2004-04-07 21:12:51,903 INFO org.apache.maven.plugin.PluginCacheManager - Saving caches to C:\Documents and Settings\akarasulu\.maven\plugins
+2004-04-07 21:12:51,950 INFO org.apache.maven.plugin.PluginManager - Finished initializing Plugins!
+2004-04-07 21:12:55,512 WARN org.apache.commons.jelly.expression.jexl.JexlExpression - Caught exception evaluating: org.apache.commons.jexl.ExpressionImpl@1ab11b0. Reason: java.lang.NumberFormatException: For input string: "includes"
+java.lang.NumberFormatException: For input string: "includes"
+ at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
+ at java.lang.Integer.parseInt(Integer.java:468)
+ at java.lang.Integer.valueOf(Integer.java:574)
+ at org.apache.commons.jexl.util.Coercion.coerceInteger(Coercion.java:95)
+ at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:177)
+ at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:104)
+ at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:106)
+ at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:88)
+ at org.apache.commons.jexl.parser.ASTNotNode.value(ASTNotNode.java:88)
+ at org.apache.commons.jexl.parser.ASTExpression.value(ASTExpression.java:85)
+ at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:123)
+ at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:115)
+ at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$ExpressionSupportLocal.evaluate(JexlExpressionFactory.java:168)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:106)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsBoolean(ExpressionSupport.java:116)
+ at org.apache.commons.jelly.tags.core.WhenTag.doTag(WhenTag.java:90)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.ChooseTag.doTag(ChooseTag.java:84)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.ProjectTag.doTag(ProjectTag.java:112)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:112)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:139)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:734)
+ at org.apache.maven.plugin.PluginManager.prepDynamicTagLib(PluginManager.java:611)
+ at org.apache.maven.plugin.PluginManager.prepDynaTagLibs(PluginManager.java:586)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:686)
+ at org.apache.maven.plugin.PluginManager.loadPlugins(PluginManager.java:766)
+ at org.apache.maven.plugin.PluginManager.prepForCallbacks(PluginManager.java:554)
+ at org.apache.maven.plugin.PluginManager.prepForGoal(PluginManager.java:525)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:415)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:348)
+ at org.apache.maven.cli.App.doMain(App.java:525)
+ at org.apache.maven.cli.App.main(App.java:1088)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:324)
+ at com.werken.forehead.Forehead.run(Forehead.java:543)
+ at com.werken.forehead.Forehead.main(Forehead.java:573)
+2004-04-07 21:12:55,512 WARN org.apache.commons.jelly.expression.jexl.JexlExpression - Caught exception evaluating: org.apache.commons.jexl.ExpressionImpl@302e67. Reason: java.lang.NumberFormatException: For input string: "excludes"
+java.lang.NumberFormatException: For input string: "excludes"
+ at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
+ at java.lang.Integer.parseInt(Integer.java:468)
+ at java.lang.Integer.valueOf(Integer.java:574)
+ at org.apache.commons.jexl.util.Coercion.coerceInteger(Coercion.java:95)
+ at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:177)
+ at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:104)
+ at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:106)
+ at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:88)
+ at org.apache.commons.jexl.parser.ASTNotNode.value(ASTNotNode.java:88)
+ at org.apache.commons.jexl.parser.ASTExpression.value(ASTExpression.java:85)
+ at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:123)
+ at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:115)
+ at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$ExpressionSupportLocal.evaluate(JexlExpressionFactory.java:168)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:106)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsBoolean(ExpressionSupport.java:116)
+ at org.apache.commons.jelly.tags.core.WhenTag.doTag(WhenTag.java:90)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.ChooseTag.doTag(ChooseTag.java:84)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.ProjectTag.doTag(ProjectTag.java:112)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:112)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:139)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:734)
+ at org.apache.maven.plugin.PluginManager.prepDynamicTagLib(PluginManager.java:611)
+ at org.apache.maven.plugin.PluginManager.prepDynaTagLibs(PluginManager.java:586)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:686)
+ at org.apache.maven.plugin.PluginManager.loadPlugins(PluginManager.java:766)
+ at org.apache.maven.plugin.PluginManager.prepForCallbacks(PluginManager.java:554)
+ at org.apache.maven.plugin.PluginManager.prepForGoal(PluginManager.java:525)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:415)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:348)
+ at org.apache.maven.cli.App.doMain(App.java:525)
+ at org.apache.maven.cli.App.main(App.java:1088)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:324)
+ at com.werken.forehead.Forehead.run(Forehead.java:543)
+ at com.werken.forehead.Forehead.main(Forehead.java:573)
+2004-04-07 21:12:55,528 WARN org.apache.commons.jelly.expression.jexl.JexlExpression - Caught exception evaluating: org.apache.commons.jexl.ExpressionImpl@14e113b. Reason: java.lang.NumberFormatException: For input string: "includes"
+java.lang.NumberFormatException: For input string: "includes"
+ at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
+ at java.lang.Integer.parseInt(Integer.java:468)
+ at java.lang.Integer.valueOf(Integer.java:574)
+ at org.apache.commons.jexl.util.Coercion.coerceInteger(Coercion.java:95)
+ at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:177)
+ at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:104)
+ at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:106)
+ at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:88)
+ at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:123)
+ at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:115)
+ at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$ExpressionSupportLocal.evaluate(JexlExpressionFactory.java:168)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:106)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsIterator(ExpressionSupport.java:146)
+ at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:127)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:267)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.ProjectTag.doTag(ProjectTag.java:112)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:112)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:139)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:734)
+ at org.apache.maven.plugin.PluginManager.prepDynamicTagLib(PluginManager.java:611)
+ at org.apache.maven.plugin.PluginManager.prepDynaTagLibs(PluginManager.java:586)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:686)
+ at org.apache.maven.plugin.PluginManager.loadPlugins(PluginManager.java:766)
+ at org.apache.maven.plugin.PluginManager.prepForCallbacks(PluginManager.java:554)
+ at org.apache.maven.plugin.PluginManager.prepForGoal(PluginManager.java:525)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:415)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:348)
+ at org.apache.maven.cli.App.doMain(App.java:525)
+ at org.apache.maven.cli.App.main(App.java:1088)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:324)
+ at com.werken.forehead.Forehead.run(Forehead.java:543)
+ at com.werken.forehead.Forehead.main(Forehead.java:573)
+2004-04-07 21:12:55,528 WARN org.apache.commons.jelly.expression.jexl.JexlExpression - Caught exception evaluating: org.apache.commons.jexl.ExpressionImpl@4d76b4. Reason: java.lang.NumberFormatException: For input string: "excludes"
+java.lang.NumberFormatException: For input string: "excludes"
+ at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
+ at java.lang.Integer.parseInt(Integer.java:468)
+ at java.lang.Integer.valueOf(Integer.java:574)
+ at org.apache.commons.jexl.util.Coercion.coerceInteger(Coercion.java:95)
+ at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:177)
+ at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:104)
+ at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:106)
+ at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:88)
+ at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:123)
+ at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:115)
+ at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$ExpressionSupportLocal.evaluate(JexlExpressionFactory.java:168)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:106)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsIterator(ExpressionSupport.java:146)
+ at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:127)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:267)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.ProjectTag.doTag(ProjectTag.java:112)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:112)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:139)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:734)
+ at org.apache.maven.plugin.PluginManager.prepDynamicTagLib(PluginManager.java:611)
+ at org.apache.maven.plugin.PluginManager.prepDynaTagLibs(PluginManager.java:586)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:686)
+ at org.apache.maven.plugin.PluginManager.loadPlugins(PluginManager.java:766)
+ at org.apache.maven.plugin.PluginManager.prepForCallbacks(PluginManager.java:554)
+ at org.apache.maven.plugin.PluginManager.prepForGoal(PluginManager.java:525)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:415)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:348)
+ at org.apache.maven.cli.App.doMain(App.java:525)
+ at org.apache.maven.cli.App.main(App.java:1088)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:324)
+ at com.werken.forehead.Forehead.run(Forehead.java:543)
+ at com.werken.forehead.Forehead.main(Forehead.java:573)
+2004-04-07 21:12:57,699 WARN org.apache.commons.jelly.expression.jexl.JexlExpression - Caught exception evaluating: org.apache.commons.jexl.ExpressionImpl@fe315d. Reason: java.lang.NumberFormatException: For input string: "includes"
+java.lang.NumberFormatException: For input string: "includes"
+ at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
+ at java.lang.Integer.parseInt(Integer.java:468)
+ at java.lang.Integer.valueOf(Integer.java:574)
+ at org.apache.commons.jexl.util.Coercion.coerceInteger(Coercion.java:95)
+ at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:177)
+ at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:104)
+ at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:106)
+ at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:88)
+ at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:123)
+ at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:115)
+ at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$ExpressionSupportLocal.evaluate(JexlExpressionFactory.java:168)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:106)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsBoolean(ExpressionSupport.java:116)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:87)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:267)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:205)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:145)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.impl.DynamicTag.doTag(DynamicTag.java:125)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.GoalTag$1.performAction(GoalTag.java:128)
+ at com.werken.werkz.Goal.fire(Goal.java:639)
+ at com.werken.werkz.Goal.attain(Goal.java:575)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:434)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:348)
+ at org.apache.maven.cli.App.doMain(App.java:525)
+ at org.apache.maven.cli.App.main(App.java:1088)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:324)
+ at com.werken.forehead.Forehead.run(Forehead.java:543)
+ at com.werken.forehead.Forehead.main(Forehead.java:573)
+2004-04-07 21:12:57,746 WARN org.apache.commons.jelly.expression.jexl.JexlExpression - Caught exception evaluating: org.apache.commons.jexl.ExpressionImpl@fe315d. Reason: java.lang.NumberFormatException: For input string: "includes"
+java.lang.NumberFormatException: For input string: "includes"
+ at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
+ at java.lang.Integer.parseInt(Integer.java:468)
+ at java.lang.Integer.valueOf(Integer.java:574)
+ at org.apache.commons.jexl.util.Coercion.coerceInteger(Coercion.java:95)
+ at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:177)
+ at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:104)
+ at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:106)
+ at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:88)
+ at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:123)
+ at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:115)
+ at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$ExpressionSupportLocal.evaluate(JexlExpressionFactory.java:168)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:106)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsBoolean(ExpressionSupport.java:116)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:87)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:267)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:205)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:145)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.impl.DynamicTag.doTag(DynamicTag.java:125)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.GoalTag$1.performAction(GoalTag.java:128)
+ at com.werken.werkz.Goal.fire(Goal.java:639)
+ at com.werken.werkz.Goal.attain(Goal.java:575)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:434)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:348)
+ at org.apache.maven.cli.App.doMain(App.java:525)
+ at org.apache.maven.cli.App.main(App.java:1088)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:324)
+ at com.werken.forehead.Forehead.run(Forehead.java:543)
+ at com.werken.forehead.Forehead.main(Forehead.java:573)
+2004-04-07 21:12:57,824 WARN org.apache.commons.jelly.expression.jexl.JexlExpression - Caught exception evaluating: org.apache.commons.jexl.ExpressionImpl@fe315d. Reason: java.lang.NumberFormatException: For input string: "includes"
+java.lang.NumberFormatException: For input string: "includes"
+ at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
+ at java.lang.Integer.parseInt(Integer.java:468)
+ at java.lang.Integer.valueOf(Integer.java:574)
+ at org.apache.commons.jexl.util.Coercion.coerceInteger(Coercion.java:95)
+ at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:177)
+ at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:104)
+ at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:106)
+ at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:88)
+ at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:123)
+ at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:115)
+ at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$ExpressionSupportLocal.evaluate(JexlExpressionFactory.java:168)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:106)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsBoolean(ExpressionSupport.java:116)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:87)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:267)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:205)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:145)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.impl.DynamicTag.doTag(DynamicTag.java:125)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.GoalTag$1.performAction(GoalTag.java:128)
+ at com.werken.werkz.Goal.fire(Goal.java:639)
+ at com.werken.werkz.Goal.attain(Goal.java:575)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:434)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:348)
+ at org.apache.maven.cli.App.doMain(App.java:525)
+ at org.apache.maven.cli.App.main(App.java:1088)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:324)
+ at com.werken.forehead.Forehead.run(Forehead.java:543)
+ at com.werken.forehead.Forehead.main(Forehead.java:573)
+2004-04-07 21:12:58,949 WARN org.apache.commons.jelly.expression.jexl.JexlExpression - Caught exception evaluating: org.apache.commons.jexl.ExpressionImpl@fe315d. Reason: java.lang.NumberFormatException: For input string: "includes"
+java.lang.NumberFormatException: For input string: "includes"
+ at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
+ at java.lang.Integer.parseInt(Integer.java:468)
+ at java.lang.Integer.valueOf(Integer.java:574)
+ at org.apache.commons.jexl.util.Coercion.coerceInteger(Coercion.java:95)
+ at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:177)
+ at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:104)
+ at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:106)
+ at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:88)
+ at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:123)
+ at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:115)
+ at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$ExpressionSupportLocal.evaluate(JexlExpressionFactory.java:168)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:106)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsBoolean(ExpressionSupport.java:116)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:87)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:267)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:205)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:145)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.impl.DynamicTag.doTag(DynamicTag.java:125)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.GoalTag$1.performAction(GoalTag.java:128)
+ at com.werken.werkz.Goal.fire(Goal.java:639)
+ at com.werken.werkz.Goal.attain(Goal.java:575)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.WerkzProject.attainGoal(WerkzProject.java:193)
+ at com.werken.werkz.jelly.AttainGoalTag.doTag(AttainGoalTag.java:134)
+ at org.apache.maven.jelly.tags.werkz.LazyAttainGoalTag.doTag(LazyAttainGoalTag.java:107)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.GoalTag$1.performAction(GoalTag.java:128)
+ at com.werken.werkz.Goal.fire(Goal.java:639)
+ at com.werken.werkz.Goal.attain(Goal.java:575)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:434)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:348)
+ at org.apache.maven.cli.App.doMain(App.java:525)
+ at org.apache.maven.cli.App.main(App.java:1088)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:324)
+ at com.werken.forehead.Forehead.run(Forehead.java:543)
+ at com.werken.forehead.Forehead.main(Forehead.java:573)
+2004-04-07 21:12:58,981 WARN org.apache.commons.jelly.expression.jexl.JexlExpression - Caught exception evaluating: org.apache.commons.jexl.ExpressionImpl@fe315d. Reason: java.lang.NumberFormatException: For input string: "includes"
+java.lang.NumberFormatException: For input string: "includes"
+ at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
+ at java.lang.Integer.parseInt(Integer.java:468)
+ at java.lang.Integer.valueOf(Integer.java:574)
+ at org.apache.commons.jexl.util.Coercion.coerceInteger(Coercion.java:95)
+ at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:177)
+ at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:104)
+ at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:106)
+ at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:88)
+ at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:123)
+ at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:115)
+ at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$ExpressionSupportLocal.evaluate(JexlExpressionFactory.java:168)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:106)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsBoolean(ExpressionSupport.java:116)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:87)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:267)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:205)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:145)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.impl.DynamicTag.doTag(DynamicTag.java:125)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.GoalTag$1.performAction(GoalTag.java:128)
+ at com.werken.werkz.Goal.fire(Goal.java:639)
+ at com.werken.werkz.Goal.attain(Goal.java:575)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.WerkzProject.attainGoal(WerkzProject.java:193)
+ at com.werken.werkz.jelly.AttainGoalTag.doTag(AttainGoalTag.java:134)
+ at org.apache.maven.jelly.tags.werkz.LazyAttainGoalTag.doTag(LazyAttainGoalTag.java:107)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.GoalTag$1.performAction(GoalTag.java:128)
+ at com.werken.werkz.Goal.fire(Goal.java:639)
+ at com.werken.werkz.Goal.attain(Goal.java:575)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:434)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:348)
+ at org.apache.maven.cli.App.doMain(App.java:525)
+ at org.apache.maven.cli.App.main(App.java:1088)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:324)
+ at com.werken.forehead.Forehead.run(Forehead.java:543)
+ at com.werken.forehead.Forehead.main(Forehead.java:573)
+2004-04-07 21:12:58,996 WARN org.apache.commons.jelly.expression.jexl.JexlExpression - Caught exception evaluating: org.apache.commons.jexl.ExpressionImpl@fe315d. Reason: java.lang.NumberFormatException: For input string: "includes"
+java.lang.NumberFormatException: For input string: "includes"
+ at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
+ at java.lang.Integer.parseInt(Integer.java:468)
+ at java.lang.Integer.valueOf(Integer.java:574)
+ at org.apache.commons.jexl.util.Coercion.coerceInteger(Coercion.java:95)
+ at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:177)
+ at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:104)
+ at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:106)
+ at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:88)
+ at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:123)
+ at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:115)
+ at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$ExpressionSupportLocal.evaluate(JexlExpressionFactory.java:168)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:106)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsBoolean(ExpressionSupport.java:116)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:87)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:267)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:205)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:145)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.impl.DynamicTag.doTag(DynamicTag.java:125)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.GoalTag$1.performAction(GoalTag.java:128)
+ at com.werken.werkz.Goal.fire(Goal.java:639)
+ at com.werken.werkz.Goal.attain(Goal.java:575)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.WerkzProject.attainGoal(WerkzProject.java:193)
+ at com.werken.werkz.jelly.AttainGoalTag.doTag(AttainGoalTag.java:134)
+ at org.apache.maven.jelly.tags.werkz.LazyAttainGoalTag.doTag(LazyAttainGoalTag.java:107)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.GoalTag$1.performAction(GoalTag.java:128)
+ at com.werken.werkz.Goal.fire(Goal.java:639)
+ at com.werken.werkz.Goal.attain(Goal.java:575)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:434)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:348)
+ at org.apache.maven.cli.App.doMain(App.java:525)
+ at org.apache.maven.cli.App.main(App.java:1088)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:324)
+ at com.werken.forehead.Forehead.run(Forehead.java:543)
+ at com.werken.forehead.Forehead.main(Forehead.java:573)
Added: incubator/directory/rms/trunk/api/maven.xml
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/api/maven.xml Wed Apr 7 18:57:22 2004
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<project
+ default="java:compile"
+ xmlns:j="jelly:core"
+ xmlns:u="jelly:util"
+ xmlns:ant="jelly:ant"
+ xmlns:maven="jelly:maven"
+ xmlns:m="maven"
+ xmlns:deploy="deploy"
+ >
+
+ <preGoal name="site">
+ <attainGoal name="docbook:transform"/>
+ </preGoal>
+
+ <postGoal name="site">
+ <attainGoal name="server:copy-images"/>
+ <attainGoal name="subproject:collectdocs"/>
+ </postGoal>
+
+ <goal name="subproject:collectdocs">
+ <ant:copy
+ toDir="../target/docs/authorization/api">
+
+ <ant:fileSet dir="${basedir}/target/docs">
+ <ant:include name="**"/>
+ </ant:fileSet>
+ </ant:copy>
+ </goal>
+
+ <goal name="server:copy-images">
+ <copy toDir="target/docs/images">
+ <fileSet dir="${basedir}/src/images">
+ <include name="*.gif"/>
+ </fileSet>
+ </copy>
+ </goal>
+</project>
Added: incubator/directory/rms/trunk/api/project.properties
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/api/project.properties Wed Apr 7 18:57:22 2004
@@ -0,0 +1,3 @@
+maven.javadoc.overview=src/java/org/apache/eve/schema/package.html
+maven.xdoc.jsl = file:/${basedir}/../src/etc/site.jsl
+maven.license.licenseFile = ../LICENSE.txt
\ No newline at end of file
Added: incubator/directory/rms/trunk/api/project.xml
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/api/project.xml Wed Apr 7 18:57:22 2004
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<project>
+ <extend>${basedir}/../project.xml</extend>
+ <id>rms-api</id>
+ <name>RMS API</name>
+ <package>org.apache.rms</package>
+ <currentVersion>SNAPSHOT</currentVersion>
+ <inceptionYear>2004</inceptionYear>
+
+ <shortDescription>RMS API</shortDescription>
+ <description>
+ RMS exposes a standard API regardless of the various implementations
+ used under the hood.
+ </description>
+
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <url>http://junit.org</url>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ <version>SNAPSHOT</version>
+ <url>http://jakarta.apache.org/commons/codec</url>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ <version>SNAPSHOT</version>
+ <url>http://jakarta.apache.org/commons/lang</url>
+ </dependency>
+ </dependencies>
+
+ <reports>
+ <report>maven-changelog-plugin</report>
+ <report>maven-developer-activity-plugin</report>
+ <report>maven-file-activity-plugin</report>
+ <report>maven-license-plugin</report>
+ <report>maven-javadoc-plugin</report>
+ <report>maven-jdepend-plugin</report>
+ <report>maven-jxr-plugin</report>
+ <!-- report>maven-test-plugin</report -->
+ <report>maven-tasklist-plugin</report>
+ </reports>
+</project>
+
+
Added: incubator/directory/rms/trunk/api/src/java/org/apache/rms/Application.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/api/src/java/org/apache/rms/Application.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,120 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms ;
+
+
+import java.util.Iterator ;
+
+
+/**
+ * An RMS managed application.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 11 $
+ */
+public interface Application
+{
+ /**
+ * Gets the name uniquely identifying this Applicaiton.
+ *
+ * @return the name String
+ */
+ String getName() ;
+
+ /**
+ * Checks to see if a role has been defined for this Applicaiton.
+ *
+ * @param role the role to test for existance
+ * @return true if the Role is defined for this Application, false otherwise
+ */
+ boolean hasRole( Role role ) ;
+
+ /**
+ * Checks to see if a role has been defined for this Applicaiton.
+ *
+ * @param role the role to test for existance
+ * @return true if the Role is defined for this Application, false otherwise
+ */
+ boolean hasRole( String role ) ;
+
+ /**
+ * Gets a role defined for this Applicaiton by name.
+ *
+ * @param role the name of the Role to get
+ * @return the Role or null if it is not defined for this Application
+ */
+ Role getRole( String role ) ;
+
+ /**
+ * Gets an iteration over the set of roles defined for this Application.
+ *
+ * @return an Iterator over Role instances
+ */
+ Iterator getRoles() ;
+
+ /**
+ * Checks to see if a Permission is defined at an index.
+ *
+ * @param idx the index to test
+ * @return true if a permission is defined for the index, false otherwise
+ */
+ boolean hasPermission( int idx ) ;
+
+ /**
+ * Checks to see if a Permission is defined for this Application.
+ *
+ * @param permission the name of the permission to check for
+ * @return true if a permission is defined, false otherwise
+ */
+ boolean hasPermission( String permission ) ;
+
+ /**
+ * Checks to see if a Permission is defined for this Application.
+ *
+ * @param permission the permission to check for
+ * @return true if a permission is defined, false otherwise
+ */
+ boolean hasPermission( BitPermission permission ) ;
+
+ /**
+ * Gets the BitPermission associated with an index if one was assigned for
+ * that position.
+ *
+ * @param idx the index of the permission
+ * @return the BitPermission associated with the index or null if one was
+ * not assigned for that position
+ */
+ BitPermission getPermission( int idx ) ;
+
+ /**
+ * Gets the BitPermission associated with an index if one was assigned for
+ * that position.
+ *
+ * @param permission the name of the permission to check for
+ * @return the BitPermission corresponding to the name, or null if no perm
+ * is assigned the name
+ */
+ BitPermission getPermission( String permission ) ;
+
+ /**
+ * Gets an iteration over the set of BitPermissions defined for this
+ * Application.
+ *
+ * @return an Iterator over BitPermission instances
+ */
+ Iterator getPermissions() ;
+}
Added: incubator/directory/rms/trunk/api/src/java/org/apache/rms/BitPermission.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/api/src/java/org/apache/rms/BitPermission.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms ;
+
+
+/**
+ * An RMS application permission.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 11 $
+ */
+public interface BitPermission
+{
+ /**
+ * Gets the index this BitPermission is assigned to.
+ *
+ * @return the bit index
+ */
+ int getIndex() ;
+
+ /**
+ * Gets the name of this BitPermission.
+ *
+ * @return the name
+ */
+ String getName() ;
+
+ /**
+ * Gets the application name this BitPermission is defined for.
+ *
+ * @return the name of the application.
+ */
+ String getApplication() ;
+}
Added: incubator/directory/rms/trunk/api/src/java/org/apache/rms/BitPermissionIterator.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/api/src/java/org/apache/rms/BitPermissionIterator.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,133 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms ;
+
+
+import org.apache.rms.Application;
+import org.apache.rms.BitPermission;
+
+import java.util.Iterator ;
+
+
+/**
+ * Iterates through permissions within a bit vector: returns only those
+ * permissions at indices where the bit value is set to zero or one depending
+ * on the constructor arguments used.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 11 $
+ */
+public class BitPermissionIterator implements Iterator
+{
+ private final int m_limit ;
+ private final byte[] m_perms ;
+ private final Application m_app ;
+ private final boolean m_ones ;
+
+ private int ii = 0 ;
+
+
+ /**
+ * Creates a BitPermissionIterator over a bit vector representation of a
+ * BitPermission set.
+ *
+ * @param app the application the role is defined for
+ * @param perms the permissions to iterator over
+ * @param ones flag used to determine if permissions of 0's or 1's are
+ * returned. If true BitPermissions for indices with 1's are returned,
+ * if false BitPermissions for indices with 0's are returned
+ */
+ BitPermissionIterator( Application app, byte[] perms, boolean ones )
+ {
+ m_app = app ;
+ m_ones = ones ;
+ m_perms = perms ;
+ m_limit = ( perms.length << 3 ) ;
+
+ advance() ;
+ }
+
+
+ /**
+ * Creates a BitPermissionIterator over a bit vector representation of a
+ * BitPermission set, where raised bits set to 1 are returned.
+ *
+ * @param app the application the role is defined for
+ * @param perms the permissions to iterator over
+ */
+ BitPermissionIterator( Application app, byte[] perms )
+ {
+ this( app, perms, true ) ;
+ }
+
+
+ /**
+ * Advance to the next permission to return.
+ */
+ private void advance()
+ {
+ // if 1's are returned then we skip over 0's
+ if ( m_ones )
+ {
+ while( ! BitUtils.getBit( m_perms, ii ) && ii < m_limit )
+ {
+ ii++ ;
+ }
+ }
+ // if 0's are returned then we skip over 1's
+ else
+ {
+ while( BitUtils.getBit( m_perms, ii ) && ii < m_limit )
+ {
+ ii++ ;
+ }
+ }
+ }
+
+
+ /*
+ * (non-Javadoc)
+ * @see java.util.Iterator#hasNext()
+ */
+ public boolean hasNext()
+ {
+ return ii < m_limit ;
+ }
+
+
+ /*
+ * (non-Javadoc)
+ * @see java.util.Iterator#next()
+ */
+ public Object next()
+ {
+ BitPermission l_perm = m_app.getPermission( ii ) ;
+ ii++ ;
+ advance() ;
+ return l_perm ;
+ }
+
+
+ /*
+ * (non-Javadoc)
+ * @see java.util.Iterator#remove()
+ */
+ public void remove()
+ {
+ throw new UnsupportedOperationException( "Removal is not supported!" ) ;
+ }
+}
\ No newline at end of file
Added: incubator/directory/rms/trunk/api/src/java/org/apache/rms/BitUtils.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/api/src/java/org/apache/rms/BitUtils.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,315 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms ;
+
+
+/**
+ * Bit manipulation tools.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Directory Project Team</a>
+ * @version $Rev: 23 $
+ */
+public class BitUtils
+{
+ /** bit masks for all 32 bits in a primitive int */
+ private final static int[] BIT_MASKS =
+ {
+ 0x00000001, 0x00000002, 0x00000004, 0x00000008,
+ 0x00000010, 0x00000020, 0x00000040, 0x00000080,
+ 0x00000100, 0x00000200, 0x00000400, 0x00000800,
+ 0x00001000, 0x00002000, 0x00004000, 0x00008000,
+ 0x00010000, 0x00020000, 0x00040000, 0x00080000,
+ 0x00100000, 0x00200000, 0x00400000, 0x00800000,
+ 0x01000000, 0x02000000, 0x04000000, 0x08000000,
+ 0x10000000, 0x20000000, 0x40000000, 0x80000000
+ };
+
+
+ /**
+ * Gets a mask used to get a bit at an index by AND'ing the mask with
+ * the int.
+ *
+ * @param index the index of the bit
+ * @return the bit's mask
+ */
+ public static final int getBitMask( int index )
+ {
+ return BIT_MASKS[index] ;
+ }
+
+
+ // ------------------------------------------------------------
+ // access to byte bits
+ // ------------------------------------------------------------
+
+
+ /**
+ * Gets the value of a bit within a primitive byte using a bit index.
+ *
+ * @param bits the byte containing the bit to get
+ * @param index the zero based index of the bit to get
+ * @return true if the bit is 1 or false if it is 0 out of range [0-7]
+ */
+ public final static boolean getBit( byte bits, int index )
+ {
+ if ( index > 7 || index < 0 )
+ {
+ return false ;
+ }
+
+ return ( bits & BIT_MASKS[index] ) == 0 ? false : true ;
+ }
+
+
+ /**
+ * Gets the value of a bit within a Byte using a bit index.
+ *
+ * @param bits the Byte containing the bit to get
+ * @param index the zero based index of the bit to get
+ * @return true if the bit is 1 or false if it is 0 out of range [0-7],
+ * or the bits argument is null
+ */
+ public final static boolean getBit( Byte bits, int index )
+ {
+ if ( bits == null || index > 7 || index < 0 )
+ {
+ return false ;
+ }
+
+ return ( bits.byteValue() & BIT_MASKS[index] ) == 0 ? false : true ;
+ }
+
+
+ // ------------------------------------------------------------
+ // access to int bits
+ // ------------------------------------------------------------
+
+
+ /**
+ * Gets the value of a bit within a primitive int using a bit index.
+ * If index value is out of index range a false is returned instead of
+ * throwing an exception.
+ *
+ * @param bits the int containing the bit to get
+ * @param index the zero based index of the bit to get
+ * @return true if the bit is 1 or false if it is 0 out of range [0-31]
+ */
+ public static boolean getBit( int bits, int index )
+ {
+ if ( index > 31 || index < 0 )
+ {
+ return false ;
+ }
+
+ return ( bits & BIT_MASKS[index] ) == 0 ? false : true ;
+ }
+
+
+ /**
+ * Gets the value of a bit within an Integer using a bit index.
+ *
+ * @param bits the Integer containing the bit to get
+ * @param index the zero based index of the bit to get
+ * @return true if the bit is 1 or false if it is 0 out of range [0-31],
+ * or the bits argument is null
+ */
+ public static boolean getBit( Integer bits, int index )
+ {
+ if ( bits == null || index > 31 || index < 0 )
+ {
+ return false ;
+ }
+
+ return ( bits.intValue() & BIT_MASKS[index] ) == 0 ? false : true ;
+ }
+
+
+ // ------------------------------------------------------------
+ // access to long bits
+ // ------------------------------------------------------------
+
+
+ /**
+ * Gets the value of a bit within a primitive long using a bit index.
+ *
+ * @param bits the long containing the bit to get
+ * @param index the zero based index of the bit to get
+ * @return true if the bit is 1 or false if it is 0 out of range [0-63]
+ */
+ public static boolean getBit( long bits, int index )
+ {
+ if ( index > 63 || index < 0 )
+ {
+ return false ;
+ }
+
+ if ( index < 31 )
+ {
+ return ( bits & BIT_MASKS[index] ) == 0 ? false : true ;
+ }
+
+ index -= 32 ;
+ return ( ( bits >> 32 ) & BIT_MASKS[index] ) == 0 ? false : true ;
+ }
+
+
+ /**
+ * Gets the value of a bit within a Long using a bit index.
+ *
+ * @param bits the int containing the bit to get
+ * @param index the zero based index of the bit to get
+ * @return true if the bit is 1 or false if it is 0 out of range [0-63],
+ * or the bits argument is null
+ */
+ public static boolean getBit( Long bits, int index )
+ {
+ if ( bits == null || index > 63 || index < 0 )
+ {
+ return false ;
+ }
+
+ if ( index < 31 )
+ {
+ return ( bits.longValue() & BIT_MASKS[index] ) == 0 ? false : true ;
+ }
+
+ index -= 32 ;
+ return ( ( bits.longValue() >> 32 ) & BIT_MASKS[index] ) == 0 ? false : true ;
+ }
+
+
+ /**
+ * Gets the value of a bit within an array of bytes using a bit index. If
+ * the length of the array is exceeded while searching for the index then
+ * false is returned.
+ *
+ * @param bits binary bit vector as a byte array
+ * @param index the bit index into the binary bit vector NOT into the
+ * array so index may be as larget as bits.length*8-1.
+ * @return the value of the bit as a boolean, true if it is 1, false if it
+ * is 0.
+ */
+ public static boolean getBit( byte[] bits, int index )
+ {
+ /*
+ * Calculate the index into the array = index / 8 using a
+ * bit shift and return false if this index is bigger than
+ * the array.
+ */
+ int ii = index >> 3 ;
+ if ( ii >= bits.length )
+ {
+ return false ;
+ }
+
+ /*
+ * Calcualtes the byte offset of the bit searched for using bit shifts
+ * and subtraction. Then returns true if the bit is set to 1.
+ */
+ int jj = index - ( ii << 3 ) ;
+ if ( ( bits[ii] & BIT_MASKS[jj] ) > 0 )
+ {
+ return true ;
+ }
+
+ return false ;
+ }
+
+
+ /**
+ * Sets a bit to a value in a binary at an index. If the binary is not big
+ * enough to set the bit at the specified index it is padded then the bit is
+ * set.
+ *
+ * @param bits the binary of bytes
+ * @param index the index of the bit into the binary
+ * @param value the value to toggle the bit to as a boolean, true
+ * corresponds to 1, and false corresponds to 0
+ * @return the given or reallocated binary
+ */
+ public static byte[] setBit( byte [] bits, int index, boolean value )
+ {
+ int ii = index >> 3 ;
+
+ if ( ii >= bits.length )
+ {
+ bits = pad( bits, ii + 1 ) ;
+ }
+
+ /*
+ * calculate the bit offset in the byte by subtracting the greatest
+ * multiple of 8 less than the index (ii << 3), from the index
+ */
+ int offset = index - ( ii << 3 ) ;
+
+ if ( value )
+ {
+ bits[ii] |= BIT_MASKS[offset] ;
+ }
+ else
+ {
+ bits[ii] &= ( ~BIT_MASKS[offset] ) ;
+ }
+
+ return bits ;
+ }
+
+
+ /**
+ * Pads an array by allocating a new array and copying over the old values
+ * from the smaller one. If the size to padTo is less than or equal to the
+ * new length to pad to the original byte array is returned.
+ *
+ * @param bites the byte array to pad
+ * @param padTo the new size of the array
+ * @return the newly padded array with existing values copied
+ */
+ public static byte[] pad( byte[] bites, int padTo )
+ {
+ if ( bites.length >= padTo )
+ {
+ return bites ;
+ }
+
+ byte[] l_padded = new byte[ padTo ] ;
+ System.arraycopy( bites, 0, l_padded, 0, bites.length ) ;
+ return l_padded ;
+ }
+
+
+ /**
+ * Truncates an array of bytes by allocating a new shorter array and
+ * copying over the old values from the larger one upto the truncation
+ * length. If the size to the truncation length is greater than or
+ * equal to the existing array length the original byte array is returned.
+ *
+ * @param bites the byte array to truncate
+ * @param length the length to truncate to
+ * @return the truncated array with existing values copied over
+ */
+ public static byte[] trunc( byte[] bites, int length )
+ {
+ if ( bites.length <= length )
+ {
+ return bites ;
+ }
+
+ byte[] l_truncated = new byte[ length ] ;
+ System.arraycopy( bites, 0, l_truncated, 0, length ) ;
+ return l_truncated ;
+ }
+}
\ No newline at end of file
Added: incubator/directory/rms/trunk/api/src/java/org/apache/rms/CacheEvent.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/api/src/java/org/apache/rms/CacheEvent.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms ;
+
+
+import java.util.EventObject ;
+
+
+/**
+ * A CacheEvent represents a change to the RMS object Cache.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 11 $
+ * @see CacheEventType
+ */
+public class CacheEvent extends EventObject
+{
+ /** the type of this event */
+ private final CacheEventType m_type ;
+
+ /**
+ * Creates a CacheEvent of a particular type for a Cached object.
+ *
+ * @param type the type of this CacheEvent
+ * @param obj the object this CacheEvent corresponds to
+ * @param source the source that fired this CacheEvent
+ * @see CacheEventType
+ */
+ public CacheEvent( CacheEventType type, Object obj, Object source )
+ {
+ super( source ) ;
+ m_type = type ;
+ }
+}
Added: incubator/directory/rms/trunk/api/src/java/org/apache/rms/CacheEventType.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/api/src/java/org/apache/rms/CacheEventType.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,119 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms ;
+
+
+import java.util.Map ;
+import java.util.List ;
+
+import org.apache.commons.lang.enum.EnumUtils ;
+import org.apache.commons.lang.enum.ValuedEnum ;
+
+
+/**
+ * Type safe enum for an rms event type. This can be take one of the following
+ * three values:
+ * <ul>
+ * <li>UPDATED</li>
+ * <li>CREATED</li>
+ * <li>DELETED</li>
+ * </ul>
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 11 $
+ */
+public class CacheEventType extends ValuedEnum
+{
+ /** the value of an updated event type */
+ public static final int UPDATED_VAL = 0 ;
+ /** the value of a deleted event type */
+ public static final int DELETED_VAL = 1 ;
+ /** the value of a created event type */
+ public static final int CREATED_VAL = 2 ;
+
+ /** the updated type save enum for a cached event */
+ public static final CacheEventType UPDATED =
+ new CacheEventType( "updated", UPDATED_VAL ) ;
+ /** the delete type save enum for a cached event */
+ public static final CacheEventType DELETED =
+ new CacheEventType( "deleted", DELETED_VAL ) ;
+ /** the created type save enum for a cached event */
+ public static final CacheEventType CREATED =
+ new CacheEventType( "created", CREATED_VAL ) ;
+
+
+ /**
+ * Private constructor so no other instances can be created other than the
+ * public static constants in this class.
+ *
+ * @param name a string name for the enumeration value.
+ * @param value the integer value of the enumeration.
+ */
+ private CacheEventType( final String name, final int value )
+ {
+ super( name, value ) ;
+ }
+
+
+ /**
+ * Gets the enumeration type for the type string regardless of case.
+ *
+ * @param type the usage string
+ * @return the type enumeration type
+ */
+ public static CacheEventType getUsage( String type )
+ {
+ if ( type.equalsIgnoreCase( CacheEventType.UPDATED.getName() ) )
+ {
+ return CacheEventType.UPDATED ;
+ }
+
+ if ( type.equalsIgnoreCase( CacheEventType.CREATED.getName() ) )
+ {
+ return CacheEventType.CREATED ;
+ }
+
+ if ( type.equalsIgnoreCase( CacheEventType.DELETED.getName() ) )
+ {
+ return CacheEventType.DELETED ;
+ }
+
+ throw new IllegalArgumentException( "Unknown type string" + type ) ;
+ }
+
+
+ /**
+ * Gets a List of the enumerations for the event type.
+ *
+ * @return the List of enumerations possible for event type
+ */
+ public static List list()
+ {
+ return EnumUtils.getEnumList( CacheEventType.class ) ;
+ }
+
+
+ /**
+ * Gets the Map of event objects by name using the EventType class.
+ *
+ * @return the Map by name of EventTypes.
+ */
+ public static Map map()
+ {
+ return EnumUtils.getEnumMap( CacheEventType.class ) ;
+ }
+}
Added: incubator/directory/rms/trunk/api/src/java/org/apache/rms/CacheListener.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/api/src/java/org/apache/rms/CacheListener.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms ;
+
+
+import org.apache.rms.CacheEvent;
+
+import java.util.EventListener ;
+
+
+/**
+ * Listener interface used to notify interested parties of changes to cached
+ * RMS objects. Not all RMS providers will support this feature.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 11 $
+ */
+public interface CacheListener extends EventListener
+{
+ /**
+ * A change to the RMS object cache occured.
+ *
+ * @param event the event representing the cache change.
+ */
+ void cacheChanged( CacheEvent event ) ;
+}
Added: incubator/directory/rms/trunk/api/src/java/org/apache/rms/DefaultApplication.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/api/src/java/org/apache/rms/DefaultApplication.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,468 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms ;
+
+
+import java.io.Serializable ;
+
+import java.util.Map ;
+import java.util.List ;
+import java.util.HashMap ;
+import java.util.Iterator ;
+import java.util.Observer ;
+import java.util.Collection ;
+import java.util.Observable ;
+import java.util.Collections ;
+
+import org.apache.commons.lang.Validate ;
+
+
+/**
+ * A default Application bean.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 11 $
+ */
+public abstract class DefaultApplication extends Observable
+ implements Application, Observer, Serializable
+{
+ /** the name of this Application */
+ private String m_name ;
+ /** the Roles defined for this Application keyed by name */
+ private Map m_roles ;
+ /** a map of permission names to BitPermission objects */
+ private transient Map m_perms ;
+ /** a mapping of permissions to indices for fast index based lookups */
+ private List m_mapping ;
+
+
+ /**
+ * Creates a default Application.
+ *
+ * @param name the name of the Application to create
+ */
+ protected DefaultApplication( String name )
+ {
+ m_name = name ;
+ }
+
+
+ /**
+ * Creates a populated default Application instance with Roles and
+ * BitPermissions defined.
+ *
+ * @param name the name of the Application to create
+ * @param roles a Map of the Roles ( where the key is the name string, and
+ * the value is the Role instance) defined for this Application
+ * @param mapping the BitPermission to index mapping array - each
+ * BitPermission instance contained in the array is place at the index
+ * it has been assigned to for fast index lookups
+ */
+ public DefaultApplication( String name, Map roles, List mapping )
+ {
+ m_name = name ;
+ setRoles( roles ) ;
+ m_mapping = mapping ;
+ setPermissions( mapping ) ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.Application#getName()
+ */
+ public String getName()
+ {
+ return m_name ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.Application#hasRole(org.apache.rms.Role)
+ */
+ public boolean hasRole( Role role )
+ {
+ return m_roles.containsKey( role.getName() ) ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.Application#hasRole(java.lang.String)
+ */
+ public boolean hasRole( String role )
+ {
+ return m_roles.containsKey( role ) ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.Application#getRole(java.lang.String)
+ */
+ public Role getRole( String role )
+ {
+ return ( Role ) m_roles.get( role ) ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.Application#getRoles()
+ */
+ public Iterator getRoles()
+ {
+ Collection l_values = null ;
+ l_values = Collections.unmodifiableCollection( m_roles.values() ) ;
+ return l_values.iterator() ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.Application#hasPermission(java.lang.String)
+ */
+ public boolean hasPermission( String permission )
+ {
+ return m_perms.containsKey( permission ) ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.Application#hasPermission(org.apache.rms.BitPermission)
+ */
+ public boolean hasPermission( BitPermission permission )
+ {
+ return m_perms.containsKey( permission.getName() ) ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.Application#getPermission(java.lang.String)
+ */
+ public BitPermission getPermission( String permission )
+ {
+ if ( ! m_perms.containsKey( permission ) )
+ {
+ return null ;
+ }
+
+ return ( BitPermission ) m_perms.get( permission ) ;
+ }
+
+
+ /**
+ * Gets the largest permission index for this application.
+ *
+ * @return the largest permission index
+ */
+ public int getMaxPermissionIndex()
+ {
+ for ( int ii = m_mapping.size() - 1; ii >= 0; ii-- )
+ {
+ BitPermission l_perm = ( BitPermission ) m_mapping.get( ii ) ;
+ if ( l_perm == null )
+ {
+ continue ;
+ }
+ else
+ {
+ return ii ;
+ }
+ }
+
+ return 0 ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.Application#getPermissions()
+ */
+ public Iterator getPermissions()
+ {
+ return Collections
+ .unmodifiableCollection( m_perms.values() ).iterator() ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.Application#getPermission(int)
+ */
+ public BitPermission getPermission( int idx )
+ {
+ return ( BitPermission ) m_mapping.get( idx ) ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.Application#hasPermission(int)
+ */
+ public boolean hasPermission( int idx )
+ {
+ return m_mapping.get( idx ) != null ;
+ }
+
+
+ /**
+ * Pretty prints out the Application with its Roles and Permissions.
+ *
+ * @see java.lang.Object#toString()
+ */
+ public String toString()
+ {
+ StringBuffer l_buf = new StringBuffer( "Application: " ) ;
+ l_buf.append( m_name ) ;
+ l_buf.append( "\n\t" ) ;
+ l_buf.append( m_name ) ;
+ l_buf.append( " Permissions:\n\t[\n" ) ;
+
+ Iterator l_list = getPermissions() ;
+ while ( l_list.hasNext() )
+ {
+ l_buf.append( "\t\t" ) ;
+ l_buf.append( l_list.next() ) ;
+ l_buf.append( "\n" ) ;
+ }
+ l_buf.append( "\t]" ) ;
+
+ l_buf.append( "\n\t" ) ;
+ l_buf.append( m_name ) ;
+ l_buf.append( " Roles:\n\t[\n" ) ;
+ l_list = getRoles() ;
+ while ( l_list.hasNext() )
+ {
+ l_buf.append( "\t\t" ) ;
+ l_buf.append( l_list.next() ) ;
+ l_buf.append( "\n" ) ;
+ }
+ l_buf.append( "\t]" ) ;
+
+ return l_buf.toString() ;
+ }
+
+
+ // ------------------------------------------------------------------------
+ // Protected Methods
+ // ------------------------------------------------------------------------
+
+
+ /**
+ * Sets the permissions for this Application building the tansient
+ * permissions name hash for fast by name lookups of permissions. Also
+ * registers this Application for updates if Permissions are Observables.
+ *
+ * @param mapping the BitPermission to index mapping array - each
+ * BitPermission instance contained in the array is place at the index
+ * it has been assigned to for fast index lookups*/
+ protected void setPermissions( List mapping )
+ {
+ m_mapping = mapping ;
+ m_perms = new HashMap( m_mapping.size() ) ;
+
+ for ( int ii = 0; ii < m_mapping.size(); ii++ )
+ {
+ BitPermission l_perm = ( BitPermission ) m_mapping.get( ii ) ;
+
+ if ( l_perm == null )
+ {
+ continue ;
+ }
+
+ if ( l_perm instanceof Observable )
+ {
+ ( ( Observable ) l_perm ).addObserver( this ) ;
+ }
+
+ m_perms.put( l_perm.getName(), l_perm ) ;
+ }
+ }
+
+
+ /**
+ * Sets the Roles defined by this Application. Also registers this
+ * Application for updates if Roles are Observables.
+ *
+ * @param roles a Map of the Roles ( where the key is the name string, and
+ * the value is the Role instance) defined for this Application*/
+ protected void setRoles( Map roles )
+ {
+ Validate.notNull( roles ) ;
+ m_roles = roles ;
+
+ Iterator list = roles.values().iterator() ;
+ while ( list.hasNext() )
+ {
+ Object o = list.next() ;
+
+ if ( o instanceof Observable )
+ {
+ ( ( Observable ) o ).addObserver( this ) ;
+ }
+ }
+ }
+
+
+ /**
+ * Adds a BitPermission to this application.
+ *
+ * @param perm the permission to add
+ * @return the added permission
+ */
+ protected BitPermission addPermission( BitPermission perm )
+ {
+ Validate.isTrue( perm.getApplication().equals( m_name ),
+ "Cannot add BitPermission " + perm.getName()
+ + " owned by " + perm.getApplication()
+ + " to " + m_name ) ;
+
+ // do this to make the lazy list grow if it has to
+ m_mapping.get( perm.getIndex() ) ;
+
+ m_mapping.set( perm.getIndex(), perm ) ;
+ m_perms.put( perm.getName(), perm ) ;
+
+ if ( perm instanceof Observable )
+ {
+ ( ( Observable ) perm ).addObserver( this ) ;
+ }
+
+ setChanged() ;
+ notifyObservers( perm ) ;
+
+ return perm ;
+ }
+
+
+ /**
+ * Removes a BitPermission from this application
+ *
+ * @param perm the permission to be removed
+ * @return the removed permission
+ */
+ protected BitPermission removePermission( BitPermission perm )
+ {
+ m_mapping.set( perm.getIndex(), null ) ;
+ m_perms.remove( perm.getName() ) ;
+
+ if ( perm instanceof Observable )
+ {
+ ( ( Observable ) perm ).deleteObserver( this ) ;
+ }
+
+ setChanged() ;
+ notifyObservers( perm ) ;
+
+ return perm ;
+ }
+
+
+ /**
+ * Adds a Role to this Application.
+ *
+ * @param role the Role to add
+ */
+ protected void addRole( Role role )
+ {
+ m_roles.put( role.getName(), role ) ;
+
+ if ( role instanceof Observable )
+ {
+ ( ( Observable ) role ).addObserver( this ) ;
+ }
+
+ setChanged() ;
+ notifyObservers( role ) ;
+ }
+
+
+ /**
+ * Removes a Role from this Application.
+ *
+ * @param roleName the name of the Role to remove
+ */
+ protected void deleteRole( String roleName ) throws RmsException
+ {
+ Role role = ( Role ) m_roles.remove( roleName ) ;
+
+ if ( role instanceof Observable )
+ {
+ ( ( Observable ) role ).addObserver( this ) ;
+ }
+
+ setChanged() ;
+ notifyObservers( role ) ;
+ }
+
+
+ /**
+ * Renames this Application.
+ *
+ * @param name the new name to rename this Application to
+ * @throws RmsException not really thrown but shuts up compiler
+ */
+ protected void rename( String name ) throws RmsException
+ {
+ String old = m_name ;
+ m_name = name ;
+ setChanged() ;
+ notifyObservers( old ) ;
+ }
+
+
+ /*
+ * Cleans up the maps of permissions when the names of Roles and
+ * permissions change. Basically the entries with the old names
+ * as keys are removed and the new name is used to re-add the entry
+ * back to the map.
+ *
+ * WARNING: It is automatically presumed that permission and role name
+ * changes propagate updates using the old name as the argument.
+ *
+ * (non-Javadoc)
+ * @see java.util.Observer#update(java.util.Observable, java.lang.Object)
+ */
+ public void update( Observable o, Object arg )
+ {
+ if ( o instanceof BitPermission )
+ {
+ BitPermission perm = ( BitPermission ) o ;
+
+ // we have a permission name change
+ if ( arg instanceof String )
+ {
+ String oldName = ( String ) arg ;
+
+ synchronized ( m_perms )
+ {
+ m_perms.remove( oldName ) ;
+ m_perms.put( perm.getName(), perm ) ;
+ }
+ }
+ }
+ else if ( o instanceof Role )
+ {
+ Role role = ( Role ) o ;
+
+ // we have a permission name change
+ if ( arg instanceof String )
+ {
+ String oldName = ( String ) arg ;
+
+ synchronized ( m_roles )
+ {
+ m_roles.remove( oldName ) ;
+ m_roles.put( role.getName(), role ) ;
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
Added: incubator/directory/rms/trunk/api/src/java/org/apache/rms/DefaultBitPermission.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/api/src/java/org/apache/rms/DefaultBitPermission.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,158 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms ;
+
+
+/**
+ * The default BitPermission implementation.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 31 $
+ */
+public class DefaultBitPermission implements BitPermission
+{
+ /** the name of the perm */
+ private String m_name ;
+ /** the name of the application defining this BitPermission*/
+ private String m_appName ;
+ /** the index of the perm */
+ private int m_idx ;
+
+
+ /**
+ * Creates a default BitPermission.
+ *
+ * @param name the name of the perm
+ * @param idx the index of the perm
+ * @param appName the name of the application defining this BitPermission
+ */
+ public DefaultBitPermission( String name, int idx, String appName )
+ {
+ m_idx = idx ;
+ m_name = name ;
+ m_appName = appName ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.BitPermission#getIndex()
+ */
+ public int getIndex()
+ {
+ return m_idx ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.BitPermission#getName()
+ */
+ public String getName()
+ {
+ return m_name ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.BitPermission#getApplication()
+ */
+ public String getApplication()
+ {
+ return m_appName ;
+ }
+
+
+ /**
+ * Sets the name of this BitPermission.
+ *
+ * @param permName the permission name to set
+ */
+ protected void setName( String permName )
+ {
+ m_name = permName ;
+ }
+
+
+ /*
+ * (non-Javadoc)
+ * @see java.lang.Object#toString()
+ */
+ public String toString()
+ {
+ StringBuffer l_buf = new StringBuffer( "BitPermission( " ) ;
+ l_buf.append( m_name ) ;
+ l_buf.append( ", " ) ;
+ l_buf.append( m_appName ) ;
+ l_buf.append( ", " ) ;
+ l_buf.append( m_idx ) ;
+ l_buf.append( " )" ) ;
+ return l_buf.toString() ;
+ }
+
+
+ /**
+ * Tests for equality where the index, name and application name of
+ * both indices must be equal before returning true.
+ *
+ * @param o the object to compare this DefaultBitPermission to
+ * @return true if the bit permissions are equal irrespective of
+ * implementation, false if they are not
+ */
+ public boolean equals( Object o )
+ {
+ if ( this == o )
+ {
+ return true ;
+ }
+ if ( ! ( o instanceof BitPermission ) )
+ {
+ return false ;
+ }
+
+ final BitPermission defaultBitPermission = ( BitPermission ) o ;
+
+ if ( m_idx != defaultBitPermission.getIndex() )
+ {
+ return false ;
+ }
+ if ( ! m_appName.equals( defaultBitPermission.getApplication() ) )
+ {
+ return false ;
+ }
+ if ( ! m_name.equals( defaultBitPermission.getName() ) )
+ {
+ return false ;
+ }
+
+ return true ;
+ }
+
+
+ /**
+ * Calculates this DefaultBitPermission's hashCode by factoring into
+ * account the name, index and application name.
+ *
+ * @return the composite hash code
+ */
+ public int hashCode()
+ {
+ int result ;
+ result = m_name.hashCode() ;
+ result = 29 * result + m_appName.hashCode() ;
+ result = 29 * result + m_idx ;
+ return result ;
+ }
+}
Added: incubator/directory/rms/trunk/api/src/java/org/apache/rms/DefaultProfile.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/api/src/java/org/apache/rms/DefaultProfile.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,537 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms ;
+
+
+import java.util.Map ;
+import java.util.HashMap ;
+import java.util.Iterator ;
+import java.util.Observer ;
+import java.util.Observable ;
+import java.util.Collections ;
+
+import java.security.AccessControlException ;
+
+import org.apache.commons.lang.Validate ;
+
+
+/**
+ * A default User Profile bean implementation for an Application.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 11 $
+ */
+public abstract class DefaultProfile implements Profile, Observer
+{
+ /** the name of the User this Profile is for */
+ private final String m_userName ;
+ /** the application this Profile is for */
+ private final Application m_application ;
+ /** the roles assigned to this Profile */
+ private final Map m_roles ;
+ /** the permissions granted to this Profile */
+ private byte[] m_grants ;
+ /** the permissions denied by this Profile */
+ private byte[] m_denials ;
+ /** the effective calculated permissions for this Profile */
+ private byte[] m_permissions ;
+
+
+ /**
+ * Creates a default User Profile for an Application.
+ *
+ * @param userName the name of the User this Profile is for
+ * @param application the application this Profile is for
+ * @param roles the roles assigned to this Profile
+ * @param grants the permissions granted to this Profile
+ * @param denials the permissions denied by this Profile
+ * @param permissions the effective calculated permissions for this Profile
+ */
+ public DefaultProfile( String userName, Application application, Map roles,
+ byte[] grants, byte[] denials, byte[] permissions)
+ {
+ Validate.notNull( userName,
+ "userName for DefaultProfile cannot be null" ) ;
+ m_userName = userName ;
+
+ Validate.notNull( application,
+ "application for DefaultProfile cannot be null" ) ;
+ m_application = application ;
+
+ if ( roles != null )
+ {
+ m_roles = roles ;
+ }
+ else
+ {
+ m_roles = new HashMap() ;
+ }
+
+ // add myself as an observer of all roles that are added to me
+ Iterator list = m_roles.values().iterator() ;
+ while ( list.hasNext() )
+ {
+ Role role = ( Role ) list.next() ;
+ if ( role instanceof Observable )
+ {
+ Observable o = ( Observable ) role ;
+ o.addObserver( this ) ;
+ }
+ }
+
+
+ if ( grants == null || grants.length == 0 )
+ {
+ m_grants = new byte[1] ;
+ }
+ else
+ {
+ m_grants = grants ;
+ }
+
+ if ( denials == null || denials.length == 0 )
+ {
+ m_denials = new byte[1] ;
+ }
+ else
+ {
+ m_denials = denials ;
+ }
+
+ if ( permissions == null || permissions.length == 0 )
+ {
+ m_permissions = new byte[1] ;
+ }
+ else
+ {
+ m_permissions = permissions ;
+ }
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.Profile#getUserName()
+ */
+ public String getUserName()
+ {
+ return m_userName ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.Profile#getApplicationName()
+ */
+ public String getApplicationName()
+ {
+ return m_application.getName() ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.Profile#getRoles()
+ */
+ public Iterator getRoles()
+ {
+ return m_roles.values().iterator() ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.Profile#hasRole(org.apache.rms.Role)
+ */
+ public boolean hasRole( Role role )
+ {
+ return m_roles.containsKey( role.getName() ) ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.Profile#hasRole(java.lang.String)
+ */
+ public boolean hasRole( String role )
+ {
+ return m_roles.containsKey( role ) ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.Profile#getGrants()
+ */
+ public Iterator getGrants()
+ {
+ return new BitPermissionIterator( m_application, m_grants ) ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.Profile#hasGrant(java.lang.String)
+ */
+ public boolean hasGrant( String permission )
+ {
+ BitPermission l_perm = m_application.getPermission( permission ) ;
+ return BitUtils.getBit( m_grants, l_perm.getIndex() ) ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.Profile#hasGrant(org.apache.rms.BitPermission)
+ */
+ public boolean hasGrant( BitPermission permission )
+ {
+ return BitUtils.getBit( m_grants, permission.getIndex() ) ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.Profile#getDenials()
+ */
+ public Iterator getDenials()
+ {
+ return new BitPermissionIterator( m_application, m_denials ) ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.Profile#hasDenial(java.lang.String)
+ */
+ public boolean hasDenial( String permission )
+ {
+ BitPermission l_perm = m_application.getPermission( permission ) ;
+ return BitUtils.getBit( m_denials, l_perm.getIndex() ) ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.Profile#hasDenial(org.apache.rms.BitPermission)
+ */
+ public boolean hasDenial( BitPermission permission )
+ {
+ return BitUtils.getBit( m_denials, permission.getIndex() ) ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.Profile#getPermissions()
+ */
+ public Iterator getPermissions()
+ {
+ return new BitPermissionIterator( m_application, m_permissions ) ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.Profile#hasPermission(java.lang.String)
+ */
+ public boolean hasPermission( String permission )
+ {
+ BitPermission l_perm = m_application.getPermission( permission ) ;
+ return BitUtils.getBit( m_permissions, l_perm.getIndex() ) ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.Profile#hasPermission(org.apache.rms.BitPermission)
+ */
+ public boolean hasPermission( BitPermission permission )
+ {
+ return BitUtils.getBit( m_permissions, permission.getIndex() ) ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.Profile#checkPermission(org.apache.rms.BitPermission)
+ */
+ public void checkPermission( BitPermission permission )
+ {
+ if ( ! BitUtils.getBit( m_permissions, permission.getIndex() ) )
+ {
+ throw new AccessControlException( m_userName + " user in "
+ + m_application.getName()
+ + " application does not possess the "
+ + permission.getName() + " permission." ) ;
+ }
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.Profile#checkPermission(java.lang.String)
+ */
+ public void checkPermission( String permission )
+ {
+ BitPermission l_perm = m_application.getPermission( permission ) ;
+ checkPermission( l_perm ) ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.Profile#checkPermission(org.apache.rms.BitPermission,
+ * java.lang.String)
+ */
+ public void checkPermission( BitPermission permission, String message )
+ {
+ if ( ! BitUtils.getBit( m_permissions, permission.getIndex() ) )
+ {
+ throw new AccessControlException( message ) ;
+ }
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.Profile#checkPermission(java.lang.String,java.lang.String)
+ */
+ public void checkPermission( String permission, String message )
+ {
+ BitPermission l_perm = m_application.getPermission( permission ) ;
+ checkPermission( l_perm, message ) ;
+ }
+
+
+ // ------------------------------------------------------------------------
+ // protected methods used by subclass of the mutable type
+ // ------------------------------------------------------------------------
+
+
+ /**
+ * Grants a permission to this Profile by adding the permission to the
+ * list of grants.
+ *
+ * @param permission the permission to grant
+ * @throws RmsException not really thrown - shuts compiler up
+ */
+ protected void grant( BitPermission permission ) throws RmsException
+ {
+ m_grants = BitUtils.setBit( m_grants, permission.getIndex(), true ) ;
+ }
+
+
+ /**
+ * Grants a permission to this Profile by adding the permission to the
+ * list of grants.
+ *
+ * @param permName the name of the permission to grant
+ * @throws RmsException not really thrown - shuts compiler up
+ */
+ protected void grant( String permName ) throws RmsException
+ {
+ grant( m_application.getPermission( permName ) ) ;
+ }
+
+
+ /**
+ * Denies a permission for this Profile by adding the permission to the
+ * list of denials.
+ *
+ * @param permission the permission to deny
+ * @throws RmsException not really thrown - shuts compiler up
+ */
+ protected void deny( BitPermission permission ) throws RmsException
+ {
+ m_denials = BitUtils.setBit( m_denials, permission.getIndex(), true ) ;
+ }
+
+
+ /**
+ * Denies a permission for this Profile by adding the permission to the
+ * list of denials.
+ *
+ * @param permName the name of the permission to deny
+ * @throws RmsException not really thrown - shuts compiler up
+ */
+ protected void deny( String permName ) throws RmsException
+ {
+ deny( m_application.getPermission( permName ) ) ;
+ }
+
+
+ /**
+ * Revokes a granted permission by removing the permission from the list of
+ * grants.
+ *
+ * @param permission the granted permission to revoke
+ * @throws RmsException not really thrown - shuts compiler up
+ */
+ protected void revokeGrant( BitPermission permission ) throws RmsException
+ {
+ m_grants = BitUtils.setBit( m_grants, permission.getIndex(), false ) ;
+ }
+
+
+ /**
+ * Revokes a granted permission by removing the permission from the list of
+ * grants.
+ *
+ * @param permName the name of the granted permission to revoke
+ * @throws RmsException not really thrown - shuts compiler up
+ */
+ protected void revokeGrant( String permName ) throws RmsException
+ {
+ revokeGrant( m_application.getPermission( permName ) ) ;
+ }
+
+
+ /**
+ * Revokes a denied permission by removing the permission from the list of
+ * denials.
+ *
+ * @param permission the denied permission to revoke
+ * @throws RmsException not really thrown - shuts compiler up
+ */
+ protected void revokeDenial( BitPermission permission ) throws RmsException
+ {
+ m_denials = BitUtils.setBit( m_denials, permission.getIndex(), false ) ;
+ }
+
+
+ /**
+ * Revokes a denied permission by removing the permission from the list of
+ * denials.
+ *
+ * @param permName the name of the denied permission to revoke
+ * @throws RmsException not really thrown - shuts compiler up
+ */
+ protected void revokeDenial( String permName ) throws RmsException
+ {
+ revokeDenial( m_application.getPermission( permName ) ) ;
+ }
+
+
+ /**
+ * Gets the grants bits as a byte array.
+ *
+ * @return the grants bits
+ */
+ protected byte[] getGrantBits()
+ {
+ return m_grants ;
+ }
+
+
+ /**
+ * Gets the denials bits as a byte array.
+ *
+ * @return the denials bits
+ */
+ protected byte[] getDenialBits()
+ {
+ return m_denials ;
+ }
+
+
+ /**
+ * Gets the effective permissions bits as a byte array.
+ *
+ * @return the effective permissions bits
+ */
+ protected byte[] getEffectiveBits()
+ {
+ return m_permissions ;
+ }
+
+
+ /**
+ * Sets the effective permissions for this Profile.
+ *
+ * @param permissions the effective permissions to set
+ */
+ protected void setEffectiveBits( byte[] permissions )
+ {
+ m_permissions = permissions ;
+ }
+
+
+ /**
+ * Adds a Role to this Profile.
+ *
+ * @param role the Role to add to this Profile
+ * @throws RmsException if there is a problem accessing the backing store
+ */
+ protected void addRole( Role role ) throws RmsException
+ {
+ Validate.isTrue( ! m_roles.containsKey( role.getName() ),
+ "Role already assigned to this profile!" ) ;
+ m_roles.put( role.getName(), role ) ;
+
+ if ( role instanceof Observable )
+ {
+ ( ( Observable ) role ).addObserver( this ) ;
+ }
+ }
+
+
+ /**
+ * Adds a Role to this Profile.
+ *
+ * @param roleName the name of the Role to add to this Profile
+ * @throws RmsException if there is a problem accessing the backing store
+ */
+ protected void addRole( String roleName ) throws RmsException
+ {
+ addRole( m_application.getRole( roleName ) ) ;
+ }
+
+
+ /**
+ * Removes a Role from this Profile.
+ *
+ * @param role the Role to remove from this Profile
+ * @throws RmsException if there is a problem accessing the backing store
+ */
+ protected void removeRole( Role role ) throws RmsException
+ {
+ Validate.isTrue( m_roles.containsKey( role.getName() ),
+ "Role not assigned to this profile!" ) ;
+ m_roles.remove( role.getName() ) ;
+
+ if ( role instanceof Observable )
+ {
+ ( ( Observable ) role ).deleteObserver( this ) ;
+ }
+ }
+
+
+ /**
+ * Removes a Role from this Profile.
+ *
+ * @param roleName the name of the Role to remove from this Profile
+ * @throws RmsException if there is a problem accessing the backing store
+ */
+ protected void removeRole( String roleName ) throws RmsException
+ {
+ removeRole( m_application.getRole( roleName ) ) ;
+ }
+
+
+ /**
+ * Gets a map of role names to roles for this Profile. The returned map
+ * is immutable.
+ *
+ * @todo see if this should make its way into the Profile interface and
+ * be public instead of only available to mutables. One can't change
+ * anything so long as we return unmodifiable wrappers of collections.
+ * @return the map of role names to roles for this Profile
+ */
+ protected Map getRolesMap()
+ {
+ return Collections.unmodifiableMap( m_roles ) ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see java.util.Observer#update(java.util.Observable, java.lang.Object)
+ */
+ public abstract void update( Observable o, Object arg ) ;
+}
Added: incubator/directory/rms/trunk/api/src/java/org/apache/rms/DefaultRole.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/api/src/java/org/apache/rms/DefaultRole.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,308 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms ;
+
+
+import java.util.Iterator ;
+import java.util.Observable ;
+import java.security.AccessControlException ;
+
+import org.apache.commons.lang.Validate ;
+import org.apache.commons.lang.ArrayUtils ;
+
+
+/**
+ * A default Role bean implementation.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 11 $
+ */
+public abstract class DefaultRole extends Observable implements Role
+{
+ /** the name of this Role */
+ private String m_name ;
+ /** the application the Role is defined for */
+ private Application m_app ;
+ /** the permission grants for this Role */
+ private byte[] m_grants ;
+
+
+ /**
+ * Creates a default Role instance.
+ *
+ * @param name the name of the Role
+ * @param grants the granted binary permissions for the Role
+ * @param an_app the application the Role is defined for
+ */
+ public DefaultRole( String name, byte[] grants, Application an_app )
+ {
+ m_app = an_app ;
+ m_name = name ;
+
+ if ( grants == null )
+ {
+ m_grants = ArrayUtils.EMPTY_BYTE_ARRAY ;
+ }
+ else
+ {
+ m_grants = grants ;
+ }
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.Role#getName()
+ */
+ public String getName()
+ {
+ return m_name ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.Role#getApplication()
+ */
+ public String getApplicationName()
+ {
+ return m_app.getName() ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.Role#hasPermission(java.lang.String)
+ */
+ public boolean hasPermission( String permission )
+ {
+ BitPermission l_perm = m_app.getPermission( permission ) ;
+ return BitUtils.getBit( m_grants, l_perm.getIndex() ) ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.Role#hasPermission(org.apache.rms.BitPermission)
+ */
+ public boolean hasPermission( BitPermission permission )
+ {
+ return BitUtils.getBit( m_grants, permission.getIndex() ) ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.Profile#checkPermission(org.apache.rms.BitPermission)
+ */
+ public void checkPermission( BitPermission permission )
+ {
+ if ( ! BitUtils.getBit( m_grants, permission.getIndex() ) )
+ {
+ throw new AccessControlException( m_name + " role in "
+ + m_app.getName() + " application does not possess the "
+ + permission.getName() + " permission." ) ;
+ }
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.Profile#checkPermission(java.lang.String)
+ */
+ public void checkPermission( String permission )
+ {
+ BitPermission l_perm = m_app.getPermission( permission ) ;
+ checkPermission( l_perm ) ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.Profile#checkPermission(org.apache.rms.BitPermission,
+ * java.lang.String)
+ */
+ public void checkPermission( BitPermission permission, String message )
+ {
+ if ( ! BitUtils.getBit( m_grants, permission.getIndex() ) )
+ {
+ throw new AccessControlException( message ) ;
+ }
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.Profile#checkPermission(java.lang.String, java.lang.String)
+ */
+ public void checkPermission( String permission, String message )
+ {
+ BitPermission l_perm = m_app.getPermission( permission ) ;
+ checkPermission( l_perm, message ) ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.Role#getGrants()
+ */
+ public Iterator getGrants()
+ {
+ return new BitPermissionIterator( m_app, m_grants ) ;
+ }
+
+
+ /*
+ * (non-Javadoc)
+ * @see java.lang.Object#toString()
+ */
+ public String toString()
+ {
+ StringBuffer l_buf = new StringBuffer( "Role: ( " ) ;
+ l_buf.append( m_name ) ;
+ l_buf.append( ", " ) ;
+ l_buf.append( m_app.getName() ) ;
+ l_buf.append( " )" ) ;
+ l_buf.append( "\n\t\tGrants:\n\t\t[\n" ) ;
+
+ Iterator l_grants = getGrants() ;
+ while ( l_grants.hasNext() )
+ {
+ l_buf.append( "\t\t\t" ) ;
+ l_buf.append( l_grants.next() ) ;
+ l_buf.append( '\n' ) ;
+ }
+
+ l_buf.append( "\t\t]" ) ;
+ return l_buf.toString() ;
+ }
+
+
+ // ------------------------------------------------------------------------
+ // protected methods for use by mutable implementations
+ // ------------------------------------------------------------------------
+
+
+ /**
+ * Grants a permission to this Role.
+ *
+ * Updates all Observers as a side-effect.
+ *
+ * @param permission the permission to grant
+ */
+ protected void grant( BitPermission permission ) throws RmsException
+ {
+ Validate.isTrue( permission.getApplication().equals( getApplicationName() ),
+ "Cannot grant permission that is not defined for application "
+ + getApplicationName() ) ;
+ m_grants = BitUtils.setBit( m_grants, permission.getIndex(), true ) ;
+
+ super.setChanged() ;
+ super.notifyObservers( permission ) ;
+ }
+
+
+ /**
+ * Revokes a permission from this Role. Ultimately this calls the other
+ * overload which sends an update signal to all Observers.
+ *
+ * @param permName the name of the permission to revoke
+ */
+ protected void revoke( String permName ) throws RmsException
+ {
+ Validate.isTrue( hasPermission( permName ),
+ "Permission " + permName + " has not been granted!") ;
+ revoke( m_app.getPermission( permName ) ) ;
+ }
+
+
+ /**
+ * Revokes a permission from this Role.
+ *
+ * Updates all Observers as a side-effect.
+ *
+ * @param permission the permission to revoke
+ */
+ protected void revoke( BitPermission permission ) throws RmsException
+ {
+ Validate.isTrue( permission.getApplication().equals( getApplicationName() ),
+ "Cannot revoke permission that is not defined for application "
+ + getApplicationName() ) ;
+ m_grants = BitUtils.setBit( m_grants, permission.getIndex(), false ) ;
+
+ super.setChanged() ;
+ super.notifyObservers( permission ) ;
+ }
+
+
+ /**
+ * Grants a permission to this Role. Ultimately this calls the other over-
+ * load which sends an update signal to all Observers.
+ *
+ * @param permName the name of the permission to grant
+ */
+ protected void grant( String permName ) throws RmsException
+ {
+ Validate.isTrue( ! hasPermission( permName ),
+ "Permission " + permName + " has already been granted!") ;
+ grant( m_app.getPermission( permName ) ) ;
+ }
+
+
+ /**
+ * Gets the byte array for the permission grants of this Role.
+ *
+ * @return the byte array containing bit permission grants
+ */
+ protected byte[] getGrantBits()
+ {
+ return ( byte[] ) m_grants.clone() ;
+ }
+
+
+ /**
+ * Arbitrarily sets the grants bits for this Role also causing a
+ * notification for all observers.
+ *
+ * @param grants the new grants to set.
+ */
+ protected void setGrantsBits( byte[] grants)
+ {
+ m_grants = grants ;
+
+ setChanged() ;
+ notifyObservers( grants ) ;
+ }
+
+
+ /**
+ * Renames this Role sending an update signal to all observers.
+ *
+ * @param name the new name of this Role
+ * @throws RmsException shuts the compiler up - not really thrown
+ */
+ protected void rename( String name ) throws RmsException
+ {
+ String old = m_name ;
+ m_name = name ;
+
+ super.setChanged() ;
+ super.notifyObservers( old ) ;
+ }
+
+
+ /**
+ * Gets the Application this Role is defined for.
+ *
+ * @return this Role's application
+ */
+ protected Application getApplication()
+ {
+ return m_app ;
+ }
+}
Added: incubator/directory/rms/trunk/api/src/java/org/apache/rms/DefaultUser.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/api/src/java/org/apache/rms/DefaultUser.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,164 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms ;
+
+
+import java.util.Map ;
+import java.util.Iterator ;
+
+
+/**
+ * A default RMS User implementation.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 11 $
+ */
+public class DefaultUser implements User
+{
+ /** map of app names to this User's Profiles object for them */
+ private final Map m_profiles ;
+ /** the unique name of this User */
+ private String m_name ;
+
+
+ // ------------------------------------------------------------------------
+ // C O N S T R U C T O R S
+ // ------------------------------------------------------------------------
+
+
+ /**
+ * Creates a new default RMS User.
+ *
+ * @param name the unique name of this User
+ * @param profiles a Map of application names to this User's Profiles
+ * object for those applications
+ */
+ public DefaultUser( String name, Map profiles )
+ {
+ m_name = name ;
+ m_profiles = profiles ;
+ }
+
+
+ // ------------------------------------------------------------------------
+ // I N T E R F A C E I M P L E M E N T A T I O N S
+ // ------------------------------------------------------------------------
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.User#getName()
+ */
+ public String getName()
+ {
+ return m_name ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.User#getProfile(java.lang.String)
+ */
+ public Profile getProfile( String application )
+ {
+ return ( Profile ) m_profiles.get( application ) ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.User#getProfile(org.apache.rms.Application)
+ */
+ public Profile getProfile( Application application )
+ {
+ return ( Profile ) m_profiles.get( application.getName() ) ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.User#getProfiles()
+ */
+ public Iterator getProfiles()
+ {
+ return m_profiles.values().iterator() ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.User#hasProfile(java.lang.String)
+ */
+ public boolean hasProfile( String application )
+ {
+ return m_profiles.containsKey( application ) ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.User#hasProfile(org.apache.rms.Application)
+ */
+ public boolean hasProfile( Application application )
+ {
+ return m_profiles.containsKey( application.getName() ) ;
+ }
+
+
+ // ------------------------------------------------------------------------
+ // protected mutators
+ // ------------------------------------------------------------------------
+
+
+ /**
+ * Adds a profile to this user.
+ *
+ * @param profile a new profile for this user
+ */
+ protected void add( Profile profile )
+ {
+ m_profiles.put( profile.getApplicationName(), profile ) ;
+ }
+
+
+ /**
+ * Removes a Profile form this User.
+ *
+ * @param profile the Profile to remove
+ */
+ protected void remove( Profile profile )
+ {
+ m_profiles.remove( profile.getApplicationName() ) ;
+ }
+
+
+ /**
+ * Removes a Profile form this User.
+ *
+ * @param appName the application name for which to remove the profile
+ */
+ protected void removeProfile( String appName )
+ {
+ m_profiles.remove( appName ) ;
+ }
+
+
+ /**
+ * Renames this User.
+ *
+ * @param name the new name of this User
+ * @throws RmsException not really thrown but need to shut compiler up
+ */
+ protected void rename( String name ) throws RmsException
+ {
+ m_name = name ;
+ }
+}
Added: incubator/directory/rms/trunk/api/src/java/org/apache/rms/Profile.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/api/src/java/org/apache/rms/Profile.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,247 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Eve Directory Server", "Apache Directory Project", "Apache Eve"
+ and "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache@apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.rms ;
+
+
+import java.util.Iterator ;
+
+
+/**
+ * <p>
+ * An RMS user's application profile. RMS manages users as well as
+ * applications. RMS Users are associated with RMS Applications via the
+ * concept of an application specific profile for a user. This class models
+ * that profile by associating the user with an application and allowing the
+ * assignment of roles to the profile hence the user.
+ * </p>
+ * <p>
+ * The Profile also possesses three sets of BitPermissions used for handling
+ * authorization policies. The three BitPermission sets are: grants, denials
+ * and the effective calculated permissions. Roles assigned to the Profile
+ * cause the Profile to inherit Role grants. Besides this means of inheriting
+ * grants, Profiles allow for fine tuning the total effective permissions for
+ * the profile by allow for Profile grants and denials. The grants set contains
+ * extra BitPermissions added which may not be granted by assigned Roles. The
+ * denials set contains BitPermissions that are denied whether they are granted
+ * by Roles or within the grants BitPermissions. This way denials take
+ * precedence. For more information take a look at the documentation here:
+ * </p>
+ * <ul>
+ * <li><a href="http://openrms.sf.net">RMS User Guide</a></li>
+ * <li><a href="http://openrms.sf.net">RMS Developers Guide</a></li>
+ * </ul>
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 25 $
+ */
+public interface Profile
+{
+ /**
+ * Gets the name of the User this Profile is associated with.
+ *
+ * @return the name of this Profile's User
+ */
+ String getUserName() ;
+
+ /**
+ * Gets the name of the Application this Profile is associated with.
+ *
+ * @return the name of this Profile's Application
+ */
+ String getApplicationName() ;
+
+ /**
+ * Gets an iteration over the set of Roles the User is associated with
+ * according to this Profile.
+ *
+ * @return an Iterator over the set of Role objects the User is assigned
+ */
+ Iterator getRoles() ;
+
+ /**
+ * Checks to see if this Profile assigns a Role to its User.
+ *
+ * @param role the Role to test assignment to
+ * @return true if the User's Profile assigns the Role, false otherwise
+ */
+ boolean hasRole( Role role ) ;
+
+ /**
+ * Checks to see if this Profile assigns a Role to its User.
+ *
+ * @param role the name of the Role to test assignment to
+ * @return true if the User's Profile assigns the Role, false otherwise
+ */
+ boolean hasRole( String role ) ;
+
+ /**
+ * Gets an iteration over the set of BitPermission objects granted to this
+ * Profile.
+ *
+ * @return an Iterator of granted BitPermissions
+ */
+ Iterator getGrants() ;
+
+ /**
+ * Checks to see if a BitPermission has been granted to this Profile.
+ *
+ * @param permission the name of the BitPermission to test for
+ * @return true if the BitPermission is granted, false otherwise even if the
+ * name of the BitPermission is unrecognized
+ */
+ boolean hasGrant( String permission ) ;
+
+ /**
+ * Checks to see if a BitPermission has been granted to this Profile.
+ *
+ * @param permission the BitPermission to test for
+ * @return true if the BitPermission is granted, false otherwise
+ */
+ boolean hasGrant( BitPermission permission ) ;
+
+ /**
+ * Gets an iteration over the set of BitPermission objects explicitly
+ * denied by this Profile. This is the only time and place where negative
+ * permissions will ever be found.
+ *
+ * @return an Iterator of denied BitPermissions
+ */
+ Iterator getDenials() ;
+
+ /**
+ * Checks to see if a BitPermission has been denied by this Profile.
+ *
+ * @param permission the name of the BitPermission to test for
+ * @return true if the BitPermission is denied, false otherwise even if the
+ * name of the BitPermission is unrecognized
+ */
+ boolean hasDenial( String permission ) ;
+
+ /**
+ * Checks to see if a BitPermission has been denied by this Profile.
+ *
+ * @param permission the BitPermission to test for
+ * @return true if the BitPermission is denied, false otherwise
+ */
+ boolean hasDenial( BitPermission permission ) ;
+
+ /**
+ * Gets an iteration over the set of effective (net calculated) permission
+ * for the User associated with this Profile. An effective permission is
+ * calculated from the assigned Roles, BitPermission grants and denials of
+ * this Profile.
+ *
+ * @return an Iterator of BitPermission granted to this Profile
+ */
+ Iterator getPermissions() ;
+
+ /**
+ * Checks to see if the User associated with this Profile effectively has
+ * the BitPermission. An effective permission is calculated from the
+ * assigned Roles, BitPermission grants and denials of this Profile.
+ *
+ * @param permission the name of the BitPermission to test for
+ * @return true if the BitPermission is effectively granted, false
+ * otherwise even if the name of the BitPermission is unrecognized
+ */
+ boolean hasPermission( String permission ) ;
+
+ /**
+ * Checks to see if the User associated with this Profile effectively has
+ * the BitPermission. An effective permission is calculated from the
+ * assigned Roles, BitPermission grants and denials of this Profile.
+ *
+ * @param permission the BitPermission to test for
+ * @return true if the BitPermission is effectively granted, false otherwise
+ */
+ boolean hasPermission( BitPermission permission ) ;
+
+ /**
+ * Assertive permission check to test if this Profile has the effective
+ * permission.
+ *
+ * @param permission the permission name to check for
+ * @throws java.security.AccessControlException if the permission is not granted or
+ * inherited from an assigned Role
+ */
+ void checkPermission( String permission ) ;
+
+ /**
+ * Assertive permission check to test if this Profile has the effective
+ * permission.
+ *
+ * @param permission the permission to check for
+ * @throws java.security.AccessControlException if the permission is not granted or
+ * inherited from an assigned Role
+ */
+ void checkPermission( BitPermission permission ) ;
+
+ /**
+ * Assertive permission check to test if this Profile has the effective
+ * permission.
+ *
+ * @param permission the permission name to check for
+ * @param message to use for AccessControlException if it is thrown
+ * @throws java.security.AccessControlException if the permission is not granted or
+ * inherited from an assigned Role
+ */
+ void checkPermission( String permission, String message ) ;
+
+ /**
+ * Assertive permission check to test if this Profile has the effective
+ * permission.
+ *
+ * @param permission the permission to check for
+ * @param message to use for AccessControlException if it is thrown
+ * @throws java.security.AccessControlException if the permission is not granted or
+ * inherited from an assigned Role
+ */
+ void checkPermission( BitPermission permission, String message ) ;
+}
Added: incubator/directory/rms/trunk/api/src/java/org/apache/rms/Rms.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/api/src/java/org/apache/rms/Rms.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,268 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms ;
+
+
+import java.util.Iterator ;
+import java.util.Properties ;
+
+import org.apache.commons.lang.Validate ;
+import org.apache.commons.lang.NotImplementedException ;
+
+
+/**
+ * Top level Realm Management System facade. Serves as the public factory
+ * for managing top level components.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 25 $
+ */
+public abstract class Rms
+{
+ /** Property key 'rms.factory.provider' used to lookup the RMS provider */
+ public static final String RMS_FACTORY_PROP = "rms.factory.provider" ;
+
+ /** Cached Rms singleton */
+ private static Rms s_singleton ;
+
+
+ /**
+ * Gets the prviously initialized singleton instance. If one has not been
+ * initialized a discovery sequence is used to find the default provider
+ * and instantiate the singleton.
+ *
+ * @return the singleton instance
+ * @throws RmsException if there is an error getting the singleton instance
+ */
+ public final static Rms getInstance()
+ throws RmsException
+ {
+ if ( s_singleton != null )
+ {
+ return s_singleton ;
+ }
+
+ throw new NotImplementedException(
+ "Need to implement a default properties discovery perhaps"
+ + "\nusing the commons discovery code" ) ;
+ }
+
+
+ /**
+ * Initializes a specific provider specified through properties used to
+ * locate and instantiate that provider. As a side effect the singleton
+ * is set to the returned value and this method cannot be called again
+ * for this class without incurring an exception stating the singleton
+ * has already been initialized.
+ *
+ * @param props properties used to locate and instantiate that provider
+ * @return the provider instance
+ * @throws RmsException if there is an error initializing the instance
+ */
+ public final static Rms getInstance( Properties props )
+ throws RmsException
+ {
+ RmsFactory l_factory = null ;
+ String l_factoryName = props.getProperty( RMS_FACTORY_PROP ) ;
+
+ if ( s_singleton != null )
+ {
+ throw new RmsException( "Rms singleton already exists!" ) ;
+ }
+
+ Validate.notNull( l_factoryName ) ;
+ try
+ {
+ ClassLoader l_cl = Thread.currentThread().getContextClassLoader() ;
+ Class l_clazz = l_cl.loadClass( l_factoryName ) ;
+ l_factory = ( RmsFactory ) l_clazz.newInstance() ;
+
+ }
+ catch( ClassNotFoundException e )
+ {
+ throw new RmsException(
+ "Could not load RMS provider factory class: "
+ + l_factoryName, e ) ;
+ }
+ catch( InstantiationException e )
+ {
+ throw new RmsException( "Failed within default constructor of Rms "
+ + "provider factory class: " + l_factoryName ) ;
+ }
+ catch( IllegalAccessException e )
+ {
+ throw new RmsException( "Default constructor of Rms provider "
+ + "factory class is not publicly accessible: "
+ + l_factoryName ) ;
+ }
+
+ s_singleton = l_factory.newInstance( props ) ;
+ return s_singleton ;
+ }
+
+
+ /**
+ * Gets an Application by name.
+ *
+ * @param name the name of the Application
+ * @return the Application instance
+ * @throws RmsException if there is an error getting the Application
+ */
+ public abstract Application getApplication( String name )
+ throws RmsException ;
+
+ /**
+ * Gets iteration of all the Applications defined.
+ *
+ * @return an Iterator over Application objects
+ * @throws RmsException if there is an error getting the Applications
+ */
+ public abstract Iterator getApplications()
+ throws RmsException ;
+
+ /**
+ * Gets iteration of all the names of Applications defined.
+ *
+ * @return an Iterator over Strings of Application names
+ * @throws RmsException if there is an error getting the names
+ */
+ public abstract Iterator getApplicationNames()
+ throws RmsException ;
+
+ /**
+ * Gets a User by name.
+ *
+ * @param name the name of the User
+ * @return the User instance
+ * @throws RmsException if there is an error getting the User
+ */
+ public abstract User getUser( String name )
+ throws RmsException ;
+
+ /**
+ * Gets iteration of all the Users defined.
+ *
+ * @return an Iterator over User objects
+ * @throws RmsException if there is an error getting the Users
+ */
+ public abstract Iterator getUsers()
+ throws RmsException ;
+
+ /**
+ * Gets iteration of all the Users with a profile for an application.
+ *
+ * @param appName the name of the application
+ * @return an Iterator over User objects
+ * @throws RmsException if there is an error getting the Users
+ */
+ public abstract Iterator getUsers( String appName )
+ throws RmsException ;
+
+ /**
+ * Gets iteration of all the Users with a profile for an application in
+ * the specified role.
+ *
+ * @param appName the name of the application
+ * @param roleName the name of the role
+ * @return an Iterator over User's in the role
+ * @throws RmsException if there is an error getting the Users
+ */
+ public abstract Iterator getUsers( String appName, String roleName )
+ throws RmsException ;
+
+ /**
+ * Gets iteration of all the User names defined.
+ *
+ * @return an Iterator over User objects
+ * @throws RmsException if there is an error getting the Users
+ */
+ public abstract Iterator getUserNames()
+ throws RmsException ;
+
+ /**
+ * Gets iteration of all the User names with a profile for an application.
+ *
+ * @param appName the name of the application
+ * @return an Iterator over User objects
+ * @throws RmsException if there is an error getting the Users
+ */
+ public abstract Iterator getUserNames( String appName )
+ throws RmsException ;
+
+ /**
+ * Gets iteration of all the User names with a profile for an application in
+ * the specified role.
+ *
+ * @param appName the name of the application
+ * @param roleName the name of the role
+ * @return an Iterator over User's in the role
+ * @throws RmsException if there is an error getting the Users
+ */
+ public abstract Iterator getUserNames( String appName, String roleName )
+ throws RmsException ;
+
+ /**
+ * Adds a CacheListener for all cache events on all objects.
+ *
+ * @param listener the listener to register
+ */
+ public abstract void addCacheListener( CacheListener listener ) ;
+
+ /**
+ * Removes a CacheListener from recieving any events.
+ *
+ * @param listener the listener to unsubscribe
+ */
+ public abstract void removeCacheListener( CacheListener listener ) ;
+
+ /**
+ * Adds a CacheListener for cached objects of a specific class.
+ *
+ * @param listener the listener to register
+ * @param type the Class of cached objects to monitor
+ */
+ public abstract void addCacheListener( CacheListener listener,
+ Class type ) ;
+
+ /**
+ * Removes a CacheListener for cached objects of a specific class.
+ *
+ * @param listener the listener to unsubscribe
+ * @param type the Class of cached objects
+ */
+ public abstract void removeCacheListener( CacheListener listener,
+ Class type ) ;
+
+ /**
+ * Adds a CacheListener for a specific cached object.
+ *
+ * @param listener the listener to register
+ * @param object the cached object to monitor
+ */
+ public abstract void addCacheListener( CacheListener listener,
+ Object object ) ;
+
+ /**
+ * Removes a CacheListener for a cached object.
+ *
+ * @param listener the listener to unsubscribe
+ * @param object the cached object to stop monitoring
+ */
+ public abstract void removeCacheListener( CacheListener listener,
+ Object object ) ;
+
+}
Added: incubator/directory/rms/trunk/api/src/java/org/apache/rms/RmsException.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/api/src/java/org/apache/rms/RmsException.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,111 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Eve Directory Server", "Apache Directory Project", "Apache Eve"
+ and "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache@apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.rms ;
+
+
+import org.apache.commons.lang.exception.NestableException ;
+
+
+/**
+ * A nestable RMS exception.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 25 $
+ */
+public class RmsException extends NestableException
+{
+
+ // ------------------------------------------------------------------------
+ // C O N S T R U C T O R S
+ // ------------------------------------------------------------------------
+
+
+ /**
+ * Creates a simple exception with no message.
+ */
+ public RmsException()
+ {
+ super() ;
+ }
+
+
+ /**
+ * Creates a an exception with a message.
+ *
+ * @param message a message String indicating the problem
+ */
+ public RmsException( String message )
+ {
+ super( message ) ;
+ }
+
+
+ /**
+ * Creates a nested exception wrapping another throwable.
+ *
+ * @param nested the throwable wrapped by this RmsException.
+ */
+ public RmsException( Throwable nested )
+ {
+ super( nested ) ;
+ }
+
+
+ /**
+ * Creates a nested exception wrapping another throwable with a message.
+ *
+ * @param message a message String indicating the problem
+ * @param nested the throwable wrapped by this RmsException.
+ */
+ public RmsException( String message, Throwable nested )
+ {
+ super( message, nested ) ;
+ }
+}
Added: incubator/directory/rms/trunk/api/src/java/org/apache/rms/RmsFactory.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/api/src/java/org/apache/rms/RmsFactory.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,71 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Eve Directory Server", "Apache Directory Project", "Apache Eve"
+ and "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache@apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.rms ;
+
+
+import java.util.Properties ;
+
+
+/**
+ * A factory that creates an Rms instance.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 25 $
+ */
+public interface RmsFactory
+{
+ /**
+ * Creates a new instance of an Rms provider.
+ *
+ * @param props the properties for the specific RMS provider
+ * @return the RMS instance
+ */
+ Rms newInstance( Properties props ) throws RmsException ;
+}
Added: incubator/directory/rms/trunk/api/src/java/org/apache/rms/Role.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/api/src/java/org/apache/rms/Role.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,142 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Eve Directory Server", "Apache Directory Project", "Apache Eve"
+ and "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache@apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.rms ;
+
+
+import java.util.Iterator ;
+
+
+/**
+ * An RMS application Role. Roles are application specific and contain a set
+ * of permission grants. Users assigned to these Roles inherit the set of
+ * permission grants from their roles.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 25 $
+ */
+public interface Role
+{
+ /**
+ * Gets the name of this Role.
+ *
+ * @return the name of this Role
+ */
+ String getName() ;
+
+ /**
+ * Gets the application name this Role is defined for.
+ *
+ * @return the name of the application this Role is defined for.
+ */
+ String getApplicationName() ;
+
+ /**
+ * Checks to see if the Role was granted a permission.
+ *
+ * @param permission the permission to check for
+ * @return true if the permission is granted to this Role, false if the
+ * permission is not recognised or if it is not granted
+ */
+ boolean hasPermission( String permission ) ;
+
+ /**
+ * Checks to see if the Role was granted a permission.
+ *
+ * @param permission the permission to check for
+ * @return true if the permission is granted to this Role, false if it is
+ * not granted
+ */
+ boolean hasPermission( BitPermission permission ) ;
+
+ /**
+ * Assertive permission check to test if this Role has the effective
+ * permission.
+ *
+ * @param permission the permission name to check for
+ * @throws java.security.AccessControlException if the permission is not granted
+ */
+ void checkPermission( String permission ) ;
+
+ /**
+ * Assertive permission check to test if this Role has the effective
+ * permission.
+ *
+ * @param permission the permission to check for
+ * @throws java.security.AccessControlException if the permission is not granted
+ */
+ void checkPermission( BitPermission permission ) ;
+
+ /**
+ * Assertive permission check to test if this Role has the effective
+ * permission.
+ *
+ * @param permission the permission name to check for
+ * @param message to use for AccessControlException if it is thrown
+ * @throws java.security.AccessControlException if the permission is not granted
+ */
+ void checkPermission( String permission, String message ) ;
+
+ /**
+ * Assertive permission check to test if this Role has the effective
+ * permission.
+ *
+ * @param permission the permission to check for
+ * @param message to use for AccessControlException if it is thrown
+ * @throws java.security.AccessControlException if the permission is not granted
+ */
+ void checkPermission( BitPermission permission, String message ) ;
+
+ /**
+ * Gets an iteration of BitPermissions granted to this Role.
+ *
+ * @return an Iterator of BitPermissions instances granted to this Role
+ */
+ Iterator getGrants() ;
+}
Added: incubator/directory/rms/trunk/api/src/java/org/apache/rms/User.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/api/src/java/org/apache/rms/User.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,122 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Eve Directory Server", "Apache Directory Project", "Apache Eve"
+ and "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache@apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.rms ;
+
+
+import org.apache.rms.Application;
+import org.apache.rms.Profile;
+
+import java.util.Iterator ;
+
+
+/**
+ * An RMS user. RMS Users have zero or more Application specific Profiles
+ * containing information pertinant to the respective Application.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 25 $
+ */
+public interface User
+{
+ /**
+ * Gets the name of this User.
+ *
+ * @return the name of this User
+ */
+ String getName() ;
+
+ /**
+ * Gets this User's Profile for an application.
+ *
+ * @param an_application the name of the application to get the Profile for
+ * @return the Profile for the application or null if no profile exists for
+ * the specified application
+ */
+ Profile getProfile( String an_application ) ;
+
+ /**
+ * Gets this User's Profile for an application.
+ *
+ * @param an_application the Application to get the Profile for
+ * @return the Profile for the application or null if no profile exists for
+ * the specified application
+ */
+ Profile getProfile( Application an_application ) ;
+
+ /**
+ * Gets an Iterator over the set of Profiles for this User.
+ *
+ * @return an iterator over Profile objects
+ */
+ Iterator getProfiles() ;
+
+ /**
+ * Checks to see if a User has a Profile for an application.
+ *
+ * @param an_application the name of the application to test for a Profile
+ * @return true if a Profile exists, false if one does not exist or the
+ * application name does not exist
+ */
+ boolean hasProfile( String an_application ) ;
+
+ /**
+ * Checks to see if a User has a Profile for an application.
+ *
+ * @param an_application the Application to test for a Profile
+ * @return true if a Profile exists, false if one does not exist
+ */
+ boolean hasProfile( Application an_application ) ;
+
+ /**
+ * @link aggregation
+ * @label User Profiles
+ */
+ /*# Profile lnkProfile; */
+}
Added: incubator/directory/rms/trunk/api/src/java/org/apache/rms/package.html
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/api/src/java/org/apache/rms/package.html Wed Apr 7 18:57:22 2004
@@ -0,0 +1,17 @@
+<p>
+ The RMS Role Based Access Control (RBAC) package is designed to manage
+ Application and User permissions within an operational environment using
+ Roles. This common API provides the baseline framework for accessing RMS
+ managed authorization policies.
+</p>
+
+<p>
+ The above is acheived using binary permissions defined for Applications and
+ granted to Roles. Roles are defined specifically for Applications. Roles
+ are then assigned to the Profiles of Users. Users can have a Profile for each
+ Application defined within the system.
+</p>
+
+<p>
+ More later ...
+</p>
Added: incubator/directory/rms/trunk/api/src/test/org/apache/rms/BitUtilsTest.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/api/src/test/org/apache/rms/BitUtilsTest.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,77 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms ;
+
+
+import junit.framework.TestCase ;
+
+
+/**
+ * TestCase for BitUtils.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class BitUtilsTest extends TestCase
+{
+ /*
+ * @see TestCase#setUp()
+ */
+ protected void setUp() throws Exception
+ {
+ super.setUp() ;
+ }
+
+
+ /*
+ * @see TestCase#tearDown()
+ */
+ protected void tearDown() throws Exception
+ {
+ super.tearDown() ;
+ }
+
+
+ /*
+ * @see rms.rbac.BitUtils.getBit(byte[],int)
+ */
+ public void testGetBit()
+ {
+ byte [] bites = new byte[4] ;
+
+ bites[0] = 1 ;
+ bites[1] = 1 ;
+ bites[2] = 1 ;
+ bites[3] = 1 ;
+
+ StringBuffer l_buf = new StringBuffer() ;
+
+ for( int ii = 0 ; ii < 32; ii++ )
+ {
+ if ( BitUtils.getBit( bites, ii ) )
+ {
+ l_buf.append( '1' ) ;
+ }
+ else
+ {
+ l_buf.append( '0' ) ;
+ }
+ }
+
+ System.out.println( l_buf.toString() ) ;
+ }
+}
Added: incubator/directory/rms/trunk/api/xdocs/images/cache-classes-color.gif
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/api/xdocs/images/interface-aggregation-color.gif
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/api/xdocs/images/interface-aggregation.gif
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/api/xdocs/index.xml
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/api/xdocs/index.xml Wed Apr 7 18:57:22 2004
@@ -0,0 +1,260 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document>
+ <properties>
+ <author email="akarasulu@apache.org">Alex Karasulu</author>
+ <title>Role Based Access Control API</title>
+ </properties>
+ <body>
+
+ <section name="Introduction">
+ <p>
+ RMS centralizes the access and management of authorization policies
+ within the operational environment using simple role and permission
+ assignment scheme to user profiles.
+ </p>
+
+ <center>
+ <img src="./images/interface-aggregation-color.gif"/>
+ </center>
+
+ <p>
+ The UML diagram above models the aggregate relationships between RMS
+ entity interfaces. User and Application interfaces exist to model their
+ respective real world entities. Applications have permissions and
+ roles defined specifically for them: they aggregate instances of
+ Permissions and Roles and are modeled in red. Roles contain a set of
+ application permissions called grants. Grants represent the operations
+ given to those users acting in the role. Users are associated with
+ applications via profiles and are modeled in blue. A user's profile
+ has roles assigned to it to have the profile inherit the application
+ permissions granted to the role.
+ </p>
+
+ <p>
+ Besides permission inheritance from roles, user profiles can have
+ additional permissions granted specifically for the profile
+ or even have permissions denied to cancel grants inherited from role
+ assignments. These permission tweaks exist for the fine tuning of
+ a profile's effective permissions without having to resort to the
+ creation of roles to handle exceptional users.
+ </p>
+ </section>
+
+ <section name="API Usage">
+ <p>
+ This section describes how to use RMS APIs. For provider specific
+ information you might want to look at the provider usage guides for
+ the respective provider's here:
+ </p>
+
+ <ul>
+ <li><a href="../jdbc-impl/index.html">JDBC based RMS provider</a></li>
+ <li><a href="../jndi-impl/index.html">JNDI based RMS provider</a></li>
+ </ul>
+
+ <subsection name="Initializing RMS">
+ <p>
+ RMS uses a top level abstract factory class, <a href=
+ "./apidocs/rms/rbac/Rms.html">org.apache.rms.Rms</a>. The factory contains
+ static classes used to create and access singleton instances of the
+ Rms class. These static methods and their use are explained below:
+ </p>
+
+ <table>
+ <tr><th>Method</th><th>Description</th></tr>
+ <tr>
+ <td><a href=
+ "./apidocs/rms/rbac/Rms.html#getInstance()">getInstance()</a>
+ </td>
+ <td>
+ <p>
+ Used to access the existing singleton provider that was previously
+ initialized or to initialize and return the default Rms provider.
+ The default provider is loaded using a discovery sequence to find
+ the needed properties.
+ </p>
+ <p>
+ Calling this method will never complain about an attempt to
+ reinitialize the singleton. This method rather than the other
+ overload should be used to repeatedly access the singleton after
+ initialization has successfully occurred.
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td><a href=
+ "./apidocs/rms/rbac/Rms.html#getInstance(java.util.Properties)">
+ getInstance(java.util.Properties)</a>
+ </td>
+ <td>
+ <p>
+ Used to initialize the Rms provider. The method should only be
+ successfully called at most once. If called again after the
+ successful initialization of the system an RmsException will
+ be thrown to complain about attempts to create other instances
+ of a singleton object.
+ </p>
+ <p>
+ The properties argument holds Rms provider specific properties
+ as well as a value for the provider's RmsFactory implementation.
+ The <a href="./apidocs/rms/rbac/Rms.html#RMS_FACTORY_PROP">
+ Rms.RMS_FACTORY_PROP</a> property is used to hold the fully
+ qualified class name of the provider's RmsFactory implementation.
+ </p>
+ <p>
+ Calling this method will complain about repeated attempts to
+ reinitialize the singleton. This other no argument overload
+ should be used to repeatedly access the singleton after
+ initialization has successfully occurred.
+ </p>
+ </td>
+ </tr>
+ </table>
+ </subsection>
+
+ <subsection name="Application Interfaces">
+ <p>
+ Once an Rms provider instance is initialized it can be used to access
+ application permissions and roles. Below we have code to test of the
+ admin role of a petstore application is granted the CancelPurchase
+ permission:
+ </p>
+
+ <source>
+Rms rms = Rms.getInstance() ;
+Application petstore = rms.getApplication( "petstore" ) ;
+Role admin = petstore.getRole( "admin" ) ;
+if ( admin.hasPermission( "CancelPurchase" ) )
+{
+ ...
+}
+ </source>
+
+ <p>
+ Applications may on startup want to cache permissions for use
+ throughout the run of the application. This may be used to determine
+ if permission checks are valid and exist for the application in
+ the first place. An Iterator to the petstore application's defined
+ BitPermissions can be accessed like so:
+ </p>
+
+ <source>
+Rms rms = Rms.getInstance() ;
+Application petstore = rms.getApplication( "petstore" ) ;
+Iterator perms = petstore.getPermissions() ;
+while ( perms.hasNext() )
+{
+ ...
+}
+ </source>
+ </subsection>
+
+ <subsection name="User Interfaces">
+ <p>
+ The primary reason for an authorization API in the first place is to
+ determine whether or not a user has access to a particular resource
+ or operation. This is programmatically simple using the Rms User
+ interfaces and is similar to the way we tested to see if a Role has
+ a permission. Below we test to see if User akarasulu has the
+ permission to AccessBillingInformation within the petstore
+ Application:
+ </p>
+
+ <source>
+Rms rms = Rms.getInstance() ;
+User akarasulu = rms.getUser( "akarasulu" ) ;
+Profile profile = akarasulu.getProfile( "petstore" ) ;
+if ( profile.hasPermission( "AccessBillingInformation" ) )
+{
+ // Allow access to billing info here:
+ ...
+}
+ </source>
+
+ <p>
+ Sometimes its more convenient to determine whether or not a user is
+ denied access to a resouce. Because permission denials take
+ precedence over grants, the <code>hasDenial()</code> method can be
+ used to check for the opposite case. Barrowing from the above
+ example we could invert the situation to deny access like so:
+ </p>
+
+ <source>
+if ( profile.hasDenial( "AccessBillingInformation" ) )
+{
+ // Disallow access to billing info here:
+ throw new AccessControlException( "Access to billing info denied" ) ;
+}
+ </source>
+
+ <p>
+ Assertive checks can be used to handle these kinds of code blocks
+ in one simple line. Here's an example of the above authorization
+ check block using an assertion:
+ </p>
+
+ <source>
+profile.checkPermission( "AccessBillingInformation",
+ "Access to billing info denied" ) ;
+ </source>
+
+ <p>
+ If the AccessBillingInformation permission has not been granted to or
+ inherited by the akarasulu user profile for the petstore application
+ then an AccessControlException which is a RuntimeException is thrown.
+ If the message parameter is not provided for use as the message of
+ the thrown AccessControlException one is constructed. Assertive
+ permission checks are also available on Application Roles. This
+ single line assertion construct makes it easier to read application
+ code enforcing access control policies.
+ </p>
+ </subsection>
+
+ <subsection name="Change Notification">
+ <p>
+ RMS implementations may cache RMS value objects for performance.
+ However when these objects change in the backing store notifications
+ are recieved and updated if the RMS provider supports caching.
+ </p>
+
+ <center>
+ <img src="./images/cache-classes-color.gif"/>
+ </center>
+
+ <p>
+ Applications that want to be notified of changes to the RMS cache
+ create CacheListeners and register them for cache change events.
+ Methods on the Rms class are provided for adding and removing
+ listeners. Here's an example of an RMS CacheListener implementation
+ being added to the Rms provider:
+ </p>
+
+ <source>
+Rms rms = Rms.getInstance() ;
+rms.addCacheListener( new CacheListener()
+{
+ public void cacheChanged( CacheEvent event )
+ {
+ // Do something about it
+ }
+}) ;
+ </source>
+
+ <p>
+ Here all cache events will be delivered. Other overloads can be used
+ to restrict the noise from the cache by only registering for cache
+ events on a particular class of cached Rms object, or to add and
+ remove listeners on individual cache objects.
+ </p>
+
+ <p>
+ Rms providers for production systems all implement cache event
+ notification. These providers also recycle cached objects rather than
+ invalidating and recreating them. This saves on object creation
+ overheads when massive changes occur making the implementation much
+ more efficient.
+ </p>
+ </subsection>
+ </section>
+ </body>
+</document>
Added: incubator/directory/rms/trunk/api/xdocs/navigation.xml
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/api/xdocs/navigation.xml Wed Apr 7 18:57:22 2004
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<project>
+
+ <title>Realm Management System</title>
+
+ <body>
+
+ <links>
+ <item name="Home" href="../../index.html"/>
+ <item name="Project" href="http://sourceforge.net/projects/openrms"/>
+ </links>
+
+ <menu name="About RMS">
+ <item name="Overview" href="../../index.html"/>
+ <item name="Admin GUI" href="../../admin/index.html"/>
+ <item name="Reference" href="../../reference/index.html"/>
+ <item name="Development Log" href="../../log.html"/>
+ <item name="Authentication" href="../index.html"/>
+ <item name="Authorization" href="../index.html">
+ <item name="API" href="/index.html"/>
+ <item name="SPI" href="../spi/index.html"/>
+ <item name="JDBC Provider" href="../jdbc-impl/index.html"/>
+ <item name="JNDI Provider" href="../jndi-impl/index.html"/>
+ </item>
+ <item name="Preferences" href="../../preferences/index.html"/>
+ <item name="ResourceBundles" href="../../resource-bundles/index.html"/>
+ </menu>
+ </body>
+</project>
Added: incubator/directory/rms/trunk/gui/main/.classpath
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/.classpath Wed Apr 7 18:57:22 2004
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry excluding="rms/ui/images/" kind="src" path="src/java"/>
+ <classpathentry kind="var" path="JRE_LIB" sourcepath="JRE_SRC"/>
+ <classpathentry kind="var" path="MAVEN_REPO/avalon-framework/jars/avalon-framework-4.1.5.jar"/>
+ <classpathentry kind="var" path="MAVEN_REPO/commons-lang/jars/commons-lang-2.0.jar"/>
+ <classpathentry kind="var" path="MAVEN_REPO/commons-collections/jars/commons-collections-3.0.jar"/>
+ <classpathentry kind="src" path="/rms-rbac-api"/>
+ <classpathentry kind="src" path="/rms-rbac-jdbc-impl"/>
+ <classpathentry kind="src" path="/rms-gui-ocmm-api"/>
+ <classpathentry kind="src" path="/rms-gui-ocmm-impl"/>
+ <classpathentry kind="src" path="/rms-gui-ocmm-spi"/>
+ <classpathentry kind="src" path="/rms-gui-navtree"/>
+ <classpathentry kind="var" path="MAVEN_REPO/commons-beanutils/jars/commons-beanutils-1.6.jar"/>
+ <classpathentry kind="src" path="/rms-rbac-spi"/>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
Added: incubator/directory/rms/trunk/gui/main/.project
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/.project Wed Apr 7 18:57:22 2004
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>rms-gui-main</name>
+ <comment>The RMS Management Console or RMC is used to manage the entities within a realm. Applications, users, profiles, permissions, roles et. cetera. are managed by environment operators using this console application which directly alters the authoritative RMS datastore.</comment>
+ <projects>
+ <project>rms-gui-navtree</project>
+ <project>rms-gui-ocmm-api</project>
+ <project>rms-gui-ocmm-impl</project>
+ <project>rms-gui-ocmm-spi</project>
+ <project>rms-rbac-api</project>
+ <project>rms-rbac-jdbc-impl</project>
+ <project>rms-rbac-spi</project>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
Added: incubator/directory/rms/trunk/gui/main/conf/block.xml
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/conf/block.xml Wed Apr 7 18:57:22 2004
@@ -0,0 +1,33 @@
+
+<!-- definition of an embedded block -->
+
+<container name="rmc">
+ <classloader>
+ <classpath>
+ <repository>
+ <resource id="commons-logging:commons-logging" version="1.0.3"/>
+ <resource id="commons-codec:commons-codec" version="SNAPSHOT"/>
+ <resource id="commons-lang:commons-lang" version="2.0"/>
+ <resource id="commons-collections:commons-collections" version="3.0"/>
+ <resource id="commons-beanutils:commons-beanutils" version="1.6"/>
+ <resource id="incubator-directory:rms-api" version="SNAPSHOT"/>
+ <resource id="incubator-directory:rms-spi" version="SNAPSHOT"/>
+ <resource id="incubator-directory:rms-jdbc-provider" version="SNAPSHOT"/>
+ <resource id="incubator-directory:rms-gui-navtree" version="SNAPSHOT"/>
+ <resource id="incubator-directory:rms-gui-ocmm-api" version="SNAPSHOT"/>
+ <resource id="incubator-directory:rms-gui-ocmm-spi" version="SNAPSHOT"/>
+ <resource id="incubator-directory:rms-gui-ocmm-impl" version="SNAPSHOT"/>
+ <resource id="oracle:jdbc-thin-driver" version="9.2.0.1"/>
+ </repository>
+ </classpath>
+ </classloader>
+
+ <component name="ocmm-factory"
+ class="org.apache.rms.ui.ocmm.impl.MerlinOcmmFactory">
+ </component>
+
+ <component name="rms-management-console"
+ class="org.apache.rms.ui.RmsManagementConsole">
+ </component>
+
+</container>
Added: incubator/directory/rms/trunk/gui/main/conf/config.xml
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/conf/config.xml Wed Apr 7 18:57:22 2004
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<targets>
+
+ <target path="/rmc/rms-management-console">
+ <categories priority="DEBUG"/>
+ </target>
+
+ <target path="/rmc/ocmm-factory">
+ <categories priority="DEBUG"/>
+ </target>
+
+</targets>
Added: incubator/directory/rms/trunk/gui/main/gui-main.iml
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/gui-main.iml Wed Apr 7 18:57:22 2004
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module version="4" relativePaths="false">
+ <component name="ModuleRootManager" />
+ <component name="NewModuleRootManager">
+ <output url="file://$MODULE_DIR$/target/classes" />
+ <exclude-output />
+ <content url="file://$MODULE_DIR$">
+ <sourceFolder url="file://$MODULE_DIR$/src/java" isTestSource="false" />
+ </content>
+ <orderEntry type="inheritedJdk" />
+ <orderEntry type="sourceFolder" forTests="false" />
+ <orderEntry type="library" name="junit-3.8.1.jar" level="application" />
+ <orderEntry type="library" name="merlin-unit-3.2.10.jar" level="application" />
+ <orderEntry type="library" name="avalon-framework-api-4.1.5.jar" level="application" />
+ <orderEntry type="library" name="commons-beanutils-1.6.jar" level="application" />
+ <orderEntry type="library" name="clover-idea4.jar" level="application" />
+ <orderEntry type="library" name="commons-codec-SNAPSHOT.jar" level="application" />
+ <orderEntry type="library" name="commons-collections-3.0.jar" level="application" />
+ <orderEntry type="library" name="commons-lang-2.0.jar" level="application" />
+ <orderEntry type="library" name="commons-primitives-1.1-dev.jar" level="application" />
+ <orderEntry type="module" module-name="navtree" />
+ <orderEntry type="module" module-name="ocmm-api" />
+ <orderEntry type="module" module-name="ocmm-impl" />
+ <orderEntry type="module" module-name="ocmm-spi" />
+ <orderEntry type="module" module-name="api" />
+ <orderEntry type="module" module-name="jdbc" />
+ <orderEntry type="module" module-name="spi" />
+ </component>
+</module>
+
Added: incubator/directory/rms/trunk/gui/main/maven.log
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/maven.log Wed Apr 7 18:57:22 2004
@@ -0,0 +1,322 @@
+2004-04-06 23:37:53,862 INFO org.apache.maven.plugin.PluginManager - Initializing Plugins!
+2004-04-06 23:37:53,893 INFO org.apache.maven.plugin.PluginManager - Unpacking plugins from directory --> j:\apache\maven\maven-1.0-beta-10\plugins
+2004-04-06 23:37:54,003 INFO org.apache.maven.plugin.PluginManager - Processing unpacked plugins in C:\Documents and Settings\akarasulu\.maven\plugins
+2004-04-06 23:37:54,003 INFO org.apache.maven.plugin.PluginManager - Processing Plugin: maven-deploy-plugin-1.1
+2004-04-06 23:37:54,174 INFO org.apache.maven.plugin.PluginManager - Processing Plugin: maven-plexus-plugin-0.2
+2004-04-06 23:37:54,206 INFO org.apache.maven.plugin.PluginManager - Processing Plugin: maven-runner-plugin-0.2
+2004-04-06 23:37:54,206 INFO org.apache.maven.plugin.PluginManager - Processing Plugin: maven-sea-plugin-1.0
+2004-04-06 23:37:54,206 INFO org.apache.maven.plugin.PluginManager - Processing Plugin: maven-vdoclet-plugin-1.0
+2004-04-06 23:37:54,221 INFO org.apache.maven.plugin.PluginCacheManager - Saving caches to C:\Documents and Settings\akarasulu\.maven\plugins
+2004-04-06 23:37:54,268 INFO org.apache.maven.plugin.PluginManager - Finished initializing Plugins!
+2004-04-06 23:37:57,799 WARN org.apache.commons.jelly.expression.jexl.JexlExpression - Caught exception evaluating: org.apache.commons.jexl.ExpressionImpl@1684706. Reason: java.lang.NumberFormatException: For input string: "includes"
+java.lang.NumberFormatException: For input string: "includes"
+ at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
+ at java.lang.Integer.parseInt(Integer.java:468)
+ at java.lang.Integer.valueOf(Integer.java:574)
+ at org.apache.commons.jexl.util.Coercion.coerceInteger(Coercion.java:95)
+ at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:177)
+ at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:104)
+ at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:106)
+ at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:88)
+ at org.apache.commons.jexl.parser.ASTNotNode.value(ASTNotNode.java:88)
+ at org.apache.commons.jexl.parser.ASTExpression.value(ASTExpression.java:85)
+ at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:123)
+ at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:115)
+ at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$ExpressionSupportLocal.evaluate(JexlExpressionFactory.java:168)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:106)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsBoolean(ExpressionSupport.java:116)
+ at org.apache.commons.jelly.tags.core.WhenTag.doTag(WhenTag.java:90)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.ChooseTag.doTag(ChooseTag.java:84)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.ProjectTag.doTag(ProjectTag.java:112)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:112)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:139)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:734)
+ at org.apache.maven.plugin.PluginManager.prepDynamicTagLib(PluginManager.java:611)
+ at org.apache.maven.plugin.PluginManager.prepDynaTagLibs(PluginManager.java:586)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:686)
+ at org.apache.maven.plugin.PluginManager.loadPlugins(PluginManager.java:766)
+ at org.apache.maven.plugin.PluginManager.prepForCallbacks(PluginManager.java:554)
+ at org.apache.maven.plugin.PluginManager.prepForGoal(PluginManager.java:525)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:415)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:348)
+ at org.apache.maven.cli.App.doMain(App.java:525)
+ at org.apache.maven.cli.App.main(App.java:1088)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:324)
+ at com.werken.forehead.Forehead.run(Forehead.java:543)
+ at com.werken.forehead.Forehead.main(Forehead.java:573)
+2004-04-06 23:37:57,799 WARN org.apache.commons.jelly.expression.jexl.JexlExpression - Caught exception evaluating: org.apache.commons.jexl.ExpressionImpl@1c8ef56. Reason: java.lang.NumberFormatException: For input string: "excludes"
+java.lang.NumberFormatException: For input string: "excludes"
+ at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
+ at java.lang.Integer.parseInt(Integer.java:468)
+ at java.lang.Integer.valueOf(Integer.java:574)
+ at org.apache.commons.jexl.util.Coercion.coerceInteger(Coercion.java:95)
+ at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:177)
+ at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:104)
+ at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:106)
+ at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:88)
+ at org.apache.commons.jexl.parser.ASTNotNode.value(ASTNotNode.java:88)
+ at org.apache.commons.jexl.parser.ASTExpression.value(ASTExpression.java:85)
+ at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:123)
+ at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:115)
+ at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$ExpressionSupportLocal.evaluate(JexlExpressionFactory.java:168)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:106)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsBoolean(ExpressionSupport.java:116)
+ at org.apache.commons.jelly.tags.core.WhenTag.doTag(WhenTag.java:90)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.ChooseTag.doTag(ChooseTag.java:84)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.ProjectTag.doTag(ProjectTag.java:112)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:112)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:139)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:734)
+ at org.apache.maven.plugin.PluginManager.prepDynamicTagLib(PluginManager.java:611)
+ at org.apache.maven.plugin.PluginManager.prepDynaTagLibs(PluginManager.java:586)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:686)
+ at org.apache.maven.plugin.PluginManager.loadPlugins(PluginManager.java:766)
+ at org.apache.maven.plugin.PluginManager.prepForCallbacks(PluginManager.java:554)
+ at org.apache.maven.plugin.PluginManager.prepForGoal(PluginManager.java:525)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:415)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:348)
+ at org.apache.maven.cli.App.doMain(App.java:525)
+ at org.apache.maven.cli.App.main(App.java:1088)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:324)
+ at com.werken.forehead.Forehead.run(Forehead.java:543)
+ at com.werken.forehead.Forehead.main(Forehead.java:573)
+2004-04-06 23:37:57,815 WARN org.apache.commons.jelly.expression.jexl.JexlExpression - Caught exception evaluating: org.apache.commons.jexl.ExpressionImpl@302e67. Reason: java.lang.NumberFormatException: For input string: "includes"
+java.lang.NumberFormatException: For input string: "includes"
+ at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
+ at java.lang.Integer.parseInt(Integer.java:468)
+ at java.lang.Integer.valueOf(Integer.java:574)
+ at org.apache.commons.jexl.util.Coercion.coerceInteger(Coercion.java:95)
+ at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:177)
+ at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:104)
+ at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:106)
+ at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:88)
+ at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:123)
+ at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:115)
+ at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$ExpressionSupportLocal.evaluate(JexlExpressionFactory.java:168)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:106)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsIterator(ExpressionSupport.java:146)
+ at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:127)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:267)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.ProjectTag.doTag(ProjectTag.java:112)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:112)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:139)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:734)
+ at org.apache.maven.plugin.PluginManager.prepDynamicTagLib(PluginManager.java:611)
+ at org.apache.maven.plugin.PluginManager.prepDynaTagLibs(PluginManager.java:586)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:686)
+ at org.apache.maven.plugin.PluginManager.loadPlugins(PluginManager.java:766)
+ at org.apache.maven.plugin.PluginManager.prepForCallbacks(PluginManager.java:554)
+ at org.apache.maven.plugin.PluginManager.prepForGoal(PluginManager.java:525)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:415)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:348)
+ at org.apache.maven.cli.App.doMain(App.java:525)
+ at org.apache.maven.cli.App.main(App.java:1088)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:324)
+ at com.werken.forehead.Forehead.run(Forehead.java:543)
+ at com.werken.forehead.Forehead.main(Forehead.java:573)
+2004-04-06 23:37:57,815 WARN org.apache.commons.jelly.expression.jexl.JexlExpression - Caught exception evaluating: org.apache.commons.jexl.ExpressionImpl@136a1a1. Reason: java.lang.NumberFormatException: For input string: "excludes"
+java.lang.NumberFormatException: For input string: "excludes"
+ at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
+ at java.lang.Integer.parseInt(Integer.java:468)
+ at java.lang.Integer.valueOf(Integer.java:574)
+ at org.apache.commons.jexl.util.Coercion.coerceInteger(Coercion.java:95)
+ at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:177)
+ at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:104)
+ at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:106)
+ at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:88)
+ at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:123)
+ at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:115)
+ at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$ExpressionSupportLocal.evaluate(JexlExpressionFactory.java:168)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:106)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsIterator(ExpressionSupport.java:146)
+ at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:127)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:267)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.ProjectTag.doTag(ProjectTag.java:112)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:112)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:139)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:734)
+ at org.apache.maven.plugin.PluginManager.prepDynamicTagLib(PluginManager.java:611)
+ at org.apache.maven.plugin.PluginManager.prepDynaTagLibs(PluginManager.java:586)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:686)
+ at org.apache.maven.plugin.PluginManager.loadPlugins(PluginManager.java:766)
+ at org.apache.maven.plugin.PluginManager.prepForCallbacks(PluginManager.java:554)
+ at org.apache.maven.plugin.PluginManager.prepForGoal(PluginManager.java:525)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:415)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:348)
+ at org.apache.maven.cli.App.doMain(App.java:525)
+ at org.apache.maven.cli.App.main(App.java:1088)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:324)
+ at com.werken.forehead.Forehead.run(Forehead.java:543)
+ at com.werken.forehead.Forehead.main(Forehead.java:573)
+2004-04-06 23:38:02,251 WARN org.apache.commons.jelly.expression.jexl.JexlExpression - Caught exception evaluating: org.apache.commons.jexl.ExpressionImpl@1b17d49. Reason: java.lang.NumberFormatException: For input string: "includes"
+java.lang.NumberFormatException: For input string: "includes"
+ at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
+ at java.lang.Integer.parseInt(Integer.java:468)
+ at java.lang.Integer.valueOf(Integer.java:574)
+ at org.apache.commons.jexl.util.Coercion.coerceInteger(Coercion.java:95)
+ at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:177)
+ at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:104)
+ at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:106)
+ at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:88)
+ at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:123)
+ at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:115)
+ at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$ExpressionSupportLocal.evaluate(JexlExpressionFactory.java:168)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:106)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsBoolean(ExpressionSupport.java:116)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:87)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:267)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:205)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:145)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.impl.DynamicTag.doTag(DynamicTag.java:125)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.GoalTag$1.performAction(GoalTag.java:128)
+ at com.werken.werkz.Goal.fire(Goal.java:639)
+ at com.werken.werkz.Goal.attain(Goal.java:575)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:434)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:348)
+ at org.apache.maven.cli.App.doMain(App.java:525)
+ at org.apache.maven.cli.App.main(App.java:1088)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:324)
+ at com.werken.forehead.Forehead.run(Forehead.java:543)
+ at com.werken.forehead.Forehead.main(Forehead.java:573)
+2004-04-06 23:38:02,704 WARN org.apache.commons.jelly.expression.jexl.JexlExpression - Caught exception evaluating: org.apache.commons.jexl.ExpressionImpl@1b17d49. Reason: java.lang.NumberFormatException: For input string: "includes"
+java.lang.NumberFormatException: For input string: "includes"
+ at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
+ at java.lang.Integer.parseInt(Integer.java:468)
+ at java.lang.Integer.valueOf(Integer.java:574)
+ at org.apache.commons.jexl.util.Coercion.coerceInteger(Coercion.java:95)
+ at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:177)
+ at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:104)
+ at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:106)
+ at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:88)
+ at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:123)
+ at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:115)
+ at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$ExpressionSupportLocal.evaluate(JexlExpressionFactory.java:168)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:106)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsBoolean(ExpressionSupport.java:116)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:87)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:267)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:205)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:145)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.impl.DynamicTag.doTag(DynamicTag.java:125)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.GoalTag$1.performAction(GoalTag.java:128)
+ at com.werken.werkz.Goal.fire(Goal.java:639)
+ at com.werken.werkz.Goal.attain(Goal.java:575)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:434)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:348)
+ at org.apache.maven.cli.App.doMain(App.java:525)
+ at org.apache.maven.cli.App.main(App.java:1088)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:324)
+ at com.werken.forehead.Forehead.run(Forehead.java:543)
+ at com.werken.forehead.Forehead.main(Forehead.java:573)
Added: incubator/directory/rms/trunk/gui/main/maven.xml
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/maven.xml Wed Apr 7 18:57:22 2004
@@ -0,0 +1,7 @@
+<project default="jar:install">
+
+ <preGoal name="java:compile">
+ <attainGoal name="avalon:meta"/>
+ </preGoal>
+
+</project>
Added: incubator/directory/rms/trunk/gui/main/project.properties
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/project.properties Wed Apr 7 18:57:22 2004
@@ -0,0 +1,2 @@
+merlin.config=conf/config.xml
+merlin.debug=true
Added: incubator/directory/rms/trunk/gui/main/project.xml
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/project.xml Wed Apr 7 18:57:22 2004
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<project>
+ <extend>${basedir}/../../project.xml</extend>
+ <id>rms-gui-main</id>
+ <name>RMS Management Console</name>
+ <currentVersion>SNAPSHOT</currentVersion>
+ <package>org.apache.rms.ui</package>
+ <shortDescription>RMS Management Console</shortDescription>
+ <description>
+ The RMS Management Console or RMC is used to manage the entities within
+ a realm. Applications, users, profiles, permissions, roles et. cetera.
+ are managed by environment operators using this console application
+ which directly alters the authoritative RMS datastore.
+ </description>
+
+ <dependencies>
+ <dependency>
+ <groupId>avalon-framework</groupId>
+ <artifactId>avalon-framework</artifactId>
+ <version>4.1.5</version>
+ <url>http://avalon.apache.com/framework</url>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ <version>2.0</version>
+ <url>http://jakarta.apache.com/commons/lang</url>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ <version>SNAPSHOT</version>
+ <url>http://jakarta.apache.com/commons/codec</url>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-collections</groupId>
+ <artifactId>commons-collections</artifactId>
+ <version>3.0</version>
+ <url>http://jakarta.apache.com/commons/collections</url>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-beanutils</groupId>
+ <artifactId>commons-beanutils</artifactId>
+ <version>1.6</version>
+ <url>http://jakarta.apache.com/commons/beanutils</url>
+ </dependency>
+
+ <dependency>
+ <groupId>incubator-directory</groupId>
+ <artifactId>rms-api</artifactId>
+ <version>SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>incubator-directory</groupId>
+ <artifactId>rms-spi</artifactId>
+ <version>SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>incubator-directory</groupId>
+ <artifactId>rms-jdbc-provider</artifactId>
+ <version>SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>incubator-directory</groupId>
+ <artifactId>rms-gui-ocmm-api</artifactId>
+ <version>SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>incubator-directory</groupId>
+ <artifactId>rms-gui-ocmm-spi</artifactId>
+ <version>SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>incubator-directory</groupId>
+ <artifactId>rms-gui-ocmm-impl</artifactId>
+ <version>SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>incubator-directory</groupId>
+ <artifactId>rms-gui-navtree</artifactId>
+ <version>SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>oracle</groupId>
+ <artifactId>jdbc-thin-driver</artifactId>
+ <version>9.2.0.1</version>
+ <url>
+ http://otn.oracle.com/software/tech/java/sqlj_jdbc/index.html
+ </url>
+ </dependency>
+
+ </dependencies>
+
+</project>
+
+
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/.cvsignore
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/.cvsignore Wed Apr 7 18:57:22 2004
@@ -0,0 +1 @@
+images
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/AboutBox.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/AboutBox.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,86 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui ;
+
+
+import java.awt.Insets ;
+import java.awt.GridBagLayout ;
+import java.awt.GridBagConstraints ;
+
+import javax.swing.JPanel ;
+import javax.swing.JLabel ;
+import javax.swing.border.Border ;
+import javax.swing.BorderFactory ;
+
+
+/**
+ * The about dialog box in the RMS Management Console.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class AboutBox extends JPanel
+{
+ private JLabel m_labelTitle = new JLabel() ;
+ private JLabel m_labelAuthor = new JLabel() ;
+ private GridBagLayout m_layoutMain = new GridBagLayout() ;
+ private Border m_border = BorderFactory.createEtchedBorder() ;
+
+ /**
+ * Creates the about box.
+ */
+ public AboutBox()
+ {
+ try
+ {
+ init() ;
+ }
+ catch( Exception e )
+ {
+ e.printStackTrace() ;
+ }
+ }
+
+
+ /**
+ * Initializes this component.
+ *
+ * @throws Exception on errors
+ */
+ private void init() throws Exception
+ {
+ Insets l_insets = null ;
+ GridBagConstraints l_constraints = null ;
+
+ this.setLayout( m_layoutMain ) ;
+ this.setBorder( m_border ) ;
+ m_labelTitle.setText( "Rms Management Console " ) ;
+ m_labelAuthor.setText( "By Alex Karasulu" ) ;
+
+ l_insets = new Insets( 5, 15, 0, 15 ) ;
+ l_constraints = new GridBagConstraints( 0, 0, 1, 1, 0.0, 0.0,
+ GridBagConstraints.WEST, GridBagConstraints.NONE,
+ l_insets, 0, 0 ) ;
+ this.add( m_labelTitle, l_constraints ) ;
+
+ l_insets = new Insets( 0, 15, 0, 15 ) ;
+ l_constraints = new GridBagConstraints( 0, 1, 1, 1, 0.0, 0.0,
+ GridBagConstraints.WEST, GridBagConstraints.NONE,
+ l_insets, 0, 0 ) ;
+ this.add(m_labelAuthor, l_constraints ) ;
+ }
+}
\ No newline at end of file
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/ActionMenuManager.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/ActionMenuManager.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,442 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui ;
+
+
+import java.awt.event.ActionEvent ;
+import java.awt.event.ActionListener ;
+
+import java.util.HashMap ;
+
+import javax.swing.JMenu ;
+import javax.swing.JMenuItem ;
+import javax.swing.JOptionPane;
+import javax.swing.JPopupMenu ;
+import javax.swing.tree.TreePath ;
+import javax.swing.tree.DefaultTreeModel ;
+import javax.swing.event.TreeSelectionEvent ;
+import javax.swing.event.TreeSelectionListener ;
+
+import org.apache.commons.lang.StringUtils ;
+
+import org.apache.avalon.framework.logger.AbstractLogEnabled ;
+
+import org.apache.rms.ui.ocmm.Action ;
+import org.apache.rms.ui.navtree.BeanTreeNode ;
+import org.apache.rms.ui.ocmm.ContainmentModel ;
+import org.apache.rms.ui.ocmm.ContainmentMetadata ;
+import org.apache.rms.ui.navtree.ContainerTreeNode ;
+import org.apache.rms.ui.actions.CreateUserHandler ;
+import org.apache.rms.ui.navtree.ContainmentTreeNode ;
+
+import org.apache.rms.ui.actions.MenuHandler ;
+import org.apache.rms.ui.actions.RefreshHandler ;
+import org.apache.rms.ui.actions.SubMenuHandler ;
+import org.apache.rms.ui.actions.MenuItemHandler ;
+import org.apache.rms.ui.actions.RenameRoleHandler ;
+import org.apache.rms.ui.actions.RenameUserHandler ;
+import org.apache.rms.ui.actions.DeleteUserHandler ;
+import org.apache.rms.ui.actions.AddRoleToProfileHandler ;
+import org.apache.rms.ui.actions.RenamePermissionHandler ;
+import org.apache.rms.ui.actions.RenameApplicationHandler ;
+import org.apache.rms.ui.actions.DeleteApplicationHandler ;
+import org.apache.rms.ui.actions.CreateApplicationHandler ;
+import org.apache.rms.ui.actions.CreateProfileForUserHandler ;
+import org.apache.rms.ui.actions.GrantPermissionToRoleHandler ;
+import org.apache.rms.ui.actions.RemoveRoleFromProfileHandler ;
+import org.apache.rms.ui.actions.DeleteProfileFromUserHandler ;
+import org.apache.rms.ui.actions.RevokeGrantFromProfileHandler ;
+import org.apache.rms.ui.actions.RevokeDenialFromProfileHandler ;
+import org.apache.rms.ui.actions.DenyPermissionForProfileHandler ;
+import org.apache.rms.ui.actions.GrantPermissionToProfileHandler ;
+import org.apache.rms.ui.actions.CreateRoleForApplicationHandler ;
+import org.apache.rms.ui.actions.RevokePermissionFromRoleHandler ;
+import org.apache.rms.ui.actions.DeleteRoleFromApplicationHandler ;
+import org.apache.rms.ui.actions.AddPermissionToApplicationHandler ;
+import org.apache.rms.ui.actions.DeletePermissionFromApplicationHandler ;
+
+
+/**
+ * Construction of Action menus and popups based on tree navigation selection
+ * events and responds to ActionEvents on the selection of these menus.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class ActionMenuManager extends AbstractLogEnabled
+ implements
+ ActionListener,
+ TreeSelectionListener
+{
+ /** the action menu to populate */
+ private final JMenu m_menu ;
+ /** the action popup menu to populate */
+ private final JPopupMenu m_popup ;
+ /** the main management console */
+ private final RmsManagementConsole m_console ;
+ /** the last selected path */
+ private TreePath m_path = null ;
+ /** the last selected containment tree node */
+ private ContainmentTreeNode m_node = null ;
+ /** the set of menu ActionEvent handlers */
+ private HashMap m_handlers = new HashMap() ;
+
+
+ /**
+ * Creates an action menu manager.
+ *
+ * @param a_menu the action menu to populate
+ * @param a_popup the action popup menu to populate
+ */
+ public ActionMenuManager( JMenu a_menu, JPopupMenu a_popup,
+ RmsManagementConsole a_console )
+ {
+ m_menu = a_menu ;
+ m_popup = a_popup ;
+ m_console = a_console ;
+
+ m_handlers.put( AddPermissionToApplicationHandler.ACTION_COMMAND,
+ new AddPermissionToApplicationHandler( this ) ) ;
+ m_handlers.put( DeletePermissionFromApplicationHandler.ACTION_COMMAND,
+ new DeletePermissionFromApplicationHandler( this ) ) ;
+ m_handlers.put( RenamePermissionHandler.ACTION_COMMAND,
+ new RenamePermissionHandler( this ) ) ;
+ m_handlers.put( CreateUserHandler.ACTION_COMMAND,
+ new CreateUserHandler( this ) ) ;
+ m_handlers.put( CreateApplicationHandler.ACTION_COMMAND,
+ new CreateApplicationHandler( this ) ) ;
+ m_handlers.put( CreateRoleForApplicationHandler.ACTION_COMMAND,
+ new CreateRoleForApplicationHandler( this ) ) ;
+ m_handlers.put( CreateProfileForUserHandler.ACTION_COMMAND,
+ new CreateProfileForUserHandler( this ) ) ;
+ m_handlers.put( GrantPermissionToRoleHandler.ACTION_COMMAND,
+ new GrantPermissionToRoleHandler( this ) ) ;
+ m_handlers.put( RevokePermissionFromRoleHandler.ACTION_COMMAND,
+ new RevokePermissionFromRoleHandler( this ) ) ;
+ m_handlers.put( GrantPermissionToProfileHandler.ACTION_COMMAND,
+ new GrantPermissionToProfileHandler( this ) ) ;
+ m_handlers.put( RevokeGrantFromProfileHandler.ACTION_COMMAND,
+ new RevokeGrantFromProfileHandler( this ) ) ;
+ m_handlers.put( DenyPermissionForProfileHandler.ACTION_COMMAND,
+ new DenyPermissionForProfileHandler( this ) ) ;
+ m_handlers.put( RevokeDenialFromProfileHandler.ACTION_COMMAND,
+ new RevokeDenialFromProfileHandler( this ) ) ;
+ m_handlers.put( AddRoleToProfileHandler.ACTION_COMMAND,
+ new AddRoleToProfileHandler( this ) ) ;
+ m_handlers.put( RemoveRoleFromProfileHandler.ACTION_COMMAND,
+ new RemoveRoleFromProfileHandler( this ) ) ;
+ m_handlers.put( DeleteUserHandler.ACTION_COMMAND,
+ new DeleteUserHandler( this ) ) ;
+ m_handlers.put( DeleteApplicationHandler.ACTION_COMMAND,
+ new DeleteApplicationHandler( this ) ) ;
+ m_handlers.put( DeleteRoleFromApplicationHandler.ACTION_COMMAND,
+ new DeleteRoleFromApplicationHandler( this ) ) ;
+ m_handlers.put( DeleteProfileFromUserHandler.ACTION_COMMAND,
+ new DeleteProfileFromUserHandler( this ) ) ;
+ m_handlers.put( RenameUserHandler.ACTION_COMMAND,
+ new RenameUserHandler( this ) ) ;
+ m_handlers.put( RenameApplicationHandler.ACTION_COMMAND,
+ new RenameApplicationHandler( this ) ) ;
+ m_handlers.put( RenameRoleHandler.ACTION_COMMAND,
+ new RenameRoleHandler( this ) ) ;
+ m_handlers.put( RefreshHandler.ACTION_COMMAND,
+ new RefreshHandler( this ) ) ;
+ }
+
+
+ /**
+ * Gets the main frame for this menu manager.
+ *
+ * @return the main frame for this menu manager
+ */
+ public RmcMainFrame getMainFrame()
+ {
+ return m_console.getMainFrame() ;
+ }
+
+
+ /**
+ * Gets the tree model that this menu manager works with.
+ *
+ * @return the tree model that this menu manager works with
+ */
+ public DefaultTreeModel getTreeModel()
+ {
+ return m_console.getMainFrame().getTreeModel() ;
+ }
+
+
+ /**
+ * Gets the containment model that this menu manager works with.
+ *
+ * @return the containment model
+ */
+ public ContainmentModel getContainmentModel()
+ {
+ return m_console.getContainmentModel() ;
+ }
+
+
+ /**
+ * Gets the last bean node in the selection path.
+ *
+ * @return the last bean in the selection path
+ */
+ public BeanTreeNode getLastBean()
+ {
+ if ( m_node instanceof ContainerTreeNode )
+ {
+ return ( BeanTreeNode ) m_node.getParent() ;
+ }
+ else
+ {
+ return ( BeanTreeNode ) m_node ;
+ }
+ }
+
+
+ /**
+ * Gets the last container node in the selection path.
+ *
+ * @return the last container node in the selection path
+ */
+ public ContainerTreeNode getLastContainer()
+ {
+ if ( m_node instanceof ContainerTreeNode )
+ {
+ return ( ContainerTreeNode ) m_node ;
+ }
+ else
+ {
+ return ( ContainerTreeNode ) m_node.getParent() ;
+ }
+ }
+
+
+ /**
+ * Gets the last selected path.
+ *
+ * @return the last selected path
+ */
+ public TreePath getSelectedPath()
+ {
+ return m_path ;
+ }
+
+
+ /**
+ * Gets the last container node on the selection path.
+ *
+ * @return the last container node on the selection path
+ */
+ public TreePath getLastContainerPath()
+ {
+ if ( m_node instanceof ContainerTreeNode )
+ {
+ return m_path ;
+ }
+ else
+ {
+ return m_path.pathByAddingChild( m_node.getParent() ) ;
+ }
+ }
+
+
+ /**
+ * Sets the selected path.
+ *
+ * @param a_path the path to the object to select
+ */
+ public void setSelected( TreePath a_path )
+ {
+ m_console.getMainFrame().setSelected( a_path ) ;
+ }
+
+
+ /*
+ * (non-Javadoc)
+ * @see java.awt.event.ActionListener#actionPerformed(
+ * java.awt.event.ActionEvent)
+ */
+ public void actionPerformed( ActionEvent a_event )
+ {
+ String l_cmd = a_event.getActionCommand() ;
+ getLogger().debug( "Got action event to " + l_cmd ) ;
+
+ if ( m_path == null || m_node == null )
+ {
+ return ;
+ }
+
+ if ( m_handlers.containsKey( l_cmd ) )
+ {
+ ActionListener l_handler =
+ ( ActionListener ) m_handlers.get( l_cmd ) ;
+ l_handler.actionPerformed( a_event ) ;
+ return ;
+ }
+
+ String[] comps = StringUtils.split( l_cmd, '|' ) ;
+ if ( m_handlers.containsKey( comps[0] ) )
+ {
+ ActionListener l_handler =
+ ( ActionListener ) m_handlers.get( comps[0] ) ;
+ l_handler.actionPerformed( a_event ) ;
+ return ;
+ }
+
+ String msg = "The action with command " + a_event.getActionCommand()
+ + " on source " + a_event.getSource() + " is unrecognized!" ;
+ JOptionPane.showMessageDialog( m_console.getMainFrame(),
+ msg, "Unknown Action!", JOptionPane.ERROR_MESSAGE ) ;
+ }
+
+
+ /**
+ * Builds the popup and regular menus for actions.
+ */
+ public void buildMenus()
+ {
+ Action[] l_actions = null ;
+ ContainmentMetadata l_meta = null ;
+
+ if ( m_node == null )
+ {
+ return ;
+ }
+
+ l_meta = m_node.getContainmentMetadata() ;
+ if ( m_node instanceof ContainerTreeNode )
+ {
+ ContainerTreeNode l_ctn = ( ContainerTreeNode ) m_node ;
+ l_actions = l_ctn.getContainer().getActions() ;
+ }
+ else
+ {
+ l_actions = l_meta.getActions() ;
+ }
+
+ m_menu.removeAll() ;
+ m_popup.removeAll() ;
+ for ( int ii = 0; ii < l_actions.length; ii++ )
+ {
+ if ( ! TreePathUtils.isContextAllowed( m_path,
+ l_actions[ii].getContexts() ) )
+ {
+ continue ;
+ }
+
+ MenuHandler l_handler = getHandler( l_actions[ii].getCommand() ) ;
+ if ( l_handler == null )
+ {
+ JMenuItem l_item = new JMenuItem( l_actions[ii].getName() ) ;
+ l_item.setActionCommand( l_actions[ii].getCommand() ) ;
+ l_item.setToolTipText( l_actions[ii].getDescription() ) ;
+ l_item.addActionListener( this ) ;
+ l_item.setIcon( Images.load( l_actions[ii].getIcon() ) ) ;
+ m_popup.add( l_item ) ;
+
+ l_item = new JMenuItem( l_actions[ii].getName() ) ;
+ l_item.setActionCommand( l_actions[ii].getCommand() ) ;
+ l_item.setToolTipText( l_actions[ii].getDescription() ) ;
+ l_item.addActionListener( this ) ;
+ l_item.setIcon( Images.load( l_actions[ii].getIcon() ) ) ;
+ m_menu.add( l_item ) ;
+ }
+ else if ( l_handler.isForItem() )
+ {
+ m_popup.add( ( ( MenuItemHandler ) l_handler )
+ .getMenuItem( m_path, l_actions[ii] ) ) ;
+ m_menu.add( ( ( MenuItemHandler ) l_handler )
+ .getMenuItem( m_path, l_actions[ii] ) ) ;
+ }
+ else
+ {
+ m_popup.add( ( ( SubMenuHandler ) l_handler )
+ .getSubMenu( m_path, l_actions[ii] ) ) ;
+ m_menu.add( ( ( SubMenuHandler ) l_handler )
+ .getSubMenu( m_path, l_actions[ii] ) ) ;
+ }
+ }
+
+ JMenuItem l_item = new JMenuItem( "Refresh" ) ;
+ l_item.setActionCommand( "Refresh" ) ;
+ l_item.setToolTipText( "Refresh the node" ) ;
+ l_item.addActionListener( this ) ;
+ m_popup.add( l_item ) ;
+
+ l_item = new JMenuItem( "Refresh" ) ;
+ l_item.setActionCommand( "Refresh" ) ;
+ l_item.setToolTipText( "Refresh the node" ) ;
+ l_item.addActionListener( this ) ;
+ m_menu.add( l_item ) ;
+ }
+
+
+ /*
+ * (non-Javadoc)
+ * @see javax.swing.event.ListSelectionListener#
+ * valueChanged(javax.swing.event.ListSelectionEvent)
+ */
+ public void valueChanged( TreeSelectionEvent a_event )
+ {
+ m_path = ( TreePath ) a_event.getPath() ;
+ m_node = ( ContainmentTreeNode ) m_path.getLastPathComponent() ;
+
+ if ( ! a_event.isAddedPath() )
+ {
+ return ;
+ }
+
+ buildMenus() ;
+ }
+
+
+ /**
+ * Gets a menu handler by command also breaking up prefixes and using those
+ * if necessary.
+ *
+ * @param cmd the simple or composite command with '|' separators
+ * @return the handler for the command
+ */
+ public MenuHandler getHandler( String cmd )
+ {
+ if ( m_handlers.containsKey( cmd ) )
+ {
+ return ( MenuHandler ) m_handlers.get( cmd ) ;
+ }
+
+ String l_prefix = StringUtils.split( cmd, '|' )[0] ;
+ return ( MenuHandler ) m_handlers.get( l_prefix ) ;
+ }
+
+
+ /**
+ * Creates and fires an action command as if it occurred via user input
+ * on one of the menus. This call synchronously delivers events to
+ * listeners.
+ *
+ * @param the
+ * @param cmd the command to execute
+ */
+ public void fireActionCommand( String cmd )
+ {
+ ActionEvent l_event = new ActionEvent( this, 0, cmd,
+ System.currentTimeMillis(), ActionEvent.ACTION_PERFORMED ) ;
+ actionPerformed( l_event ) ;
+ }
+}
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/DetailTableManager.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/DetailTableManager.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,91 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui ;
+
+
+import javax.swing.JTable ;
+import javax.swing.tree.TreePath ;
+import javax.swing.event.TreeSelectionEvent ;
+import javax.swing.event.TreeSelectionListener ;
+import javax.swing.tree.DefaultMutableTreeNode ;
+
+import org.apache.avalon.framework.logger.Logger ;
+import org.apache.avalon.framework.logger.LogEnabled ;
+
+import org.apache.rms.ui.navtree.ContainmentTreeNode ;
+
+
+/**
+ * Manages the contents of the detail table as we make selections on the
+ * navigation tree.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class DetailTableManager implements TreeSelectionListener, LogEnabled
+{
+ /** table that is altered to display the details of selected nav nodes */
+ private final JTable m_table ;
+ /** the logger used by this abstract loggable */
+ private Logger m_logger ;
+ /** the menu manager we cause events to fire to */
+ private final ActionMenuManager m_menuManager ;
+
+ /** the models we already created for some nodes */
+ //private final HashMap m_models = new HashMap( 100 ) ;
+
+ /**
+ * Creates a detail table manager.
+ *
+ * @param table the table being managed
+ */
+ public DetailTableManager( JTable table, ActionMenuManager menuManager )
+ {
+ m_table = table ;
+ m_menuManager = menuManager ;
+ }
+
+
+ /*
+ * (non-Javadoc)
+ * @see org.apache.avalon.framework.logger.LogEnabled#
+ * enableLogging(org.apache.avalon.framework.logger.Logger)
+ */
+ public void enableLogging( Logger logger )
+ {
+ m_logger = logger ;
+ }
+
+
+ /*
+ * (non-Javadoc)
+ * @see javax.swing.event.TreeSelectionListener#valueChanged(
+ * javax.swing.event.TreeSelectionEvent)
+ */
+ public void valueChanged( TreeSelectionEvent a_event )
+ {
+ TreePath l_path = ( TreePath ) a_event.getPath() ;
+ ContainmentTreeNode l_node = ( ContainmentTreeNode )
+ l_path.getLastPathComponent() ;
+
+ if ( l_node == null ) return ;
+
+ TreePath path = new TreePath( ( ( DefaultMutableTreeNode )
+ l_node ).getPath() ) ;
+ new RmcTableModel( m_table, path, m_menuManager ) ;
+ }
+}
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/Images.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/Images.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,102 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui ;
+
+
+import java.net.URL ;
+import java.util.HashMap ;
+
+import javax.swing.ImageIcon ;
+
+import org.apache.rms.ui.ocmm.IconUsage ;
+
+
+/**
+ * Stores and manages all the images for the application.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class Images
+{
+ /** hash of images by path */
+ private static final HashMap m_images = new HashMap() ;
+
+
+ /**
+ * Loads an image and caches it for later use.
+ *
+ * @param path the path to the image
+ * @return the ImageIcon for the image path
+ */
+ public static ImageIcon load( String path )
+ {
+ if ( path == null )
+ {
+ return null ;
+ }
+
+ ImageIcon l_image = ( ImageIcon ) m_images.get( path ) ;
+ if ( l_image == null )
+ {
+ URL l_url = Images.class.getResource( path ) ;
+
+ if ( l_url == null )
+ {
+ System.err.println( "Could not find " + path ) ;
+ return null ;
+ }
+
+ l_image = new ImageIcon( l_url ) ;
+ m_images.put( path, l_image ) ;
+ }
+
+ return l_image ;
+ }
+
+
+ /**
+ * Loads an image and caches it for later use.
+ *
+ * @param icon the Icon descriptor for the image
+ * @return the ImageIcon for the descriptor
+ */
+ public static ImageIcon load( IconUsage icon )
+ {
+ if ( icon == null )
+ {
+ return null ;
+ }
+
+ ImageIcon l_image = ( ImageIcon ) m_images.get( icon.getIconPath() ) ;
+ if ( l_image == null )
+ {
+ URL l_url = Images.class.getResource( icon.getIconPath() ) ;
+
+ if ( l_url == null )
+ {
+ System.err.println( "Could not find " + icon.getIconPath() ) ;
+ return null ;
+ }
+
+ l_image = new ImageIcon( l_url ) ;
+ m_images.put( icon.getIconPath(), l_image ) ;
+ }
+
+ return l_image ;
+ }
+}
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/RmcMainFrame.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/RmcMainFrame.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,306 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui ;
+
+
+import java.awt.Component ;
+import java.awt.Dimension ;
+import java.awt.BorderLayout ;
+import java.awt.event.MouseEvent ;
+import java.awt.event.ActionEvent ;
+import java.awt.event.MouseAdapter ;
+import java.awt.event.MouseListener ;
+import java.awt.event.ActionListener ;
+
+import javax.swing.JMenu ;
+import javax.swing.JTree ;
+import javax.swing.JPanel ;
+import javax.swing.JTable ;
+import javax.swing.JFrame ;
+import javax.swing.JLabel ;
+import javax.swing.JButton ;
+import javax.swing.JToolBar ;
+import javax.swing.JMenuBar ;
+import javax.swing.ImageIcon ;
+import javax.swing.JMenuItem ;
+import javax.swing.JPopupMenu ;
+import javax.swing.JSplitPane ;
+import javax.swing.JOptionPane ;
+import javax.swing.JScrollPane ;
+import javax.swing.tree.TreePath ;
+import javax.swing.ListSelectionModel ;
+import javax.swing.tree.DefaultTreeModel ;
+import javax.swing.tree.TreeSelectionModel ;
+import javax.swing.tree.DefaultTreeSelectionModel ;
+
+import org.apache.commons.lang.NotImplementedException ;
+
+import org.apache.rms.Rms ;
+import org.apache.rms.ui.navtree.BeanTreeNode ;
+import org.apache.rms.ui.ocmm.ContainmentModel ;
+
+
+/**
+ * The main frame in the RMC application.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class RmcMainFrame extends JFrame
+{
+ private RmsManagementConsole m_console ;
+
+ private ImageIcon m_imageHelp =
+ new ImageIcon( RmcMainFrame.class.getResource( "help.gif" ) ) ;
+ private ImageIcon m_imageClose =
+ new ImageIcon( RmcMainFrame.class.getResource( "closefile.gif" ) ) ;
+ private ImageIcon m_imageOpen =
+ new ImageIcon( RmcMainFrame.class.getResource( "openfile.gif" ) ) ;
+
+ private JButton m_buttonHelp = new JButton() ;
+ private JButton m_buttonClose = new JButton() ;
+ private JButton m_buttonOpen = new JButton() ;
+ private JToolBar m_toolBar = new JToolBar() ;
+ private JLabel m_statusBar = new JLabel() ;
+ private JMenuItem m_menuHelpAbout = new JMenuItem() ;
+ private JMenu m_menuHelp = new JMenu() ;
+ private JMenuItem m_menuFileExit = new JMenuItem() ;
+ private JMenu m_menuFile = new JMenu() ;
+ private JMenuBar m_menuBar = new JMenuBar() ;
+ private JPanel m_panelCenter = new JPanel() ;
+ private BorderLayout m_layoutMain = new BorderLayout() ;
+ private JSplitPane m_splitPane = new JSplitPane() ;
+ private JScrollPane m_tableScrollPane = new JScrollPane() ;
+ private JScrollPane m_treeScrollPane = new JScrollPane() ;
+ private JTree m_tree = null ;
+ private JTable m_table = new JTable() ;
+ private JMenu m_menuAction = new JMenu() ;
+ private JPopupMenu m_popupMenu = new JPopupMenu() ;
+
+ private DefaultTreeModel m_treeModel = null ;
+
+
+ /**
+ * Creates the main frame of the RMC application.
+ */
+ public RmcMainFrame( RmsManagementConsole a_console )
+ {
+ m_console = a_console ;
+
+ try
+ {
+ init() ;
+ }
+ catch( Exception e )
+ {
+ e.printStackTrace() ;
+ }
+ }
+
+
+ /**
+ * Initializes the main frame of the RMC application.
+ *
+ * @throws Exception on error
+ */
+ private void init() throws Exception
+ {
+ m_menuAction.setText( "Action" ) ;
+ m_menuAction.setActionCommand( "Action" ) ;
+
+ this.setJMenuBar( m_menuBar ) ;
+ this.getContentPane().setLayout( m_layoutMain ) ;
+ this.setSize( new Dimension( 800, 600 ) ) ;
+ this.setTitle( "RMS Management Console" ) ;
+
+ m_menuFile.setText( "File" ) ;
+ m_menuFileExit.setText( "Exit" ) ;
+ m_menuFileExit.addActionListener( new ActionListener()
+ {
+ public void actionPerformed( ActionEvent ae )
+ {
+ fileExitOccured( ae ) ;
+ }
+ } ) ;
+
+ m_menuHelp.setText( "Help" ) ;
+ m_menuHelpAbout.setText( "About" ) ;
+ m_menuHelpAbout.addActionListener( new ActionListener()
+ {
+ public void actionPerformed( ActionEvent ae )
+ {
+ helpAboutOccured( ae ) ;
+ }
+ } ) ;
+
+ m_statusBar.setText( "All is well" ) ;
+ m_buttonOpen.setToolTipText( "Open File" ) ;
+ m_buttonOpen.setIcon( m_imageOpen ) ;
+ m_buttonClose.setToolTipText( "Close File" ) ;
+ m_buttonClose.setIcon( m_imageClose ) ;
+ m_buttonHelp.setToolTipText( "About" ) ;
+ m_buttonHelp.setIcon( m_imageHelp ) ;
+ m_menuFile.add( m_menuFileExit ) ;
+ m_menuHelp.add( m_menuHelpAbout ) ;
+ m_menuBar.add( m_menuFile ) ;
+ m_menuBar.add( m_menuAction ) ;
+ m_menuBar.add( m_menuHelp ) ;
+ this.getContentPane().add( m_statusBar, BorderLayout.SOUTH ) ;
+ m_toolBar.add( m_buttonOpen ) ;
+ m_toolBar.add( m_buttonClose ) ;
+ m_toolBar.add( m_buttonHelp ) ;
+ this.getContentPane().add( m_toolBar, BorderLayout.NORTH ) ;
+ this.getContentPane().add( m_panelCenter, BorderLayout.CENTER ) ;
+ m_panelCenter.setLayout( new java.awt.BorderLayout() ) ;
+ m_panelCenter.add( m_splitPane, java.awt.BorderLayout.CENTER ) ;
+ m_splitPane.setDividerLocation( 255 ) ;
+ m_splitPane.add( m_tableScrollPane, javax.swing.JSplitPane.RIGHT ) ;
+ m_splitPane.add( m_treeScrollPane, javax.swing.JSplitPane.LEFT ) ;
+
+ initNavTree() ;
+
+ m_tableScrollPane.getViewport().add( m_table ) ;
+ m_treeScrollPane.getViewport().add( m_tree ) ;
+
+ m_table.setBounds( new java.awt.Rectangle( 227,169,32,32 ) ) ;
+ m_table.getSelectionModel().setSelectionMode(
+ ListSelectionModel.MULTIPLE_INTERVAL_SELECTION ) ;
+ m_table.setCellSelectionEnabled( true ) ;
+ //m_table.setDefaultRenderer( BeanTreeNode.class,
+ // new RmcTableCellRenderer() ) ;
+ // m_table.setCellEditor( new RmcTableCellEditor() ) ;
+ /* m_table.setCellEditor( new DefaultCellEditor()
+ {
+ public Component getTableCellRendererComponent( JTable a_table,
+ Object a_value, boolean a_isSelected, int a_row, int a_col )
+ {
+ return getCellEditor( a_value,
+ a_isSelected, a_row, a_col ) ;
+ }
+
+
+
+ }) ;
+ */
+
+ // Add listener to components that can bring up popup menus.
+ MouseListener l_popupListener = new PopupListener() ;
+ m_menuBar.addMouseListener( l_popupListener ) ;
+ m_tree.addMouseListener( l_popupListener ) ;
+ m_table.addMouseListener( l_popupListener ) ;
+ }
+
+
+ /**
+ * Listens for popup events to show popup menu.
+ */
+ class PopupListener extends MouseAdapter
+ {
+ public void mousePressed( MouseEvent e )
+ {
+ maybeShowPopup( e ) ;
+ }
+
+ public void mouseReleased( MouseEvent e)
+ {
+ maybeShowPopup( e ) ;
+ }
+
+ private void maybeShowPopup( MouseEvent e )
+ {
+ if ( e.isPopupTrigger() )
+ {
+ m_popupMenu.show( e.getComponent(), e.getX(), e.getY() ) ;
+ }
+ }
+ }
+
+
+ /**
+ * Sets up the containment navigation tree by registering a selection
+ * listener with it that shows properties in the table to the right which
+ * is the scalar property sheet editor.
+ */
+ private void initNavTree()
+ {
+ Rms l_rms = m_console.getRmsInstance() ;
+ ContainmentModel l_model = m_console.getContainmentModel() ;
+
+ m_treeModel = new DefaultTreeModel(
+ new BeanTreeNode( l_rms, l_model ), true ) ;
+ m_tree = new JTree( m_treeModel ) ;
+ m_tree.setCellRenderer( new RmcTreeCellRenderer() ) ;
+
+ TreeSelectionModel l_selection = new DefaultTreeSelectionModel() ;
+ l_selection.setSelectionMode(
+ TreeSelectionModel.SINGLE_TREE_SELECTION ) ;
+
+ ActionMenuManager l_menuMan = null ;
+ l_menuMan = new ActionMenuManager( m_menuAction, m_popupMenu,
+ m_console ) ;
+ l_menuMan.enableLogging( m_console.log() ) ;
+ l_selection.addTreeSelectionListener( l_menuMan ) ;
+
+ DetailTableManager l_tableMan = null ;
+ l_tableMan = new DetailTableManager( m_table, l_menuMan ) ;
+ l_tableMan.enableLogging( m_console.log() ) ;
+ l_selection.addTreeSelectionListener( l_tableMan ) ;
+
+ m_tree.setSelectionModel( l_selection ) ;
+ m_tree.invalidate() ;
+ }
+
+
+ /**
+ * Set's the selection path in the tree.
+ *
+ * @param path the path to selected component
+ */
+ public void setSelected( TreePath path )
+ {
+ m_tree.setSelectionPath( path ) ;
+ m_tree.invalidate() ;
+ m_tree.repaint() ;
+ m_tree.scrollPathToVisible( path ) ;
+ }
+
+
+ public DefaultTreeModel getTreeModel()
+ {
+ return m_treeModel ;
+ }
+
+
+ Component getCellEditor( Object a_value, boolean a_isSelected,
+ int a_row, int a_col )
+ {
+ throw new NotImplementedException( "" ) ;
+ }
+
+
+ void fileExitOccured( ActionEvent e )
+ {
+ System.exit( 0 ) ;
+ }
+
+
+ void helpAboutOccured( ActionEvent e )
+ {
+ JOptionPane.showMessageDialog( this, new AboutBox(), "About",
+ JOptionPane.PLAIN_MESSAGE ) ;
+ }
+}
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/RmcTableCellEditor.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/RmcTableCellEditor.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,130 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui ;
+
+
+import java.awt.Color ;
+import java.awt.Component ;
+import java.util.EventObject ;
+
+import javax.swing.JTable ;
+import javax.swing.JCheckBox ;
+import javax.swing.table.TableCellEditor ;
+import javax.swing.event.CellEditorListener ;
+
+
+/**
+ * A special cell renderer for the table on the RHS.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class RmcTableCellEditor implements TableCellEditor
+{
+ /* (non-Javadoc)
+ * @see javax.swing.table.DefaultTableCellRenderer#
+ * getTableCellRendererComponent(javax.swing.JTable, java.lang.Object,
+ * boolean, boolean, int, int)
+ */
+ public Component
+ getTableCellRendererComponent( JTable table, Object value,
+ boolean isSelected, boolean hasFocus,
+ int row, int column )
+ {
+ JCheckBox checkBox = new JCheckBox() ;
+ checkBox.setEnabled( true ) ;
+ checkBox.setSelected( true ) ;
+ checkBox.setBackground( Color.WHITE ) ;
+ checkBox.setForeground( Color.BLACK ) ;
+ return checkBox ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see javax.swing.table.TableCellEditor#getTableCellEditorComponent(
+ * javax.swing.JTable, java.lang.Object, boolean, int, int)
+ */
+ public Component getTableCellEditorComponent(
+ JTable table,
+ Object value,
+ boolean isSelected,
+ int row,
+ int column)
+ {
+ return null ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see javax.swing.CellEditor#addCellEditorListener(javax.swing.event.CellEditorListener)
+ */
+ public void addCellEditorListener(CellEditorListener l)
+ {
+ }
+
+
+ /* (non-Javadoc)
+ * @see javax.swing.CellEditor#cancelCellEditing()
+ */
+ public void cancelCellEditing()
+ {
+ }
+
+
+ /* (non-Javadoc)
+ * @see javax.swing.CellEditor#getCellEditorValue()
+ */
+ public Object getCellEditorValue()
+ {
+ return null ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see javax.swing.CellEditor#isCellEditable(java.util.EventObject)
+ */
+ public boolean isCellEditable( EventObject anEvent )
+ {
+ return false ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see javax.swing.CellEditor#removeCellEditorListener(javax.swing.event.CellEditorListener)
+ */
+ public void removeCellEditorListener(CellEditorListener l)
+ {
+ }
+
+
+ /* (non-Javadoc)
+ * @see javax.swing.CellEditor#shouldSelectCell(java.util.EventObject)
+ */
+ public boolean shouldSelectCell( EventObject anEvent )
+ {
+ return false ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see javax.swing.CellEditor#stopCellEditing()
+ */
+ public boolean stopCellEditing()
+ {
+ return false ;
+ }
+}
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/RmcTableCellRenderer.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/RmcTableCellRenderer.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui ;
+
+
+import java.awt.Color;
+import java.awt.Component ;
+
+import javax.swing.JTable ;
+import javax.swing.JCheckBox ;
+import javax.swing.table.DefaultTableCellRenderer ;
+
+
+/**
+ * A special cell renderer for the table on the RHS.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class RmcTableCellRenderer extends DefaultTableCellRenderer
+{
+ /* (non-Javadoc)
+ * @see javax.swing.table.DefaultTableCellRenderer#
+ * getTableCellRendererComponent(javax.swing.JTable, java.lang.Object,
+ * boolean, boolean, int, int)
+ */
+ public Component
+ getTableCellEditorComponent( JTable table, Object value,
+ boolean isSelected, boolean hasFocus,
+ int row, int column )
+ {
+ JCheckBox checkBox = new JCheckBox() ;
+ checkBox.setEnabled( true ) ;
+ checkBox.setSelected( true ) ;
+ checkBox.setBackground( Color.WHITE ) ;
+ checkBox.setForeground( Color.BLACK ) ;
+ return checkBox ;
+ }
+}
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/RmcTableModel.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/RmcTableModel.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,788 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui ;
+
+
+import java.util.Vector ;
+import java.util.ArrayList ;
+
+import javax.swing.JTable ;
+import javax.swing.tree.TreePath ;
+import javax.swing.table.DefaultTableModel ;
+
+import org.apache.commons.beanutils.BeanUtils ;
+
+import org.apache.rms.Role ;
+import org.apache.rms.User ;
+import org.apache.rms.Profile ;
+import org.apache.rms.Application ;
+import org.apache.rms.BitPermission ;
+import org.apache.rms.ui.navtree.BeanTreeNode ;
+import org.apache.rms.ui.ocmm.ContainmentMetadata ;
+import org.apache.rms.ui.ocmm.ContextUtils;
+import org.apache.rms.ui.navtree.ContainerTreeNode ;
+import org.apache.rms.ui.navtree.ContainmentTreeNode ;
+
+
+/**
+ * A special table model implementation for the RMC GUI.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class RmcTableModel extends DefaultTableModel
+{
+ private final boolean m_isCheckBoxed ;
+ private final JTable m_table ;
+ private final TreePath m_path ;
+ private final ContainmentTreeNode m_node ;
+ private final ArrayList m_nodes = new ArrayList() ;
+ private final ArrayList m_data = new ArrayList() ;
+ private final ActionMenuManager m_menuManager ;
+ private String [] m_cols ;
+
+
+ /**
+ * Create a table model for a containment tree node.
+ */
+ public RmcTableModel( JTable table, TreePath path,
+ ActionMenuManager menuManager )
+ {
+ super() ;
+ m_node = ( ContainmentTreeNode ) path.getLastPathComponent() ;
+ m_path = path ;
+ m_table = table ;
+ m_isCheckBoxed = isCheckBoxed( m_node ) ;
+ m_menuManager = menuManager ;
+
+ init() ;
+ }
+
+
+ /**
+ * If this is not a checkboxed node then all the properties are displayed
+ * for the bean or container.
+ *
+ * Initializes the model by loading all the children with checkboxes set to
+ * the checked position and all option
+ *
+ */
+ public void init()
+ {
+ ContainmentMetadata meta = m_node.getContainmentMetadata() ;
+ String[] props = meta.getScalarProperties() ;
+
+ if ( m_isCheckBoxed )
+ {
+ m_cols = new String[ props.length+1 ] ;
+ System.arraycopy( props, 0, m_cols, 1, props.length ) ;
+ m_cols[0] = "" ;
+ }
+ else
+ {
+ m_cols = props ;
+ }
+
+ setColumnIdentifiers( m_cols ) ;
+
+ if ( m_node instanceof ContainerTreeNode )
+ {
+ for ( int ii = 0; ii < m_node.getChildCount(); ii++ )
+ {
+ addRow( ( ContainmentTreeNode ) m_node.getChildAt( ii ) ) ;
+ }
+
+ addOptionalNodes() ;
+ }
+ else
+ {
+ addRow( m_node ) ;
+ }
+
+ m_table.setModel( this ) ;
+
+ if ( m_isCheckBoxed )
+ {
+ m_table.getTableHeader().getColumnModel()
+ .getColumn( 0 ).setMaxWidth( 22 ) ;
+ }
+ m_table.revalidate() ;
+ }
+
+
+ public boolean isCheckBoxed()
+ {
+ return m_isCheckBoxed ;
+ }
+
+
+ /**
+ * Adds other nodes that are not children of this model's node. These nodes
+ * will be used as optional nodes and are introspected upon. When a
+ * checkbox is checked the user object in these nodes is used to build a
+ * new child node which is ultimately added to the tree.
+ */
+ private void addOptionalNodes()
+ {
+ if ( m_node instanceof BeanTreeNode )
+ {
+ return ;
+ }
+
+ ContainerTreeNode node = ( ContainerTreeNode ) m_node ;
+ BeanTreeNode parent = ( BeanTreeNode ) node.getParent() ;
+ BeanTreeNode root = ( BeanTreeNode ) m_path.getPathComponent( 0 ) ;
+
+ /* --------------------------------------------------------------------
+ 1). Find the container node with the superset of object nodes
+ 2). Find the difference superset - current set and add these
+ ------------------------------------------------------------------ */
+
+ if ( node.getContainer().getName().equals( "Profiles" ) )
+ {
+ /*
+ * This can only be the following path:
+ *
+ * root/Users/bean/Profiles
+ *
+ * 1). We need to get the Applications container to list all apps
+ * 2). Add applications contained which the user does not have a
+ * profile for. So this means we need the user bean.
+ */
+ BeanTreeNode userNode = parent ;
+ User user = ( User ) userNode.getUserObject() ;
+ ContainerTreeNode apps = root.getContainerChild( "Applications" ) ;
+
+ for ( int ii = 0; ii < apps.getChildCount(); ii++ )
+ {
+ BeanTreeNode appNode = ( BeanTreeNode ) apps.getChildAt( ii ) ;
+ Application app = ( Application ) appNode.getUserObject() ;
+ if ( ! user.hasProfile( app ) )
+ {
+ addRow( appNode ) ;
+ }
+ }
+
+ return ;
+ }
+
+
+ if ( node.getContainer().getName().equals( "Denials" ) )
+ {
+ /*
+ * This can only be the following path
+ *
+ * root/Users/bean/Profiles/bean/Denials
+ *
+ * 1). We need to get the users profile to check the denials
+ * 2). We need to get the application associated with the profile
+ * 3). We need to add the permissions for applications that are not
+ * present within the set of denials.
+ */
+ BeanTreeNode profNode = parent ;
+ Profile profile = ( Profile ) profNode.getUserObject() ;
+ ContainerTreeNode apps = root.getContainerChild( "Applications" ) ;
+
+ BeanTreeNode appNode = null ;
+ ContainerTreeNode perms = null ;
+
+ // get the app and appNode by finding matching app to profile's app
+ for ( int ii = 0; ii < apps.getChildCount(); ii++ )
+ {
+ BeanTreeNode tmpNode = ( BeanTreeNode ) apps.getChildAt( ii ) ;
+ Application tmp = ( Application ) tmpNode.getUserObject() ;
+ if ( tmp.getName().equals( profile.getApplicationName() ) )
+ {
+ appNode = tmpNode ;
+ break ;
+ }
+ }
+
+ perms = appNode.getContainerChild( "Permissions" ) ;
+ for ( int ii = 0; ii < perms.getChildCount(); ii++ )
+ {
+ BeanTreeNode permNode = (BeanTreeNode) perms.getChildAt(ii) ;
+ BitPermission perm = (BitPermission) permNode.getUserObject() ;
+
+ if ( ! profile.hasDenial( perm ) )
+ {
+ addRow( permNode ) ;
+ }
+ }
+
+ return ;
+ }
+
+
+ if ( node.getContainer().getName().equals( "Roles" ) &&
+ ( parent.getUserObject() instanceof Profile ) )
+ {
+ /*
+ * There are two paths in which containers with the name 'Roles'
+ * can be encountered:
+ *
+ * root/Applications/bean/Roles
+ * root/Users/bean/Profiles/bean/Roles
+ *
+ * Here we are interested in the second path - the first does not
+ * offer up checkbox options since there perms you either create or
+ * delete and there is no superset to pick options from.
+ *
+ * 1). get the profile of the user
+ * 2). get the application and appNode associated with the profile
+ * 3). add the app roles that the profile does not have
+ */
+ BeanTreeNode profNode = parent ;
+ Profile profile = ( Profile ) profNode.getUserObject() ;
+ ContainerTreeNode apps = root.getContainerChild( "Applications" ) ;
+
+ BeanTreeNode appNode = null ;
+ ContainerTreeNode roles = null ;
+
+ // get the app and appNode by finding matching app to profile's app
+ for ( int ii = 0; ii < apps.getChildCount(); ii++ )
+ {
+ BeanTreeNode tmpNode = ( BeanTreeNode ) apps.getChildAt( ii ) ;
+ Application tmp = ( Application ) tmpNode.getUserObject() ;
+ if ( tmp.getName().equals( profile.getApplicationName() ) )
+ {
+ appNode = tmpNode ;
+ break ;
+ }
+ }
+
+ roles = appNode.getContainerChild( "Roles" ) ;
+ for ( int ii = 0; ii < roles.getChildCount(); ii++ )
+ {
+ BeanTreeNode roleNode = (BeanTreeNode) roles.getChildAt(ii) ;
+ Role role = (Role) roleNode.getUserObject() ;
+
+ if ( ! profile.hasRole( role ) )
+ {
+ addRow( roleNode ) ;
+ }
+ }
+
+ return ;
+ }
+
+ if ( node.getContainer().getName().equals( "Grants" ) &&
+ ( parent.getUserObject() instanceof Profile ) )
+ {
+ /*
+ * There are three paths in which containers with the name 'Grants'
+ * can be encountered:
+ *
+ * root/Applications/bean/Roles/bean/Grants
+ * root/Users/bean/Profiles/bean/Roles/bean/Grants
+ * root/Users/bean/Profiles/bean/Grants
+ *
+ * Here we are interested in the third path - the first is a
+ * separate concern. The second is a copy of the first in a
+ * different position which is immutable - changes to these
+ * objects can only occur from the first position. To get the
+ * options for position 3 we need to do the following:
+ *
+ * 1). get the profile of the user
+ * 2). get the application and appNode associated with the profile
+ * 3). add the app perms that the profile does not have in the
+ * grants set
+ */
+ BeanTreeNode profNode = parent ;
+ Profile profile = ( Profile ) profNode.getUserObject() ;
+ ContainerTreeNode apps = root.getContainerChild( "Applications" ) ;
+
+ BeanTreeNode appNode = null ;
+ ContainerTreeNode perms = null ;
+
+ // get the app and appNode by finding matching app to profile's app
+ for ( int ii = 0; ii < apps.getChildCount(); ii++ )
+ {
+ BeanTreeNode tmpNode = ( BeanTreeNode ) apps.getChildAt( ii ) ;
+ Application tmp = ( Application ) tmpNode.getUserObject() ;
+ if ( tmp.getName().equals( profile.getApplicationName() ) )
+ {
+ appNode = tmpNode ;
+ break ;
+ }
+ }
+
+ perms = appNode.getContainerChild( "Permissions" ) ;
+ for ( int ii = 0; ii < perms.getChildCount(); ii++ )
+ {
+ BeanTreeNode permNode = (BeanTreeNode) perms.getChildAt(ii) ;
+ BitPermission perm = (BitPermission) permNode.getUserObject() ;
+
+ if ( ! profile.hasGrant( perm ) )
+ {
+ addRow( permNode ) ;
+ }
+ }
+
+ return ;
+ }
+
+
+ /*
+ * There are three paths in which containers with the name 'Grants'
+ * can be encountered:
+ *
+ * root/Applications/bean/Roles/bean/Grants
+ * [0] / [1] / [2]/ [3] / [4]/ [5] levels
+ *
+ * root/Users/bean/Profiles/bean/Roles/bean/Grants
+ * root/Users/bean/Profiles/bean/Grants
+ *
+ * Here we are interested in the first path. The second is a copy of
+ * the first in a different position which is immutable - changes to
+ * these objects can only occur from the first position.
+ *
+ * 1). get the role bean
+ * 2). get the application and appNode associated with the node
+ * 3). add the app perms that the role does not have in the grants set
+ */
+ if ( node.getContainer().getName().equals( "Grants" ) &&
+ ( parent.getUserObject() instanceof Role ) &&
+ parent.getLevel() < 6 )
+ {
+ BeanTreeNode roleNode = parent ;
+ Role role = ( Role ) roleNode.getUserObject() ;
+ BeanTreeNode appNode = ( BeanTreeNode ) roleNode
+ .getParent().getParent() ;
+ ContainerTreeNode perms =
+ appNode.getContainerChild( "Permissions" ) ;
+
+ for ( int ii = 0; ii < perms.getChildCount(); ii++ )
+ {
+ BeanTreeNode permNode = (BeanTreeNode) perms.getChildAt(ii) ;
+ BitPermission perm = (BitPermission) permNode.getUserObject() ;
+ if ( ! role.hasPermission( perm ) )
+ {
+ addRow( permNode ) ;
+ }
+ }
+
+ return ;
+ }
+ }
+
+
+ /**
+ * Determines whether or not a left most checkBox column is included for
+ * this container node. The checkbox is used to display and enable the
+ * selection of options within the table.
+ *
+ * @param node the node to test
+ * @return true if the node requires a checkbox column in the table
+ */
+ private static boolean isCheckBoxed( ContainmentTreeNode node )
+ {
+ if ( node instanceof BeanTreeNode )
+ {
+ return false ;
+ }
+
+ ContainerTreeNode cnode = ( ContainerTreeNode ) node ;
+ boolean isCheckBoxed =
+ cnode.getContainer().getName().equals( "Denials" ) ||
+ cnode.getContainer().getName().equals( "Profiles" ) ;
+
+ if ( isCheckBoxed )
+ {
+ return true ;
+ }
+
+ BeanTreeNode parent = ( BeanTreeNode ) node.getParent() ;
+
+ if ( cnode.getContainer().getName().equals( "Roles" ) &&
+ ( parent.getUserObject() instanceof Profile ) )
+ {
+ return true ;
+ }
+
+ if ( cnode.getContainer().getName().equals( "Grants" ) &&
+ ( parent.getUserObject() instanceof Profile ) )
+ {
+ return true ;
+ }
+
+ if ( cnode.getContainer().getName().equals( "Grants" ) &&
+ ( parent.getUserObject() instanceof Role ) &&
+ parent.getLevel() < 6 )
+ {
+ return true ;
+ }
+
+ return false ;
+ }
+
+
+ /**
+ * Gets a set of property values of a bean.
+ *
+ * @param a_bean the bean to get properties from
+ * @return the property values
+ */
+ Object[] getBeanProperties( Object a_bean )
+ {
+ Object[] l_values = new Object[ m_cols.length ] ;
+
+ for ( int ii = 0; ii < m_cols.length; ii++ )
+ {
+ // ignore first property if it is the checkboxed column property
+ if ( m_cols[ii] == null || m_cols[ii].trim().equals( "" ) )
+ {
+ continue ;
+ }
+
+ try
+ {
+ l_values[ii] = BeanUtils
+ .getProperty( a_bean, m_cols[ii] ) ;
+ }
+ catch( Throwable e )
+ {
+ l_values[ii] = reflectionFault( m_cols[ii], a_bean, e ) ;
+ }
+ }
+
+ return l_values ;
+ }
+
+
+ /**
+ * Handler for reflection failures.
+ *
+ * @param a_prop the property queried
+ * @param a_bean the bean reflection was attempted upon
+ * @param a_fault the thrown fault
+ * @return the error message
+ */
+ String reflectionFault( String a_prop, Object a_bean,
+ Throwable a_fault )
+ {
+ String l_msg = "FAILURE: " + a_prop + " lookup on bean " + a_bean ;
+ // m_console.log().error( l_msg, a_fault ) ;
+ return l_msg ;
+ }
+
+
+ /*
+ * This method returns the Class object of the first cell in specified
+ * column in the table model. Unless this method is overridden, all values
+ * are assumed to be the type Object.
+ *
+ * (non-Javadoc)
+ * @see javax.swing.table.TableModel#getColumnClass(int)
+ */
+ public Class getColumnClass( int mColIndex )
+ {
+ int rowIndex = 0 ;
+ Object o = getValueAt( rowIndex, mColIndex ) ;
+
+ if ( o == null )
+ {
+ return Object.class ;
+ }
+ else
+ {
+ return o.getClass() ;
+ }
+ }
+
+
+ /* (non-Javadoc)
+ * @see javax.swing.table.DefaultTableModel#getValueAt(int, int)
+ */
+ public Object getValueAt( int row, int column )
+ {
+ return ( ( Object[] ) m_data.get( row ) ) [column] ;
+ }
+
+
+ Object getValueAt( int row, String colName )
+ {
+ int index = 0 ;
+ for ( ; index < m_cols.length; index++ )
+ {
+ if ( ( ( String ) m_cols[index] ).equals( colName ) )
+ {
+ Object[] rowData = ( Object[] ) m_data.get( row ) ;
+ return rowData[index] ;
+ }
+ }
+
+ throw new IllegalArgumentException( "Unrecognized column name "
+ + colName + " for model with following columns: " + m_cols ) ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see javax.swing.table.DefaultTableModel#setValueAt(java.lang.Object,
+ * int, int)
+ */
+ public void setValueAt( Object value, int row, int column )
+ {
+ Object[] rec = ( Object[] ) m_data.get( row ) ;
+
+ if ( m_isCheckBoxed && column == 0 )
+ {
+ rec[column] = value ;
+
+ /*
+ * 1). find the node that we are attempting to add or remove
+ * 2). fire off a menu event as if the user used the menu
+ */
+
+ String path = TreePathUtils.getContext(
+ m_menuManager.getSelectedPath() ) ;
+
+ if ( ContextUtils.matches( path,
+ "root/Applications/bean/Roles/bean/Grants" ) )
+ {
+ StringBuffer cmd = new StringBuffer() ;
+ String permName = ( String ) getValueAt( row, "name" ) ;
+
+ if ( ( ( Boolean ) value ).booleanValue() )
+ {
+ cmd.append( "GrantPermissionToRole" ) ;
+ }
+ else
+ {
+ cmd.append( "RevokePermissionFromRole" ) ;
+ }
+
+ cmd.append( '|' ) ;
+ cmd.append( permName ) ;
+ m_menuManager.fireActionCommand( cmd.toString() ) ;
+ }
+ else if ( ContextUtils.matches( path,
+ "root/Users/bean/Profiles" ) )
+ {
+ StringBuffer cmd = new StringBuffer() ;
+ String appName = (String) getValueAt( row, "applicationName" ) ;
+
+ if ( ( ( Boolean ) value ).booleanValue() )
+ {
+ cmd.append( "CreateProfileForUser" ) ;
+
+ /**
+ * @todo don't need two lines below after we make the
+ * handler into a proper submenu handler for this action.
+ */
+ cmd.append( '|' ) ;
+ cmd.append( appName ) ;
+ }
+ else
+ {
+ cmd.append( "DeleteProfileFromUser" ) ;
+ }
+
+ /*
+ * Add this back after making it a submenu handler
+ *
+ cmd.append( '|' ) ;
+ cmd.append( appName ) ;
+ */
+
+ /**
+ * Currently the profile deletion action is a single item
+ * command without options it seems when it should be multi
+ * selection using a submenu instead of a single item.
+ *
+ * @todo make DeleteProfileFromUserHandler a submenu handler
+ * and fix this stuff here - basically remove it.
+ */
+ ContainerTreeNode container = m_menuManager.getLastContainer() ;
+
+ if ( ( ( Boolean ) value ).booleanValue() == false )
+ {
+ for ( int ii = 0; ii < container.getChildCount(); ii++ )
+ {
+ BeanTreeNode child = ( BeanTreeNode )
+ container.getChildAt( ii ) ;
+
+ if ( ( ( Profile ) child.getUserObject() )
+ .getApplicationName().equals( appName ) )
+ {
+ TreePath selected = new TreePath( container.getPath() );
+ m_menuManager.setSelected( selected
+ .pathByAddingChild( child ) ) ;
+ }
+ }
+ }
+
+ m_menuManager.fireActionCommand( cmd.toString() ) ;
+
+ /**
+ * @todo don't need this line below after we make the handler
+ * into a proper submenu handler for this action.
+ */
+ m_menuManager.setSelected(new TreePath( container.getPath() )) ;
+ }
+ else if ( ContextUtils.matches( path,
+ "root/Users/bean/Profiles/bean/Grants" ) )
+ {
+ StringBuffer cmd = new StringBuffer() ;
+ String permName = ( String ) getValueAt( row, "name" ) ;
+
+ if ( ( ( Boolean ) value ).booleanValue() )
+ {
+ cmd.append( "GrantPermissionToProfile" ) ;
+ }
+ else
+ {
+ cmd.append( "RevokeGrantFromProfile" ) ;
+ }
+
+ cmd.append( '|' ) ;
+ cmd.append( permName ) ;
+ m_menuManager.fireActionCommand( cmd.toString() ) ;
+ }
+ else if ( ContextUtils.matches( path,
+ "root/Users/bean/Profiles/bean/Denials" ) )
+ {
+ StringBuffer cmd = new StringBuffer() ;
+ String permName = ( String ) getValueAt( row, "name" ) ;
+
+ if ( ( ( Boolean ) value ).booleanValue() )
+ {
+ cmd.append( "DenyPermissionForProfile" ) ;
+ }
+ else
+ {
+ cmd.append( "RevokeDenialFromProfile" ) ;
+ }
+
+ cmd.append( '|' ) ;
+ cmd.append( permName ) ;
+ m_menuManager.fireActionCommand( cmd.toString() ) ;
+ }
+ else if ( ContextUtils.matches( path,
+ "root/Users/bean/Profiles/bean/Roles" ) )
+ {
+ StringBuffer cmd = new StringBuffer() ;
+ String roleName = ( String ) getValueAt( row, "name" ) ;
+
+ if ( ( ( Boolean ) value ).booleanValue() )
+ {
+ cmd.append( "AddRoleToProfile" ) ;
+ }
+ else
+ {
+ cmd.append( "RemoveRoleFromProfile" ) ;
+ }
+
+ cmd.append( '|' ) ;
+ cmd.append( roleName ) ;
+ m_menuManager.fireActionCommand( cmd.toString() ) ;
+ }
+ else
+ {
+ throw new IllegalArgumentException( "Don't recognize path "
+ + path.toString() ) ;
+ }
+ }
+ }
+
+
+ /* (non-Javadoc)
+ * @see javax.swing.table.DefaultTableModel#getRowCount()
+ */
+ public int getRowCount()
+ {
+ if ( m_nodes == null )
+ {
+ return 0 ;
+ }
+
+ return m_nodes.size() ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see javax.swing.table.DefaultTableModel#addRow(java.lang.Object[])
+ */
+ public void addRow( Object[] rowData )
+ {
+ throw new UnsupportedOperationException(
+ "Use addRow(ContainmentTreeNode) instead" ) ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see javax.swing.table.DefaultTableModel#addRow(java.util.Vector)
+ */
+ public void addRow( Vector rowData )
+ {
+ throw new UnsupportedOperationException(
+ "Use addRow(ContainmentTreeNode) instead" ) ;
+ }
+
+
+ /**
+ * Adds a node to this view. If it's parent is this model's node then
+ * the checkbox is checked to mark inclusion otherwise the check is not
+ * marked.
+ */
+ public void addRow( ContainmentTreeNode child )
+ {
+ Object[] row = null ;
+ Class childClass = child.getContainmentMetadata().getTypeClass() ;
+ Class parentClass = m_node.getContainmentMetadata().getTypeClass() ;
+
+ // ahhwww here is some really stinky hard coded crap handling a flaw
+ // in the design. Basically app nodes are added where profile nodes
+ // are expected and he reflection bombs out. We catch this special
+ // case and have hard code the setting of valuees.
+ if ( ! childClass.isAssignableFrom( parentClass ) )
+ {
+ if ( childClass.isAssignableFrom( Application.class ) &&
+ parentClass.isAssignableFrom( Profile.class ) )
+ {
+ row = new Object[3] ;
+ System.out.println(
+ "Caught ugly missmatch of app node for profile node!") ;
+ BeanTreeNode userNode = ( BeanTreeNode ) m_node.getParent() ;
+ Application app = ( Application ) child.getUserObject() ;
+ User user = ( User ) userNode.getUserObject() ;
+ row[0] = Boolean.FALSE ;
+ row[1] = user.getName() ;
+ row[2] = app.getName() ;
+ }
+ }
+ else
+ {
+ row = getBeanProperties( child.getUserObject() ) ;
+ }
+
+ m_nodes.add( child ) ;
+ m_data.add( row ) ;
+
+ if ( m_isCheckBoxed )
+ {
+ if ( m_node == child.getParent() )
+ {
+ row[0] = Boolean.TRUE ;
+ }
+ else
+ {
+ row[0] = Boolean.FALSE ;
+ }
+ }
+ }
+}
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/RmcTreeCellRenderer.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/RmcTreeCellRenderer.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,120 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui ;
+
+
+import java.awt.Component ;
+
+import javax.swing.JTree ;
+import javax.swing.ImageIcon ;
+import javax.swing.tree.TreeNode ;
+import javax.swing.tree.TreePath ;
+import javax.swing.tree.DefaultTreeModel ;
+import javax.swing.tree.DefaultTreeCellRenderer ;
+
+import org.apache.rms.ui.ocmm.IconUsage ;
+import org.apache.rms.ui.ocmm.Container ;
+import org.apache.rms.ui.ocmm.ContainmentMetadata ;
+import org.apache.rms.ui.navtree.ContainerTreeNode ;
+import org.apache.rms.ui.navtree.ContainmentTreeNode ;
+
+
+/**
+ * A special cell render for the RMS management console.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class RmcTreeCellRenderer extends DefaultTreeCellRenderer
+{
+ /*
+ * (non-Javadoc)
+ * @see javax.swing.tree.TreeCellRenderer#getTreeCellRendererComponent(
+ * javax.swing.JTree, java.lang.Object, boolean, boolean, boolean, int,
+ * boolean)
+ */
+ public Component
+ getTreeCellRendererComponent( JTree tree, Object value,
+ boolean sel, boolean expanded,
+ boolean leaf, int row, boolean hasFocus )
+ {
+ super.getTreeCellRendererComponent( tree, value, sel, expanded, leaf,
+ row, hasFocus ) ;
+
+ ContainmentTreeNode l_node = ( ContainmentTreeNode ) value ;
+ ImageIcon l_image =
+ loadImage( tree, l_node, sel, expanded, leaf, hasFocus ) ;
+
+ if ( l_image != null )
+ {
+ setIcon( l_image ) ;
+ }
+
+ // setToolTipText( l_node.getContainmentMetadata().getToolTipText() ) ;
+
+ return this ;
+ }
+
+
+ /**
+ *
+ * @param tree
+ * @param node
+ * @param isSelected
+ * @param isExpanded
+ * @param isLeaf
+ * @param hasFocus
+ * @return
+ */
+ protected ImageIcon loadImage( JTree tree, ContainmentTreeNode node,
+ boolean isSelected, boolean isExpanded,
+ boolean isLeaf, boolean hasFocus )
+ {
+ DefaultTreeModel l_model = ( DefaultTreeModel ) tree.getModel() ;
+ TreeNode[] l_nodes = l_model.getPathToRoot( node ) ;
+ TreePath l_path = new TreePath( l_nodes ) ;
+ ContainmentMetadata l_meta = null ;
+ IconUsage l_icon = null ;
+
+ if ( node.isBeanNode() )
+ {
+ l_meta = node.getContainmentMetadata() ;
+ IconUsage[] l_icons = l_meta.getIcons() ;
+
+ for ( int ii = 0; ii < l_icons.length; ii++ )
+ {
+ String[] l_contexts = l_icons[ii].getContexts() ;
+ if ( TreePathUtils.isContextAllowed( l_path, l_contexts ) )
+ {
+ l_icon = l_icons[ii] ;
+ }
+ }
+ }
+ else
+ {
+ Container l_container = ( (ContainerTreeNode) node ).getContainer();
+ l_icon = l_container.getIcon() ;
+ }
+
+ if ( l_icon == null )
+ {
+ return null ;
+ }
+
+ return Images.load( l_icon ) ;
+ }
+}
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/RmsManagementConsole.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/RmsManagementConsole.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,158 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui ;
+
+
+import java.io.File ;
+import java.io.FileInputStream ;
+
+import java.util.Properties ;
+
+import java.awt.Toolkit ;
+import java.awt.Dimension ;
+import javax.swing.UIManager ;
+import java.awt.event.WindowEvent ;
+import java.awt.event.WindowAdapter ;
+
+import org.apache.avalon.framework.activity.Executable ;
+import org.apache.avalon.framework.service.Serviceable ;
+import org.apache.avalon.framework.activity.Initializable ;
+import org.apache.avalon.framework.service.ServiceManager ;
+import org.apache.avalon.framework.service.ServiceException ;
+import org.apache.avalon.framework.logger.AbstractLogEnabled ;
+import org.apache.avalon.framework.logger.Logger;
+
+import org.apache.rms.Rms ;
+import org.apache.rms.ui.ocmm.ContainmentModel ;
+import org.apache.rms.ui.ocmm.spi.ContainmentModelFactory ;
+
+
+/**
+ * RMC main launcher.
+ *
+ * @avalon.component name="rms-management-console" lifestyle="singleton"
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class RmsManagementConsole extends AbstractLogEnabled
+ implements Initializable, Executable, Serviceable
+{
+ /** the main frame for this app */
+ private RmcMainFrame m_frame = null ;
+ private ContainmentModel m_model = null ;
+ private Rms m_rms = null ;
+
+
+ public void initialize() throws Exception
+ {
+ Properties l_props = new Properties() ;
+ File l_file = new File( System.getProperty( "user.home" ),
+ "build.properties" ) ;
+ l_props.load( new FileInputStream( l_file ) ) ;
+ m_rms = Rms.getInstance( l_props ) ;
+ }
+
+
+ public void execute() throws Exception
+ {
+ m_frame = new RmcMainFrame( this ) ;
+ Dimension m_screenSize = Toolkit.getDefaultToolkit().getScreenSize() ;
+ Dimension m_frameSize = m_frame.getSize() ;
+
+ if ( m_frameSize.height > m_screenSize.height )
+ {
+ m_frameSize.height = m_screenSize.height ;
+ }
+
+ if ( m_frameSize.width > m_screenSize.width )
+ {
+ m_frameSize.width = m_screenSize.width ;
+ }
+
+ m_frame.setLocation( ( m_screenSize.width - m_frameSize.width ) / 2,
+ ( m_screenSize.height - m_frameSize.height ) / 2 ) ;
+ m_frame.addWindowListener( new WindowAdapter()
+ {
+ public void windowClosing( WindowEvent e )
+ {
+ System.exit( 0 ) ;
+ }
+ } ) ;
+ m_frame.setVisible( true ) ;
+ }
+
+
+ /**
+ * @avalon.dependency type="org.apache.rms.ui.ocmm.spi.ContainmentModelFactory"
+ * key="ocmm-factory" version="1.0"
+ *
+ * @see org.apache.avalon.framework.service.Serviceable#service(
+ * org.apache.avalon.framework.service.ServiceManager)
+ */
+ public void service( ServiceManager a_manager ) throws ServiceException
+ {
+ ContainmentModelFactory l_factory =
+ ( ContainmentModelFactory ) a_manager.lookup( "ocmm-factory" ) ;
+ m_model = l_factory.getContainmentModel() ;
+ }
+
+
+ public Rms getRmsInstance()
+ {
+ return m_rms ;
+ }
+
+
+ public ContainmentModel getContainmentModel()
+ {
+ return m_model ;
+ }
+
+
+ public Logger log()
+ {
+ return super.getLogger() ;
+ }
+
+
+ public RmcMainFrame getMainFrame()
+ {
+ return m_frame ;
+ }
+
+
+ /**
+ * Main for RMC.
+ *
+ * @param args not really used yet
+ */
+ public static void main( String[] args )
+ {
+ try
+ {
+ UIManager.setLookAndFeel(
+ UIManager.getSystemLookAndFeelClassName() ) ;
+ RmsManagementConsole l_rmc = new RmsManagementConsole() ;
+ l_rmc.execute() ;
+ }
+ catch( Exception e )
+ {
+ e.printStackTrace() ;
+ }
+ }
+}
\ No newline at end of file
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/TreePathUtils.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/TreePathUtils.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,135 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui ;
+
+
+import javax.swing.tree.DefaultMutableTreeNode;
+import javax.swing.tree.TreeNode;
+import javax.swing.tree.TreePath ;
+
+import org.apache.rms.ui.ocmm.ContextUtils ;
+import org.apache.rms.ui.navtree.BeanTreeNode ;
+import org.apache.rms.ui.navtree.ContainerTreeNode ;
+import org.apache.rms.ui.navtree.ContainmentTreeNode;
+
+
+/**
+ * Utility methods for dealing with trees and paths.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class TreePathUtils
+{
+ public static String getContext( TreeNode[] path )
+ {
+ StringBuffer buf = new StringBuffer() ;
+
+ for ( int ii = 0; ii < path.length; ii++ )
+ {
+ Object l_comp = path[ii] ;
+
+ if ( l_comp instanceof BeanTreeNode )
+ {
+ buf.append( "bean" ) ;
+ buf.append( '/' ) ;
+ }
+ else if ( l_comp instanceof ContainerTreeNode )
+ {
+ ContainerTreeNode l_ctn = ( ContainerTreeNode ) l_comp ;
+ buf.append( l_ctn.getContainer().getName() ) ;
+ buf.append( '/' ) ;
+ }
+ else
+ {
+ throw new IllegalArgumentException(
+ "This method was only intended for trees with nodes "
+ + "composed of BeanTreeNodes and ContainerTreeNodes" ) ;
+ }
+ }
+
+ return buf.toString() ;
+ }
+
+
+ /**
+ * Constructs the context, also known as the generalized path to a tree
+ * node.
+ *
+ * @param path the exact path to the tree node
+ * @return the context associated with a tree node
+ */
+ public static String getContext( TreePath path )
+ {
+ StringBuffer buf = new StringBuffer() ;
+
+ for ( int ii = 0; ii < path.getPathCount(); ii++ )
+ {
+ Object l_comp = path.getPathComponent( ii ) ;
+
+ if ( l_comp instanceof BeanTreeNode )
+ {
+ buf.append( "bean" ) ;
+ buf.append( '/' ) ;
+ }
+ else if ( l_comp instanceof ContainerTreeNode )
+ {
+ ContainerTreeNode l_ctn = ( ContainerTreeNode ) l_comp ;
+ buf.append( l_ctn.getContainer().getName() ) ;
+ buf.append( '/' ) ;
+ }
+ else
+ {
+ throw new IllegalArgumentException(
+ "This method was only intended for trees with nodes "
+ + "composed of BeanTreeNodes and ContainerTreeNodes" ) ;
+ }
+ }
+
+ return buf.toString() ;
+ }
+
+
+ /**
+ * Checks to see if a tree node matches a context path.
+ *
+ * @param node the node to test
+ * @param path the context or generalized path
+ * @return true if the node matches the path, false otherwise
+ */
+ public static boolean matches( ContainmentTreeNode node, String path )
+ {
+ TreePath tpath = new TreePath( ( ( DefaultMutableTreeNode )
+ node ).getPath() ) ;
+ return ContextUtils.matches( path, getContext( tpath ) ) ;
+ }
+
+
+ /**
+ * Tests to see if a tree path is accepted by a context.
+ *
+ * @param a_path the Tree Navigation's selected TreePath
+ * @param a_contexts the contexts of applicability
+ * @return true if the path falls under the specified contexts, false
+ * if it does not
+ */
+ public static boolean isContextAllowed( TreePath a_path,
+ String[] a_contexts )
+ {
+ return ContextUtils.matches( getContext( a_path), a_contexts ) ;
+ }
+}
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/.cvsignore
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/.cvsignore Wed Apr 7 18:57:22 2004
@@ -0,0 +1 @@
+HandlerTemplate.java
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/AddPermissionToApplicationHandler.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/AddPermissionToApplicationHandler.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,109 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.actions ;
+
+
+import java.awt.event.ActionEvent ;
+
+import javax.swing.tree.TreePath ;
+
+import org.apache.rms.RmsException ;
+import org.apache.rms.BitPermission ;
+import org.apache.rms.spi.MutableApplication ;
+
+import org.apache.rms.ui.ActionMenuManager ;
+import org.apache.rms.ui.navtree.BeanTreeNode ;
+import org.apache.rms.ui.navtree.ContainerTreeNode ;
+
+
+/**
+ * Action handler for 'AddPermissionToApplication' action commands.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class AddPermissionToApplicationHandler extends BaseMenuItemHandler
+{
+ public static final String ACTION_COMMAND = "AddPermissionToApplication" ;
+ private final ActionMenuManager m_manager ;
+
+
+ /**
+ * Creates a handler for 'AddPermissionToApplication' action commands.
+ */
+ public AddPermissionToApplicationHandler( ActionMenuManager a_manager )
+ {
+ m_manager = a_manager ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see java.awt.event.ActionListener#actionPerformed(
+ * java.awt.event.ActionEvent)
+ */
+ public void actionPerformed( ActionEvent e )
+ {
+ if ( e.getActionCommand().equals( ACTION_COMMAND ) )
+ {
+ BeanTreeNode l_beanNode = m_manager.getLastBean() ;
+ MutableApplication l_app =
+ ( MutableApplication ) l_beanNode.getUserObject() ;
+ ContainerTreeNode l_parent =
+ l_beanNode.getContainerChild( "Permissions" ) ;
+ TreePath l_parentPath = m_manager.getLastContainerPath() ;
+
+ CreatePermissionDialog l_permDialog =
+ new CreatePermissionDialog( null, true, l_app ) ;
+ l_permDialog.setVisible( true ) ;
+
+ if ( l_permDialog.hasCanceled() )
+ {
+ return ;
+ }
+
+ BitPermission l_perm = null ;
+ try
+ {
+ l_perm = l_app.createPermission(
+ l_permDialog.getPermissionName() ) ;
+ }
+ catch ( RmsException ex )
+ {
+ ex.printStackTrace() ;
+ }
+
+ if ( l_perm == null )
+ {
+ return ;
+ }
+
+ BeanTreeNode l_permNode = new BeanTreeNode( l_perm,
+ m_manager.getContainmentModel() ) ;
+ m_manager.getTreeModel().insertNodeInto( l_permNode, l_parent, 0 ) ;
+ m_manager.setSelected( l_parentPath ) ;
+ }
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuHandler#getCommand()
+ */
+ public String getCommand()
+ {
+ return ACTION_COMMAND ;
+ }
+}
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/AddRoleToProfileHandler.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/AddRoleToProfileHandler.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,299 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.actions ;
+
+
+import java.util.Iterator ;
+import java.util.ArrayList ;
+
+import java.awt.Dimension ;
+import java.awt.event.ActionEvent ;
+
+import javax.swing.JMenu ;
+import javax.swing.JMenuItem ;
+import javax.swing.JTextArea ;
+import javax.swing.JOptionPane ;
+import javax.swing.JScrollPane ;
+import javax.swing.tree.TreePath ;
+
+import org.apache.commons.lang.StringUtils ;
+import org.apache.commons.lang.exception.ExceptionUtils ;
+
+import org.apache.rms.ui.ocmm.Action ;
+import org.apache.rms.RmsException ;
+import org.apache.rms.spi.MutableRole ;
+import org.apache.rms.ui.ActionMenuManager ;
+import org.apache.rms.ui.Images ;
+import org.apache.rms.spi.MutableProfile ;
+import org.apache.rms.ui.navtree.BeanTreeNode ;
+import org.apache.rms.spi.MutableApplication ;
+import org.apache.rms.ui.navtree.ContainerTreeNode ;
+import org.apache.rms.ui.navtree.ContainmentTreeNode ;
+
+
+/**
+ * Handler for 'AddRoleToProfile' ActionEvent commands.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class AddRoleToProfileHandler implements SubMenuHandler
+{
+ public static final String ACTION_COMMAND = "AddRoleToProfile" ;
+ private final ActionMenuManager m_manager ;
+
+
+ /**
+ * Creates a 'AddRoleToProfile' action command handler.
+ *
+ * @param a_manager the handler for the command.
+ */
+ public AddRoleToProfileHandler( ActionMenuManager a_manager )
+ {
+ m_manager = a_manager ;
+ }
+
+
+ /**
+ * Gets the Profile node associated with the selection path.
+ *
+ * @param a_path the selection path
+ * @return the profile node
+ */
+ private BeanTreeNode getProfileNode( TreePath a_path )
+ {
+ /*
+ * Last selected is either the 'Grants' container or the profile bean.
+ */
+ ContainmentTreeNode l_last =
+ ( ContainmentTreeNode ) a_path.getLastPathComponent() ;
+
+ if ( l_last.isContainerNode() )
+ {
+ return ( BeanTreeNode ) l_last.getParent() ;
+ }
+ else
+ {
+ return ( BeanTreeNode ) l_last ;
+ }
+ }
+
+
+ /**
+ * Gets the Profile associated with the selection path.
+ *
+ * @param a_path the selection path
+ * @return the mutable application under which this path is associated
+ */
+ private MutableProfile getProfile( TreePath a_path )
+ {
+ MutableProfile l_profile = null ;
+
+ /*
+ * Last selected is either the 'Grants' container or the profile bean.
+ */
+ ContainmentTreeNode l_last =
+ ( ContainmentTreeNode ) a_path.getLastPathComponent() ;
+
+ if ( l_last.isContainerNode() )
+ {
+ l_profile = ( MutableProfile ) ( ( BeanTreeNode ) l_last
+ .getParent() ).getUserObject() ;
+ }
+ else
+ {
+ l_profile = ( MutableProfile ) ( ( BeanTreeNode )
+ l_last ).getUserObject() ;
+ }
+
+ return l_profile ;
+ }
+
+
+ private MutableApplication getApplication( String appName )
+ {
+ MutableApplication l_app = null ;
+ BeanTreeNode l_root = ( BeanTreeNode ) m_manager
+ .getSelectedPath().getPath()[0] ;
+ ContainerTreeNode l_apps = l_root.getContainerChild( "Applications" ) ;
+
+ for ( int ii = 0; ii < l_apps.getChildCount(); ii++ )
+ {
+ BeanTreeNode l_child = ( BeanTreeNode ) l_apps.getChildAt( ii ) ;
+ l_app = ( MutableApplication ) l_child.getUserObject() ;
+
+ if ( ( l_app ).getName().equals( appName ) )
+ {
+ return l_app ;
+ }
+ }
+
+ return null ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see java.awt.event.ActionListener#actionPerformed(
+ * java.awt.event.ActionEvent)
+ */
+ public void actionPerformed( ActionEvent e )
+ {
+ String l_cmd = e.getActionCommand() ;
+
+ if ( l_cmd.startsWith( ACTION_COMMAND ) )
+ {
+ TreePath l_path = m_manager.getSelectedPath() ;
+ String l_roleName = StringUtils.split( l_cmd, '|' )[1] ;
+ MutableProfile l_profile = getProfile( l_path ) ;
+ ContainerTreeNode l_roles = null ;
+
+ if ( l_path.getLastPathComponent() instanceof BeanTreeNode )
+ {
+ // we selected a profile node so we need to get the child roles
+ l_roles = ( ( BeanTreeNode ) l_path.getLastPathComponent() )
+ .getContainerChild( "Roles" ) ;
+ }
+ else
+ {
+ // we selected the roles node so we just get the last container
+ l_roles = m_manager.getLastContainer() ;
+ }
+
+ MutableApplication l_app = getApplication(
+ l_profile.getApplicationName() ) ;
+ MutableRole l_role = ( MutableRole ) l_app.getRole( l_roleName ) ;
+ BeanTreeNode l_roleNode = new BeanTreeNode( l_role,
+ m_manager.getContainmentModel() ) ;
+
+ try
+ {
+ l_profile.addRole( l_role ) ;
+ }
+ catch( RmsException ex )
+ {
+ String l_msg = "We failed to add role "
+ + l_roleName + " to user " + l_profile.getUserName()
+ + "'s profile for application "
+ + l_profile.getApplicationName()
+ + " for the following reasons: "
+ + ExceptionUtils.getFullStackTrace( ex ) ;
+ JTextArea l_text = new JTextArea( l_msg ) ;
+ l_text.setEnabled( false ) ;
+ JScrollPane l_comp = new JScrollPane( l_text,
+ JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
+ JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED ) ;
+ l_comp.getViewport().setPreferredSize(
+ new Dimension( 640, 240 ) ) ;
+ JOptionPane.showMessageDialog( null , l_comp,
+ "Failed to Add Role to Profile",
+ JOptionPane.ERROR_MESSAGE ) ;
+ return ;
+ }
+
+ m_manager.getTreeModel().insertNodeInto( l_roleNode, l_roles, 0 ) ;
+
+ BeanTreeNode l_profileNode = getProfileNode( l_path ) ;
+ l_profileNode.refresh() ;
+ m_manager.getTreeModel().nodeStructureChanged( l_profileNode ) ;
+
+ m_manager.buildMenus() ;
+ }
+ }
+
+
+ /*
+ * This method is invoked when the Grants of a role is selected or a role
+ * itself is selected.
+ *
+ * (non-Javadoc)
+ * @see org.apache.rms.ui.actions.SubMenuHandler#getSubMenu(javax.swing.tree.TreePath,
+ * org.apache.rms.ui.ocmm.Action)
+ */
+ public JMenuItem getSubMenu( TreePath a_path, Action a_action )
+ {
+ JMenu l_menu = new JMenu( a_action.getName() ) ;
+
+ MutableProfile l_profile = getProfile( a_path ) ;
+ MutableApplication l_app = getApplication(
+ l_profile.getApplicationName() ) ;
+ ArrayList l_items = new ArrayList() ;
+ Iterator l_list = l_app.getRoles() ;
+
+ l_menu.setToolTipText( "Add a role to a user "
+ + l_profile.getUserName() + "'s profile for application "
+ + l_profile.getApplicationName() ) ;
+ l_menu.setIcon( Images.load( a_action.getIcon() ) ) ;
+
+ while ( l_list.hasNext() )
+ {
+ MutableRole l_role = ( MutableRole ) l_list.next() ;
+ l_items.add( l_role.getName() ) ;
+ }
+
+ l_list = l_profile.getRoles() ;
+ while ( l_list.hasNext() )
+ {
+ MutableRole l_role = ( MutableRole ) l_list.next() ;
+ l_items.remove( l_role.getName() ) ;
+ }
+
+ for ( int ii = 0; ii < l_items.size(); ii++ )
+ {
+ String l_item = ( String ) l_items.get( ii ) ;
+ JMenuItem l_menuItem = new JMenuItem( l_item ) ;
+ l_menu.add( l_menuItem ) ;
+
+ String l_cmd = a_action.getCommand() + "|" + l_item ;
+ l_menuItem.setActionCommand( l_cmd ) ;
+ l_menuItem.setToolTipText( "Add role " + l_item
+ + " to user " + l_profile.getUserName()
+ + "'s profile for application "
+ + l_profile.getApplicationName() ) ;
+ l_menuItem.addActionListener( this ) ;
+ l_menuItem.setIcon( Images.load( a_action.getIcon() ) ) ;
+ }
+
+ return l_menu ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuHandler#getCommand()
+ */
+ public String getCommand()
+ {
+ return ACTION_COMMAND ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuHandler#handles(org.apache.rms.ui.ocmm.Action)
+ */
+ public boolean handles( Action action )
+ {
+ return action.getCommand().equals( ACTION_COMMAND ) ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuHandler#isForItem()
+ */
+ public boolean isForItem()
+ {
+ return false ;
+ }
+}
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/BaseMenuItemHandler.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/BaseMenuItemHandler.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,66 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.actions ;
+
+
+import javax.swing.JMenuItem ;
+import javax.swing.tree.TreePath ;
+
+import org.apache.rms.ui.Images ;
+import org.apache.rms.ui.ocmm.Action ;
+
+
+/**
+ * Abstract menu item used as a baseline.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public abstract class BaseMenuItemHandler implements MenuItemHandler
+{
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuItemHandler#getMenuItem(
+ * javax.swing.tree.TreePath, org.apache.rms.ui.ocmm.Action)
+ */
+ public final JMenuItem getMenuItem( TreePath a_path, Action a_action )
+ {
+ JMenuItem l_item = new JMenuItem( a_action.getName() ) ;
+ l_item.setActionCommand( a_action.getCommand() ) ;
+ l_item.setToolTipText( a_action.getDescription() ) ;
+ l_item.addActionListener( this ) ;
+ l_item.setIcon( Images.load( a_action.getIcon() ) ) ;
+ return l_item ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuHandler#handles(org.apache.rms.ui.ocmm.Action)
+ */
+ public final boolean handles( Action action )
+ {
+ return action.getCommand().equals( getCommand() ) ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuHandler#isForItem()
+ */
+ public final boolean isForItem()
+ {
+ return true ;
+ }
+}
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/CreateApplicationHandler.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/CreateApplicationHandler.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,128 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.actions ;
+
+
+import java.awt.Dimension ;
+import java.awt.event.ActionEvent ;
+
+import javax.swing.JTextArea ;
+import javax.swing.JOptionPane ;
+import javax.swing.JScrollPane ;
+
+import org.apache.commons.lang.exception.ExceptionUtils ;
+
+import org.apache.rms.Application ;
+import org.apache.rms.RmsException ;
+import org.apache.rms.spi.MutableRms ;
+import org.apache.rms.ui.ActionMenuManager ;
+import org.apache.rms.ui.navtree.BeanTreeNode ;
+import org.apache.rms.ui.navtree.ContainerTreeNode ;
+
+
+/**
+ * Handler for 'CreateApplication' ActionEvent commands.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class CreateApplicationHandler extends BaseMenuItemHandler
+{
+ public static final String ACTION_COMMAND = "CreateApplication" ;
+ private final ActionMenuManager m_manager ;
+
+
+ /**
+ * Creates a 'CreateApplication' action command handler.
+ *
+ * @param a_manager the handler for the command.
+ */
+ public CreateApplicationHandler( ActionMenuManager a_manager )
+ {
+ m_manager = a_manager ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see java.awt.event.ActionListener#actionPerformed(
+ * java.awt.event.ActionEvent)
+ */
+ public void actionPerformed( ActionEvent e )
+ {
+ if ( e.getActionCommand().equals( ACTION_COMMAND ) )
+ {
+ BeanTreeNode l_btn = m_manager.getLastBean() ;
+ MutableRms l_rms = ( MutableRms ) l_btn.getUserObject() ;
+ ContainerTreeNode l_apps =
+ l_btn.getContainerChild( "Applications" ) ;
+
+ String l_appName = JOptionPane.showInputDialog(
+ m_manager.getMainFrame(),
+ "What's the application's name?",
+ "Create New Application", JOptionPane.QUESTION_MESSAGE ) ;
+
+ if ( l_appName == null )
+ {
+ return ;
+ }
+ else if ( l_appName.trim().equals( "" ) )
+ {
+ JOptionPane.showMessageDialog( m_manager.getMainFrame(),
+ "A valid name is required to create a new user.",
+ "Valid Name Required!", JOptionPane.ERROR_MESSAGE ) ;
+ return ;
+ }
+
+ l_appName = l_appName.trim() ;
+ Application l_app = null ;
+ try
+ {
+ l_app = l_rms.createApplication( l_appName ) ;
+ }
+ catch ( RmsException ex )
+ {
+ String l_msg = "We failed to create the new application "
+ + l_appName + " for the following reasons: "
+ + ExceptionUtils.getFullStackTrace( ex ) ;
+ JTextArea l_text = new JTextArea( l_msg ) ;
+ l_text.setEnabled( false ) ;
+ JScrollPane l_comp = new JScrollPane( l_text,
+ JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
+ JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED ) ;
+ l_comp.getViewport().setPreferredSize(
+ new Dimension( 640, 240 ) ) ;
+ JOptionPane.showMessageDialog( null , l_comp,
+ "Failed to Create New Application: " + l_appName,
+ JOptionPane.ERROR_MESSAGE ) ;
+ return ;
+ }
+
+ BeanTreeNode l_appNode = new BeanTreeNode( l_app,
+ m_manager.getContainmentModel() ) ;
+ m_manager.getTreeModel().insertNodeInto( l_appNode, l_apps, 0 ) ;
+ }
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuHandler#getCommand()
+ */
+ public String getCommand()
+ {
+ return ACTION_COMMAND ;
+ }
+}
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/CreatePermissionDialog.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/CreatePermissionDialog.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,285 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.actions ;
+
+
+import java.awt.Font ;
+import java.awt.Frame ;
+import java.awt.Color ;
+import java.awt.Insets ;
+import java.awt.Toolkit ;
+import java.awt.Dimension ;
+import java.awt.FlowLayout ;
+import java.awt.GridBagLayout ;
+import java.awt.event.ActionEvent ;
+import java.awt.event.WindowEvent ;
+import java.awt.GridBagConstraints ;
+import java.awt.event.ActionListener ;
+
+import javax.swing.JPanel ;
+import javax.swing.JLabel ;
+import javax.swing.JButton ;
+import javax.swing.JDialog ;
+import javax.swing.JTextField ;
+import javax.swing.JOptionPane ;
+import javax.swing.BorderFactory ;
+import javax.swing.border.TitledBorder ;
+
+import org.apache.rms.Application ;
+
+
+/**
+ * A modal dialog for creating permissions.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class CreatePermissionDialog
+ extends JDialog implements ActionListener
+{
+ private static final String TITLE_BASE =
+ "Create New Application Permission For " ;
+ private static final String PRESS_TO_CANCEL_TOP =
+ "Press to cancel creation of permission" ;
+ private static final String PRESS_TO_CREATE_TIP =
+ "Press to create new application permission" ;
+
+ private boolean m_hasCanceled = true ;
+ private final Application m_application ;
+
+ private JPanel m_mainPanel = new JPanel() ;
+ private JPanel m_infoPanel = new JPanel() ;
+ private JPanel m_buttonPanel = new JPanel() ;
+ private JPanel m_appPanel = new JPanel() ;
+ private JLabel m_appNameLabel = new JLabel() ;
+ private JButton m_cancelButton = new JButton() ;
+ private JButton m_createButton = new JButton() ;
+ private JPanel m_permPanel = new JPanel() ;
+ private JLabel m_permNameLabel = new JLabel() ;
+ private JTextField m_permNameText = new JTextField() ;
+ private JLabel m_appName = new JLabel() ;
+
+
+ /**
+ * Creates new form JDialog
+ *
+ * @param parent
+ * @param modal
+ */
+ public CreatePermissionDialog( Frame parent, boolean modal,
+ Application app )
+ {
+ super( parent, modal ) ;
+ m_application = app ;
+ initGUI() ;
+
+ Dimension m_screenSize = Toolkit.getDefaultToolkit().getScreenSize() ;
+ Dimension m_frameSize = getSize() ;
+
+ if ( m_frameSize.height > m_screenSize.height )
+ {
+ m_frameSize.height = m_screenSize.height ;
+ }
+
+ if ( m_frameSize.width > m_screenSize.width )
+ {
+ m_frameSize.width = m_screenSize.width ;
+ }
+
+ setLocation( ( m_screenSize.width - m_frameSize.width ) / 2,
+ ( m_screenSize.height - m_frameSize.height ) / 2 ) ;
+ }
+
+
+ /**
+ * Called from within the constructor to initialize the form.
+ */
+ private void initGUI()
+ {
+ addWindowListener( new java.awt.event.WindowAdapter()
+ {
+ public void windowClosing( java.awt.event.WindowEvent evt )
+ {
+ closeDialog(evt);
+ }
+ });
+ pack();
+ setBounds( new java.awt.Rectangle( 0, 0, 455, 220 ) ) ;
+ setTitle( TITLE_BASE + m_application.getName() ) ;
+ setModal( true ) ;
+ getContentPane().setLayout( new java.awt.BorderLayout() ) ;
+ getContentPane().add( m_mainPanel, java.awt.BorderLayout.CENTER ) ;
+ m_mainPanel.setLayout( new java.awt.GridBagLayout() ) ;
+ m_mainPanel.setBorder( null ) ;
+
+ m_mainPanel.add( m_infoPanel, new GridBagConstraints( 0, 0, 1, 1,
+ 1.0, 0.8, GridBagConstraints.NORTH,
+ GridBagConstraints.BOTH, new Insets( 0, 5, 5, 5 ),
+ 0, 0 ) ) ;
+
+ m_mainPanel.add( m_buttonPanel,
+ new GridBagConstraints( 0, 1, 1, 1, 0.0, 0.0,
+ GridBagConstraints.EAST,
+ GridBagConstraints.BOTH,
+ new Insets( 10, 5, 10, 5 ), 0, 0 ) ) ;
+
+ m_infoPanel.setBorder( BorderFactory.createTitledBorder(
+ BorderFactory.createLineBorder( new Color(
+ 153, 153, 153 ), 1 ), "New Permission",
+ TitledBorder.LEADING, TitledBorder.TOP,
+ new Font( "Comic Sans MS", 0, 14 ),
+ new Color( 60, 60, 60 ) ) ) ;
+
+ m_infoPanel.setLayout( new GridBagLayout() ) ;
+
+ m_infoPanel.add( m_appPanel, new GridBagConstraints( 0, 0, 1, 1, 1.0,
+ 1.0, GridBagConstraints.NORTH, GridBagConstraints.BOTH,
+ new Insets( 0, 0, 0, 0 ), 0, 0 ) ) ;
+
+ m_infoPanel.add( m_permPanel, new GridBagConstraints( 0, 1, 1, 1, 1.0,
+ 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+ new Insets( 0, 0, 5, 0 ), 0, 0 ) ) ;
+
+ m_appNameLabel.setText( "Application Name:" ) ;
+ m_appNameLabel.setToolTipText( "Application Name" ) ;
+ m_appPanel.setLayout( new GridBagLayout() ) ;
+ m_appPanel.setAlignmentX( 0.0f ) ;
+ m_appPanel.setAlignmentY( 0.0f ) ;
+
+ m_appPanel.add( m_appNameLabel, new GridBagConstraints( 0, 0, 1, 1, 0.0,
+ 0.0, GridBagConstraints.WEST,
+ GridBagConstraints.NONE,
+ new Insets( 0, 10, 0, 10 ), 0, 0 ) );
+
+ m_appPanel.add( m_appName, new GridBagConstraints( 1, 0, 4, 1, 1.0, 0.0,
+ GridBagConstraints.WEST,
+ GridBagConstraints.HORIZONTAL,
+ new Insets( 0, 0, 0, 0 ), 0, 0 ) ) ;
+
+ m_cancelButton.setText( "Cancel" ) ;
+ m_cancelButton.setActionCommand( "Cancel" ) ;
+ m_cancelButton.addActionListener( this ) ;
+ m_cancelButton.setToolTipText( PRESS_TO_CANCEL_TOP ) ;
+ m_cancelButton.setSelected( true ) ;
+ m_buttonPanel.setLayout( new FlowLayout( FlowLayout.RIGHT, 10, 5 ) ) ;
+ m_buttonPanel.setBorder( BorderFactory.createTitledBorder(
+ BorderFactory.createLineBorder( new Color( 153, 153, 153 ), 1 ), "",
+ TitledBorder.LEADING, TitledBorder.TOP,
+ new Font( "Comic Sans MS", 0, 14 ), new Color( 60, 60, 60 ) ) ) ;
+ m_buttonPanel.add( m_cancelButton ) ;
+ m_buttonPanel.add( m_createButton ) ;
+ m_createButton.setText( "Create" ) ;
+ m_createButton.setActionCommand( "Create" ) ;
+ m_createButton.addActionListener( this ) ;
+ m_createButton.setToolTipText( PRESS_TO_CREATE_TIP ) ;
+ m_permNameLabel.setText( "Permission Name:" ) ;
+ m_permNameLabel.setVerifyInputWhenFocusTarget( false ) ;
+ m_permNameLabel.setToolTipText( "Permission Name" ) ;
+ m_permPanel.setLayout( new GridBagLayout() ) ;
+
+ m_permPanel.add(m_permNameLabel, new GridBagConstraints( 0, 0, 1, 1,
+ 0.29, 0.0, GridBagConstraints.WEST,
+ GridBagConstraints.HORIZONTAL,
+ new Insets( 0, 10, 0, 0 ), 0, 0 ) ) ;
+
+ m_permPanel.add( m_permNameText, new GridBagConstraints( 1, 0, 1, 1,
+ 70.0, 0.0, GridBagConstraints.WEST,
+ GridBagConstraints.HORIZONTAL,
+ new Insets( 0, 10, 0, 10 ), 0, 0 ) ) ;
+
+ m_appName.setText( m_application.getName() ) ;
+ m_appName.setToolTipText(
+ "The name of the application to add a permission to" ) ;
+ }
+
+
+ /**
+ * Closes the dialog
+ *
+ * @param evt
+ */
+ private void closeDialog( WindowEvent evt )
+ {
+ evt.getWindow() ;
+ setVisible( false ) ;
+ dispose() ;
+ }
+
+
+ /**
+ * Gets the permission name.
+ *
+ * @return the name of the new permission to create
+ */
+ public String getPermissionName()
+ {
+ return m_permNameText.getText() ;
+ }
+
+
+ /**
+ * Gets if this dialog's action was canceled.
+ *
+ * @return true if canceled false otherwise
+ */
+ public boolean hasCanceled()
+ {
+ return m_hasCanceled ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see java.awt.event.ActionListener#actionPerformed(
+ * java.awt.event.ActionEvent)
+ */
+ public void actionPerformed( ActionEvent e )
+ {
+ if ( e.getActionCommand().equals( "Cancel" ) )
+ {
+ m_hasCanceled = true ;
+ }
+ else if ( e.getActionCommand().equals( "Create" ) )
+ {
+ if ( m_permNameText.getText() == null ||
+ m_permNameText.getText().trim().equals( "" ) )
+ {
+ JOptionPane.showMessageDialog( this,
+ "Cannot create permission with empty label!",
+ "Cannot create: no permission name!",
+ JOptionPane.ERROR_MESSAGE ) ;
+ return ;
+ }
+
+ String l_permName = m_permNameText.getText().trim() ;
+ if ( m_application.hasPermission( l_permName ) )
+ {
+ JOptionPane.showMessageDialog( this,
+ "Permission " + l_permName
+ + " already exists for Application!",
+ "Permission exists for Application!",
+ JOptionPane.ERROR_MESSAGE ) ;
+ m_permNameText.setText( "" ) ;
+ return ;
+ }
+
+ m_hasCanceled = false ;
+ }
+
+ setVisible( false ) ;
+ dispose() ;
+ }
+}
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/CreateProfileForUserHandler.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/CreateProfileForUserHandler.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,237 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.actions ;
+
+
+import java.awt.Dimension;
+import java.awt.event.ActionEvent ;
+
+import java.util.Iterator ;
+import java.util.ArrayList ;
+
+import javax.swing.JMenu ;
+import javax.swing.JTextArea ;
+import javax.swing.JMenuItem ;
+import javax.swing.JOptionPane ;
+import javax.swing.JScrollPane ;
+import javax.swing.tree.TreePath ;
+
+import org.apache.commons.lang.StringUtils ;
+import org.apache.commons.lang.exception.ExceptionUtils ;
+
+import org.apache.rms.Rms ;
+import org.apache.rms.User ;
+import org.apache.rms.ui.Images ;
+import org.apache.rms.Profile ;
+import org.apache.rms.ui.ocmm.Action ;
+import org.apache.rms.RmsException ;
+import org.apache.rms.spi.MutableUser ;
+import org.apache.rms.ui.ActionMenuManager ;
+import org.apache.rms.ui.navtree.BeanTreeNode ;
+import org.apache.rms.spi.MutableProfile ;
+import org.apache.rms.spi.MutableApplication ;
+import org.apache.rms.ui.navtree.ContainerTreeNode ;
+import org.apache.rms.ui.navtree.ContainmentTreeNode ;
+
+
+/**
+ * Handler for 'CreateProfileForUser' ActionEvent commands.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class CreateProfileForUserHandler implements SubMenuHandler
+{
+ public static final String ACTION_COMMAND = "CreateProfileForUser" ;
+ private final ActionMenuManager m_manager ;
+
+
+ /**
+ * Creates a 'CreateProfileForUser' action command handler.
+ *
+ * @param a_manager the handler for the command.
+ */
+ public CreateProfileForUserHandler( ActionMenuManager a_manager )
+ {
+ m_manager = a_manager ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see java.awt.event.ActionListener#actionPerformed(
+ * java.awt.event.ActionEvent)
+ */
+ public void actionPerformed( ActionEvent e )
+ {
+ System.out.println( "Got action command: " + e.getActionCommand() ) ;
+
+ if ( e.getActionCommand().startsWith( ACTION_COMMAND ) )
+ {
+ String[] l_cmd = StringUtils.split( e.getActionCommand(), '|' ) ;
+ BeanTreeNode l_root =
+ ( BeanTreeNode ) m_manager.getTreeModel().getRoot() ;
+ ContainerTreeNode l_appNodes =
+ l_root.getContainerChild( "Applications" ) ;
+ MutableUser l_user =
+ ( MutableUser ) m_manager.getLastBean().getUserObject() ;
+
+ MutableApplication l_app = null ;
+ for ( int ii = 0; ii < l_appNodes.getChildCount(); ii++ )
+ {
+ BeanTreeNode l_appNode =
+ ( BeanTreeNode ) l_appNodes.getChildAt( ii ) ;
+ MutableApplication l_tmp = ( MutableApplication )
+ l_appNode.getUserObject() ;
+
+ if ( l_tmp.getName().equals( l_cmd[1] ) )
+ {
+ l_app = l_tmp ;
+ break ;
+ }
+ }
+
+ if ( l_app == null )
+ {
+ return ;
+ }
+
+ MutableProfile l_profile = null ;
+ try
+ {
+ l_profile = l_user.createProfile( l_app ) ;
+ }
+ catch( RmsException ex )
+ {
+ String l_msg =
+ "We failed to create the profile for user "
+ + l_user.getName() + " on application " + l_app.getName()
+ + " for the following reasons: "
+ + ExceptionUtils.getFullStackTrace( ex ) ;
+ JTextArea l_text = new JTextArea( l_msg ) ;
+ l_text.setEnabled( false ) ;
+ JScrollPane l_comp = new JScrollPane( l_text,
+ JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
+ JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED ) ;
+ l_comp.getViewport().setPreferredSize(
+ new Dimension( 640, 240 ) ) ;
+ JOptionPane.showMessageDialog( null , l_comp,
+ "Failed to Create New Application: " + l_app.getName(),
+ JOptionPane.ERROR_MESSAGE ) ;
+ return ;
+ }
+
+ ContainerTreeNode l_parent =
+ m_manager.getLastBean().getContainerChild( "Profiles" ) ;
+ BeanTreeNode l_profileNode = new BeanTreeNode( l_profile,
+ m_manager.getContainmentModel() ) ;
+ m_manager.getTreeModel()
+ .insertNodeInto( l_profileNode, l_parent, 0 ) ;
+ }
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.SubMenuHandler#getSubMenu(javax.swing.tree.TreePath,
+ * org.apache.rms.ui.ocmm.Action)
+ */
+ public JMenuItem getSubMenu( TreePath a_path, Action a_action )
+ {
+ JMenu l_menu = new JMenu( a_action.getName() ) ;
+ User l_user = null ;
+
+ ContainmentTreeNode l_last =
+ ( ContainmentTreeNode ) a_path.getLastPathComponent() ;
+ if ( l_last instanceof ContainerTreeNode )
+ {
+ l_user = ( User )
+ ( ( BeanTreeNode ) l_last.getParent() ).getUserObject() ;
+ }
+ else
+ {
+ l_user = ( User ) l_last.getUserObject() ;
+ }
+
+ l_menu.setToolTipText( "Create profile for user " + l_user.getName() ) ;
+ l_menu.setIcon( Images.load( a_action.getIcon() ) ) ;
+
+ ArrayList l_items = new ArrayList() ;
+ Iterator l_list = null ;
+
+ try
+ {
+ l_list = Rms.getInstance().getApplicationNames() ;
+ while ( l_list.hasNext() )
+ {
+ l_items.add( l_list.next() ) ;
+ }
+ }
+ catch( RmsException e )
+ {
+ e.printStackTrace() ;
+ }
+
+
+ l_list = l_user.getProfiles() ;
+ while ( l_list.hasNext() )
+ {
+ Profile l_profile = ( Profile ) l_list.next() ;
+ l_items.remove( l_profile.getApplicationName() ) ;
+ }
+
+ for ( int ii = 0; ii < l_items.size(); ii++ )
+ {
+ String l_item = ( String ) l_items.get( ii ) ;
+ JMenuItem l_menuItem = new JMenuItem( l_item ) ;
+ l_menu.add( l_menuItem ) ;
+
+ String l_cmd = a_action.getCommand() + "|" + l_item ;
+ l_menuItem.setActionCommand( l_cmd ) ;
+ l_menuItem.setToolTipText( "Create profile for " + l_item ) ;
+ l_menuItem.addActionListener( this ) ;
+ l_menuItem.setIcon( Images.load( a_action.getIcon() ) ) ;
+ }
+
+ return l_menu ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuHandler#getCommand()
+ */
+ public String getCommand()
+ {
+ return ACTION_COMMAND ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuHandler#handles(org.apache.rms.ui.ocmm.Action)
+ */
+ public boolean handles( Action action )
+ {
+ return action.getCommand().equals( ACTION_COMMAND ) ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuHandler#isForItem()
+ */
+ public boolean isForItem()
+ {
+ return false ;
+ }
+}
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/CreateRoleForApplicationHandler.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/CreateRoleForApplicationHandler.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,128 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.actions ;
+
+
+import java.awt.Dimension ;
+import java.awt.event.ActionEvent ;
+
+import javax.swing.JTextArea ;
+import javax.swing.JOptionPane ;
+import javax.swing.JScrollPane ;
+
+import org.apache.commons.lang.exception.ExceptionUtils ;
+
+import org.apache.rms.Role ;
+import org.apache.rms.RmsException ;
+import org.apache.rms.ui.ActionMenuManager ;
+import org.apache.rms.ui.navtree.BeanTreeNode ;
+import org.apache.rms.spi.MutableApplication ;
+import org.apache.rms.ui.navtree.ContainerTreeNode ;
+
+
+/**
+ * Handler for 'CreateRoleForApplication' ActionEvent commands.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class CreateRoleForApplicationHandler extends BaseMenuItemHandler
+{
+ public static final String ACTION_COMMAND = "CreateRoleForApplication" ;
+ private final ActionMenuManager m_manager ;
+
+
+ /**
+ * Creates a 'CreateRoleForApplication' action command handler.
+ *
+ * @param a_manager the handler for the command.
+ */
+ public CreateRoleForApplicationHandler( ActionMenuManager a_manager )
+ {
+ m_manager = a_manager ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see java.awt.event.ActionListener#actionPerformed(
+ * java.awt.event.ActionEvent)
+ */
+ public void actionPerformed( ActionEvent e )
+ {
+ if ( e.getActionCommand().equals( ACTION_COMMAND ) )
+ {
+ BeanTreeNode l_btn = m_manager.getLastBean() ;
+ ContainerTreeNode l_roles = l_btn.getContainerChild( "Roles" ) ;
+ MutableApplication l_app =
+ ( MutableApplication ) l_btn.getUserObject() ;
+
+
+ String l_roleName = JOptionPane.showInputDialog(
+ m_manager.getMainFrame(), "What's the role's name?",
+ "Create New Role", JOptionPane.QUESTION_MESSAGE ) ;
+
+ if ( l_roleName == null )
+ {
+ return ;
+ }
+ else if ( l_roleName.trim().equals( "" ) )
+ {
+ JOptionPane.showMessageDialog( m_manager.getMainFrame(),
+ "A valid name is required to create a new role.",
+ "Valid Name Required!", JOptionPane.ERROR_MESSAGE ) ;
+ return ;
+ }
+
+ l_roleName = l_roleName.trim() ;
+ Role l_role = null ;
+ try
+ {
+ l_role = l_app.createRole( l_roleName ) ;
+ }
+ catch ( RmsException ex )
+ {
+ String l_msg = "We failed to create the new role " + l_roleName
+ + " for the following reasons: "
+ + ExceptionUtils.getFullStackTrace( ex ) ;
+ JTextArea l_text = new JTextArea( l_msg ) ;
+ l_text.setEnabled( false ) ;
+ JScrollPane l_comp = new JScrollPane( l_text,
+ JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
+ JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED ) ;
+ l_comp.getViewport().setPreferredSize(
+ new Dimension( 640, 240 ) ) ;
+ JOptionPane.showMessageDialog( null , l_comp,
+ "Failed to Create New Role: " + l_roleName,
+ JOptionPane.ERROR_MESSAGE ) ;
+ return ;
+ }
+
+ BeanTreeNode l_roleNode = new BeanTreeNode( l_role,
+ m_manager.getContainmentModel() ) ;
+ m_manager.getTreeModel().insertNodeInto( l_roleNode, l_roles, 0 ) ;
+ }
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuHandler#getCommand()
+ */
+ public String getCommand()
+ {
+ return ACTION_COMMAND ;
+ }
+}
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/CreateUserHandler.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/CreateUserHandler.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,127 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.actions ;
+
+
+import java.awt.Dimension ;
+import java.awt.event.ActionEvent ;
+
+import javax.swing.JTextArea ;
+import javax.swing.JOptionPane ;
+import javax.swing.JScrollPane ;
+
+import org.apache.commons.lang.exception.ExceptionUtils ;
+
+import org.apache.rms.User ;
+import org.apache.rms.RmsException ;
+import org.apache.rms.spi.MutableRms ;
+import org.apache.rms.ui.ActionMenuManager ;
+import org.apache.rms.ui.navtree.BeanTreeNode ;
+import org.apache.rms.ui.navtree.ContainerTreeNode ;
+
+
+/**
+ * Handler for 'CreateUser' ActionEvent commands.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class CreateUserHandler extends BaseMenuItemHandler
+{
+ public static final String ACTION_COMMAND = "CreateUser" ;
+ private final ActionMenuManager m_manager ;
+
+
+ /**
+ * Creates a 'CreateUser' action command handler.
+ *
+ * @param a_manager the handler for the command.
+ */
+ public CreateUserHandler( ActionMenuManager a_manager )
+ {
+ m_manager = a_manager ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see java.awt.event.ActionListener#actionPerformed(
+ * java.awt.event.ActionEvent)
+ */
+ public void actionPerformed( ActionEvent e )
+ {
+ if ( e.getActionCommand().equals( ACTION_COMMAND ) )
+ {
+ BeanTreeNode l_btn = m_manager.getLastBean() ;
+ ContainerTreeNode l_users = l_btn.getContainerChild( "Users" ) ;
+ MutableRms l_rms = ( MutableRms ) l_btn.getUserObject() ;
+
+
+ String l_userName = JOptionPane.showInputDialog(
+ m_manager.getMainFrame(), "What's the user's name?",
+ "Create New User", JOptionPane.QUESTION_MESSAGE ) ;
+
+ if ( l_userName == null )
+ {
+ return ;
+ }
+ else if ( l_userName.trim().equals( "" ) )
+ {
+ JOptionPane.showMessageDialog( m_manager.getMainFrame(),
+ "A valid name is required to create a new user.",
+ "Valid Name Required!", JOptionPane.ERROR_MESSAGE ) ;
+ return ;
+ }
+
+ l_userName = l_userName.trim() ;
+ User l_user = null ;
+ try
+ {
+ l_user = l_rms.createUser( l_userName ) ;
+ }
+ catch ( RmsException ex )
+ {
+ String l_msg = "We failed to create the new user " + l_userName
+ + " for the following reasons: "
+ + ExceptionUtils.getFullStackTrace( ex ) ;
+ JTextArea l_text = new JTextArea( l_msg ) ;
+ l_text.setEnabled( false ) ;
+ JScrollPane l_comp = new JScrollPane( l_text,
+ JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
+ JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED ) ;
+ l_comp.getViewport().setPreferredSize(
+ new Dimension( 640, 240 ) ) ;
+ JOptionPane.showMessageDialog( null , l_comp,
+ "Failed to Create New User: " + l_userName,
+ JOptionPane.ERROR_MESSAGE ) ;
+ return ;
+ }
+
+ BeanTreeNode l_userNode = new BeanTreeNode( l_user,
+ m_manager.getContainmentModel() ) ;
+ m_manager.getTreeModel().insertNodeInto( l_userNode, l_users, 0 ) ;
+ }
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuHandler#getCommand()
+ */
+ public String getCommand()
+ {
+ return ACTION_COMMAND ;
+ }
+}
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/DeleteApplicationHandler.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/DeleteApplicationHandler.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,170 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.actions ;
+
+
+import java.awt.Dimension ;
+import java.awt.event.ActionEvent ;
+
+import java.util.Iterator ;
+import java.util.ArrayList ;
+
+import javax.swing.JTextArea ;
+import javax.swing.JOptionPane ;
+import javax.swing.JScrollPane ;
+import javax.swing.tree.DefaultTreeModel ;
+
+import org.apache.commons.lang.WordUtils ;
+import org.apache.commons.lang.exception.ExceptionUtils ;
+
+import org.apache.rms.Rms ;
+import org.apache.rms.User ;
+import org.apache.rms.Application ;
+import org.apache.rms.RmsException ;
+import org.apache.rms.spi.MutableRms ;
+
+import org.apache.rms.ui.ActionMenuManager ;
+import org.apache.rms.ui.navtree.BeanTreeNode ;
+
+
+/**
+ * Handler for 'DeleteApplication' action commands.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class DeleteApplicationHandler extends BaseMenuItemHandler
+{
+ public static final String ACTION_COMMAND = "DeleteApplication" ;
+ private final ActionMenuManager m_manager ;
+
+
+ /**
+ * Creates a handler for 'DeleteApplication' action commands.
+ */
+ public DeleteApplicationHandler( ActionMenuManager a_manager )
+ {
+ m_manager = a_manager ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see java.awt.event.ActionListener#actionPerformed(
+ * java.awt.event.ActionEvent)
+ */
+ public void actionPerformed( ActionEvent e )
+ {
+ if ( e.getActionCommand().equals( ACTION_COMMAND ) )
+ {
+ DefaultTreeModel l_model = m_manager.getTreeModel() ;
+ BeanTreeNode l_appNode = m_manager.getLastBean() ;
+ Application l_app =
+ ( Application ) l_appNode.getUserObject() ;
+
+ // Checking for roles with a permission
+ Iterator l_list = l_app.getRoles() ;
+ ArrayList l_rolesForApp = new ArrayList() ;
+ while( l_list.hasNext() )
+ {
+ l_rolesForApp.add( l_list.next() ) ;
+ }
+
+ l_list = l_app.getPermissions() ;
+ ArrayList l_permissionsForApp = new ArrayList() ;
+ while( l_list.hasNext() )
+ {
+ l_rolesForApp.add( l_list.next() ) ;
+ }
+
+ // Checking for user's who have profiles for the application
+ l_list = null ;
+ try
+ {
+ l_list = Rms.getInstance().getUsers( l_app.getName() ) ;
+ }
+ catch( Exception ex )
+ {
+ ex.printStackTrace() ;
+ }
+
+ ArrayList l_profilesForApp = new ArrayList() ;
+ while( l_list.hasNext() )
+ {
+ User l_user = ( User ) l_list.next() ;
+ l_profilesForApp.add( l_user.getName() ) ;
+ }
+
+
+ if ( l_rolesForApp.size() > 0
+ || l_profilesForApp.size() > 0
+ || l_permissionsForApp.size() > 0 )
+ {
+ String l_msg =
+ "The application " + l_app.getName() + " is referenced by "
+ + "several roles:\n" + l_rolesForApp + "\n\n"
+ + "Several users have profiles for application "
+ + l_app.getName() + ":\n" + l_profilesForApp ;
+ JTextArea l_text = new JTextArea( l_msg ) ;
+ l_text.setEnabled( false ) ;
+ JScrollPane l_comp = new JScrollPane( l_text,
+ JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
+ JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED ) ;
+ l_comp.getViewport().setPreferredSize(
+ new Dimension( 640, 240 ) ) ;
+ JOptionPane.showMessageDialog( null , l_comp,
+ "Application in use!",
+ JOptionPane.ERROR_MESSAGE ) ;
+ return ;
+ }
+
+
+ try
+ {
+ MutableRms l_rms = ( MutableRms ) Rms.getInstance() ;
+ l_rms.deleteApplication( l_app.getName() ) ;
+ l_model.removeNodeFromParent( l_appNode ) ;
+ }
+ catch ( RmsException ex )
+ {
+ String l_msg = "Failed to delete application " + l_app.getName()
+ + " due to the following reason:"
+ + ExceptionUtils.getFullStackTrace( ex ) ;
+ l_msg = WordUtils.wrap( l_msg, 80 ) ;
+
+ JTextArea l_text = new JTextArea( l_msg ) ;
+ l_text.setEnabled( false ) ;
+ JScrollPane l_comp = new JScrollPane( l_text,
+ JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
+ JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED ) ;
+ l_comp.getViewport().setPreferredSize( new
+ Dimension( 640, 240 ) ) ;
+ JOptionPane.showMessageDialog( null , l_comp,
+ "Failed to Delete Application!",
+ JOptionPane.ERROR_MESSAGE ) ;
+ }
+ }
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuHandler#getCommand()
+ */
+ public String getCommand()
+ {
+ return ACTION_COMMAND ;
+ }
+}
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/DeletePermissionFromApplicationHandler.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/DeletePermissionFromApplicationHandler.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,179 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.actions ;
+
+
+import java.awt.Dimension ;
+import java.awt.event.ActionEvent ;
+
+import java.util.Iterator ;
+import java.util.ArrayList ;
+
+import javax.swing.JTextArea ;
+import javax.swing.JOptionPane ;
+import javax.swing.JScrollPane ;
+import javax.swing.tree.DefaultTreeModel ;
+
+import org.apache.commons.lang.WordUtils ;
+import org.apache.commons.lang.exception.ExceptionUtils ;
+
+import org.apache.rms.Rms ;
+import org.apache.rms.Role ;
+import org.apache.rms.User ;
+import org.apache.rms.Profile ;
+import org.apache.rms.RmsException ;
+import org.apache.rms.BitPermission ;
+import org.apache.rms.spi.MutableApplication ;
+
+import org.apache.rms.ui.ActionMenuManager ;
+import org.apache.rms.ui.navtree.BeanTreeNode ;
+
+
+/**
+ * Handler for 'DeletePermissionFromApplication' action commands.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class DeletePermissionFromApplicationHandler extends BaseMenuItemHandler
+{
+ public static final String ACTION_COMMAND =
+ "DeletePermissionFromApplication" ;
+ private final ActionMenuManager m_manager ;
+
+
+ /**
+ * Creates a handler for 'AddPermissionToApplication' action commands.
+ */
+ public DeletePermissionFromApplicationHandler( ActionMenuManager a_manager )
+ {
+ m_manager = a_manager ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see java.awt.event.ActionListener#actionPerformed(
+ * java.awt.event.ActionEvent)
+ */
+ public void actionPerformed( ActionEvent e )
+ {
+ if ( e.getActionCommand().equals( ACTION_COMMAND ) )
+ {
+ DefaultTreeModel l_model = m_manager.getTreeModel() ;
+ BeanTreeNode l_permNode = m_manager.getLastBean() ;
+ BitPermission l_perm =
+ ( BitPermission ) l_permNode.getUserObject() ;
+ BeanTreeNode l_appNode =
+ ( BeanTreeNode ) l_permNode.getParent().getParent() ;
+ MutableApplication l_app =
+ ( MutableApplication ) l_appNode.getUserObject() ;
+
+ // Checking for roles with a permission
+ Iterator l_roles = l_app.getRoles() ;
+ ArrayList l_rolesWithPerm = new ArrayList() ;
+ while( l_roles.hasNext() )
+ {
+ Role l_role = ( Role ) l_roles.next() ;
+ if ( l_role.hasPermission( l_perm ) )
+ {
+ l_rolesWithPerm.add( l_role.getName() ) ;
+ }
+ }
+
+ // Checking for profiles with a permission
+ Iterator l_users = null ;
+ try
+ {
+ l_users = Rms.getInstance().getUsers( l_perm.getApplication() );
+ }
+ catch( Exception ex )
+ {
+ ex.printStackTrace() ;
+ }
+ ArrayList l_profilesWithPerm = new ArrayList() ;
+ while( l_users.hasNext() )
+ {
+ User l_user = ( User ) l_users.next() ;
+ Profile l_profile =
+ l_user.getProfile( l_perm.getApplication() ) ;
+ boolean dependsOnPerm = l_profile.hasDenial( l_perm ) ||
+ l_profile.hasGrant( l_perm ) ||
+ l_profile.hasPermission( l_perm ) ;
+ if ( dependsOnPerm )
+ {
+ l_profilesWithPerm.add( l_profile.getUserName() ) ;
+ }
+ }
+
+
+ if ( l_rolesWithPerm.size() > 0 || l_profilesWithPerm.size() > 0 )
+ {
+ String l_msg =
+ "The following roles use permission "
+ + l_perm.getName() + ":\n" + l_rolesWithPerm
+ + "\nThe following user profiles reference "
+ + l_perm.getName() + " as well:\n" + l_profilesWithPerm ;
+ JTextArea l_text = new JTextArea( l_msg ) ;
+ l_text.setEnabled( false ) ;
+ JScrollPane l_comp = new JScrollPane( l_text,
+ JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
+ JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED ) ;
+ l_comp.getViewport().setPreferredSize(
+ new Dimension( 640, 240 ) ) ;
+ JOptionPane.showMessageDialog( null , l_comp,
+ "Permission in use!",
+ JOptionPane.ERROR_MESSAGE ) ;
+ return ;
+ }
+
+
+ try
+ {
+ l_app.deletePermission( l_perm ) ;
+ l_model.removeNodeFromParent( l_permNode ) ;
+ }
+ catch ( RmsException ex )
+ {
+ String l_msg = "Failed to delete permission " + l_perm.getName()
+ + " from application " + l_app.getName()
+ + " due to the following reason:"
+ + ExceptionUtils.getFullStackTrace( ex ) ;
+ l_msg = WordUtils.wrap( l_msg, 80 ) ;
+
+ JTextArea l_text = new JTextArea( l_msg ) ;
+ l_text.setEnabled( false ) ;
+ JScrollPane l_comp = new JScrollPane( l_text,
+ JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
+ JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED ) ;
+ l_comp.getViewport().setPreferredSize( new
+ Dimension( 640, 240 ) ) ;
+ JOptionPane.showMessageDialog( null , l_comp,
+ "Failed to delete permission!",
+ JOptionPane.ERROR_MESSAGE ) ;
+ }
+ }
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuHandler#getCommand()
+ */
+ public String getCommand()
+ {
+ return ACTION_COMMAND ;
+ }
+}
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/DeleteProfileFromUserHandler.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/DeleteProfileFromUserHandler.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,148 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.actions ;
+
+
+import java.awt.Dimension ;
+import java.awt.event.ActionEvent ;
+
+import java.util.Iterator ;
+import java.util.ArrayList ;
+
+import javax.swing.JTextArea ;
+import javax.swing.JOptionPane ;
+import javax.swing.JScrollPane ;
+import javax.swing.tree.DefaultTreeModel ;
+
+import org.apache.commons.lang.WordUtils ;
+import org.apache.commons.lang.exception.ExceptionUtils ;
+
+import org.apache.rms.Role ;
+import org.apache.rms.RmsException ;
+import org.apache.rms.spi.MutableUser ;
+import org.apache.rms.spi.MutableProfile ;
+
+import org.apache.rms.ui.ActionMenuManager ;
+import org.apache.rms.ui.navtree.BeanTreeNode ;
+
+
+/**
+ * Handler for 'DeleteProfileFromUser' action commands.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class DeleteProfileFromUserHandler extends BaseMenuItemHandler
+{
+ public static final String ACTION_COMMAND = "DeleteProfileFromUser" ;
+ private final ActionMenuManager m_manager ;
+
+
+ /**
+ * Creates a handler for 'DeleteProfileFromUser' action commands.
+ */
+ public DeleteProfileFromUserHandler( ActionMenuManager a_manager )
+ {
+ m_manager = a_manager ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see java.awt.event.ActionListener#actionPerformed(
+ * java.awt.event.ActionEvent)
+ */
+ public void actionPerformed( ActionEvent e )
+ {
+ if ( e.getActionCommand().equals( ACTION_COMMAND ) )
+ {
+ DefaultTreeModel l_model = m_manager.getTreeModel() ;
+ BeanTreeNode l_profileNode = m_manager.getLastBean() ;
+ MutableProfile l_profile =
+ ( MutableProfile ) l_profileNode.getUserObject() ;
+ BeanTreeNode l_userNode =
+ ( BeanTreeNode ) l_profileNode.getParent().getParent() ;
+ MutableUser l_user =
+ ( MutableUser ) l_userNode.getUserObject() ;
+
+ // Checking for roles associated with the profile
+ Iterator l_list = l_profile.getRoles() ;
+ ArrayList l_rolesForProfile = new ArrayList() ;
+ while( l_list.hasNext() )
+ {
+ Role l_role = ( Role ) l_list.next() ;
+ l_rolesForProfile.add( l_role.getName() ) ;
+ }
+
+ if ( l_rolesForProfile.size() > 0 )
+ {
+ String l_msg =
+ "The following roles have been added to user "
+ + l_user.getName() + "'s profile for application "
+ + l_profile.getApplicationName() + ":\n"
+ + l_rolesForProfile
+ + "\n\nThe must be removed before deletion can occur!";
+ JTextArea l_text = new JTextArea( l_msg ) ;
+ l_text.setEnabled( false ) ;
+ JScrollPane l_comp = new JScrollPane( l_text,
+ JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
+ JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED ) ;
+ l_comp.getViewport().setPreferredSize(
+ new Dimension( 640, 240 ) ) ;
+ JOptionPane.showMessageDialog( null , l_comp,
+ "Profile Associated With Roles!",
+ JOptionPane.ERROR_MESSAGE ) ;
+ return ;
+ }
+
+
+ try
+ {
+ l_user.deleteProfile( l_profile ) ;
+ l_model.removeNodeFromParent( l_profileNode ) ;
+ }
+ catch ( RmsException ex )
+ {
+ String l_msg = "Failed to delete user " + l_user.getName()
+ + "'s profile for application "
+ + l_profile.getApplicationName()
+ + " due to the following reason:"
+ + ExceptionUtils.getFullStackTrace( ex ) ;
+ l_msg = WordUtils.wrap( l_msg, 80 ) ;
+
+ JTextArea l_text = new JTextArea( l_msg ) ;
+ l_text.setEnabled( false ) ;
+ JScrollPane l_comp = new JScrollPane( l_text,
+ JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
+ JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED ) ;
+ l_comp.getViewport().setPreferredSize( new
+ Dimension( 640, 240 ) ) ;
+ JOptionPane.showMessageDialog( null , l_comp,
+ "Failed to Delete Profile!",
+ JOptionPane.ERROR_MESSAGE ) ;
+ }
+ }
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuHandler#getCommand()
+ */
+ public String getCommand()
+ {
+ return ACTION_COMMAND ;
+ }
+}
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/DeleteRoleFromApplicationHandler.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/DeleteRoleFromApplicationHandler.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,154 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.actions ;
+
+
+import java.awt.Dimension ;
+import java.awt.event.ActionEvent ;
+
+import java.util.Iterator ;
+import java.util.ArrayList ;
+
+import javax.swing.JTextArea ;
+import javax.swing.JOptionPane ;
+import javax.swing.JScrollPane ;
+import javax.swing.tree.DefaultTreeModel ;
+
+import org.apache.commons.lang.WordUtils ;
+import org.apache.commons.lang.exception.ExceptionUtils ;
+
+import org.apache.rms.Rms ;
+import org.apache.rms.User ;
+import org.apache.rms.RmsException ;
+import org.apache.rms.spi.MutableRole ;
+import org.apache.rms.spi.MutableApplication ;
+
+import org.apache.rms.ui.ActionMenuManager ;
+import org.apache.rms.ui.navtree.BeanTreeNode ;
+
+
+/**
+ * Handler for 'DeleteRoleFromApplication' action commands.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class DeleteRoleFromApplicationHandler extends BaseMenuItemHandler
+{
+ public static final String ACTION_COMMAND = "DeleteRoleFromApplication" ;
+ private final ActionMenuManager m_manager ;
+
+
+ /**
+ * Creates a handler for 'DeleteRoleFromApplication' action commands.
+ */
+ public DeleteRoleFromApplicationHandler( ActionMenuManager a_manager )
+ {
+ m_manager = a_manager ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see java.awt.event.ActionListener#actionPerformed(
+ * java.awt.event.ActionEvent)
+ */
+ public void actionPerformed( ActionEvent e )
+ {
+ if ( e.getActionCommand().equals( ACTION_COMMAND ) )
+ {
+ DefaultTreeModel l_model = m_manager.getTreeModel() ;
+ BeanTreeNode l_roleNode = m_manager.getLastBean() ;
+ MutableRole l_role = ( MutableRole ) l_roleNode.getUserObject() ;
+ BeanTreeNode l_appNode =
+ ( BeanTreeNode ) l_roleNode.getParent().getParent() ;
+ MutableApplication l_app =
+ ( MutableApplication ) l_appNode.getUserObject() ;
+
+ // Checking for users in the role
+ Iterator l_list = null ;
+ ArrayList l_usersInRole = new ArrayList() ;
+ try
+ {
+ l_list = Rms.getInstance().getUsers(
+ l_app.getName(), l_role.getName() ) ;
+ }
+ catch( RmsException ex )
+ {
+ ex.printStackTrace() ;
+ }
+
+ while( l_list.hasNext() )
+ {
+ User l_user = ( User ) l_list.next() ;
+ l_usersInRole.add( l_user.getName() ) ;
+ }
+
+ if ( l_usersInRole.size() > 0 )
+ {
+ String l_msg =
+ "The following users are in the role "
+ + l_role.getName() + ":\n" + l_usersInRole ;
+ JTextArea l_text = new JTextArea( l_msg ) ;
+ l_text.setEnabled( false ) ;
+ JScrollPane l_comp = new JScrollPane( l_text,
+ JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
+ JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED ) ;
+ l_comp.getViewport().setPreferredSize(
+ new Dimension( 640, 240 ) ) ;
+ JOptionPane.showMessageDialog( null , l_comp,
+ "Role Referenced by Users!",
+ JOptionPane.ERROR_MESSAGE ) ;
+ return ;
+ }
+
+
+ try
+ {
+ l_app.deleteRole( l_role ) ;
+ l_model.removeNodeFromParent( l_roleNode ) ;
+ }
+ catch ( RmsException ex )
+ {
+ String l_msg = "Failed to delete role " + l_role.getName()
+ + " from application " + l_app.getName()
+ + " due to the following reason:"
+ + ExceptionUtils.getFullStackTrace( ex ) ;
+ l_msg = WordUtils.wrap( l_msg, 80 ) ;
+
+ JTextArea l_text = new JTextArea( l_msg ) ;
+ l_text.setEnabled( false ) ;
+ JScrollPane l_comp = new JScrollPane( l_text,
+ JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
+ JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED ) ;
+ l_comp.getViewport().setPreferredSize( new
+ Dimension( 640, 240 ) ) ;
+ JOptionPane.showMessageDialog( null , l_comp,
+ "Failed to Delete Role!",
+ JOptionPane.ERROR_MESSAGE ) ;
+ }
+ }
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuHandler#getCommand()
+ */
+ public String getCommand()
+ {
+ return ACTION_COMMAND ;
+ }
+}
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/DeleteUserHandler.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/DeleteUserHandler.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,141 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.actions ;
+
+
+import java.awt.Dimension ;
+import java.awt.event.ActionEvent ;
+
+import java.util.Iterator ;
+import java.util.ArrayList ;
+
+import javax.swing.JTextArea ;
+import javax.swing.JOptionPane ;
+import javax.swing.JScrollPane ;
+import javax.swing.tree.DefaultTreeModel ;
+
+import org.apache.commons.lang.WordUtils ;
+import org.apache.commons.lang.exception.ExceptionUtils ;
+
+import org.apache.rms.Rms ;
+import org.apache.rms.User ;
+import org.apache.rms.Profile ;
+import org.apache.rms.RmsException ;
+import org.apache.rms.spi.MutableRms ;
+
+import org.apache.rms.ui.ActionMenuManager ;
+import org.apache.rms.ui.navtree.BeanTreeNode ;
+
+
+/**
+ * Handler for 'DeleteUser' action commands.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class DeleteUserHandler extends BaseMenuItemHandler
+{
+ public static final String ACTION_COMMAND = "DeleteUser" ;
+ private final ActionMenuManager m_manager ;
+
+
+ /**
+ * Creates a handler for 'DeleteUser' action commands.
+ */
+ public DeleteUserHandler( ActionMenuManager a_manager )
+ {
+ m_manager = a_manager ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see java.awt.event.ActionListener#actionPerformed(
+ * java.awt.event.ActionEvent)
+ */
+ public void actionPerformed( ActionEvent e )
+ {
+ if ( e.getActionCommand().equals( ACTION_COMMAND ) )
+ {
+ DefaultTreeModel l_model = m_manager.getTreeModel() ;
+ BeanTreeNode l_userNode = m_manager.getLastBean() ;
+ User l_user = ( User ) l_userNode.getUserObject() ;
+
+ // Checking for profiles for this user
+ Iterator l_list = l_user.getProfiles() ;
+ ArrayList l_userProfiles = new ArrayList() ;
+ while( l_list.hasNext() )
+ {
+ Profile l_profile = ( Profile ) l_list.next() ;
+ l_userProfiles.add( l_profile ) ;
+ }
+
+ if ( l_userProfiles.size() > 0 )
+ {
+ String l_msg =
+ "The user " + l_user.getName()
+ + " has the following profiles that depend on it:\n"
+ + l_userProfiles ;
+ JTextArea l_text = new JTextArea( l_msg ) ;
+ l_text.setEnabled( false ) ;
+ JScrollPane l_comp = new JScrollPane( l_text,
+ JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
+ JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED ) ;
+ l_comp.getViewport().setPreferredSize(
+ new Dimension( 640, 240 ) ) ;
+ JOptionPane.showMessageDialog( null , l_comp,
+ "User is Referenced by Profiles!",
+ JOptionPane.ERROR_MESSAGE ) ;
+ return ;
+ }
+
+
+ try
+ {
+ MutableRms l_rms = ( MutableRms ) Rms.getInstance() ;
+ l_rms.deleteUser( l_user.getName() ) ;
+ l_model.removeNodeFromParent( l_userNode ) ;
+ }
+ catch ( RmsException ex )
+ {
+ String l_msg = "Failed to delete user " + l_user.getName()
+ + " due to the following reason:"
+ + ExceptionUtils.getFullStackTrace( ex ) ;
+ l_msg = WordUtils.wrap( l_msg, 80 ) ;
+
+ JTextArea l_text = new JTextArea( l_msg ) ;
+ l_text.setEnabled( false ) ;
+ JScrollPane l_comp = new JScrollPane( l_text,
+ JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
+ JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED ) ;
+ l_comp.getViewport().setPreferredSize( new
+ Dimension( 640, 240 ) ) ;
+ JOptionPane.showMessageDialog( null , l_comp,
+ "Failed to Delete User!",
+ JOptionPane.ERROR_MESSAGE ) ;
+ }
+ }
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuHandler#getCommand()
+ */
+ public String getCommand()
+ {
+ return ACTION_COMMAND ;
+ }
+}
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/DenyPermissionForProfileHandler.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/DenyPermissionForProfileHandler.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,299 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.actions ;
+
+
+import java.util.Iterator ;
+import java.util.ArrayList ;
+
+import java.awt.Dimension ;
+import java.awt.event.ActionEvent ;
+
+import javax.swing.JMenu ;
+import javax.swing.JMenuItem ;
+import javax.swing.JTextArea ;
+import javax.swing.JOptionPane ;
+import javax.swing.JScrollPane ;
+import javax.swing.tree.TreePath ;
+
+import org.apache.commons.lang.StringUtils ;
+import org.apache.commons.lang.exception.ExceptionUtils ;
+
+import org.apache.rms.ui.Images ;
+import org.apache.rms.ui.ocmm.Action ;
+import org.apache.rms.RmsException ;
+import org.apache.rms.BitPermission ;
+import org.apache.rms.ui.ActionMenuManager ;
+import org.apache.rms.spi.MutableProfile ;
+import org.apache.rms.ui.navtree.BeanTreeNode ;
+import org.apache.rms.spi.MutableApplication ;
+import org.apache.rms.ui.navtree.ContainerTreeNode ;
+import org.apache.rms.ui.navtree.ContainmentTreeNode ;
+
+
+/**
+ * Handler for 'DenyPermissionForProfile' ActionEvent commands which occur
+ * when a profile or the 'Denials' container under a profile is selected and
+ * a grant menu item is pressed.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class DenyPermissionForProfileHandler implements SubMenuHandler
+{
+ public static final String ACTION_COMMAND = "DenyPermissionForProfile" ;
+ private final ActionMenuManager m_manager ;
+
+
+ /**
+ * Creates a 'DenyPermissionForProfile' action command handler.
+ *
+ * @param a_manager the handler for the command.
+ */
+ public DenyPermissionForProfileHandler( ActionMenuManager a_manager )
+ {
+ m_manager = a_manager ;
+ }
+
+
+ /**
+ * Gets the Profile node associated with the selection path.
+ *
+ * @param a_path the selection path
+ * @return the profile node
+ */
+ private BeanTreeNode getProfileNode( TreePath a_path )
+ {
+ /*
+ * Last selected is either the 'Grants' container or the profile bean.
+ */
+ ContainmentTreeNode l_last =
+ ( ContainmentTreeNode ) a_path.getLastPathComponent() ;
+
+ if ( l_last.isContainerNode() )
+ {
+ return ( BeanTreeNode ) l_last.getParent() ;
+ }
+ else
+ {
+ return ( BeanTreeNode ) l_last ;
+ }
+ }
+
+
+ /**
+ * Gets the Profile associated with the selection path.
+ *
+ * @param a_path the selection path
+ * @return the mutable application under which this path is associated
+ */
+ private MutableProfile getProfile( TreePath a_path )
+ {
+ MutableProfile l_profile = null ;
+
+ /*
+ * Last selected is either the 'Grants' container or the profile bean.
+ */
+ ContainmentTreeNode l_last =
+ ( ContainmentTreeNode ) a_path.getLastPathComponent() ;
+
+ if ( l_last.isContainerNode() )
+ {
+ l_profile = ( MutableProfile ) ( ( BeanTreeNode ) l_last
+ .getParent() ).getUserObject() ;
+ }
+ else
+ {
+ l_profile = ( MutableProfile ) ( ( BeanTreeNode )
+ l_last ).getUserObject() ;
+ }
+
+ return l_profile ;
+ }
+
+
+ private MutableApplication getApplication( String appName )
+ {
+ MutableApplication l_app = null ;
+ BeanTreeNode l_root = ( BeanTreeNode ) m_manager
+ .getSelectedPath().getPath()[0] ;
+ ContainerTreeNode l_apps = l_root.getContainerChild( "Applications" ) ;
+
+ for ( int ii = 0; ii < l_apps.getChildCount(); ii++ )
+ {
+ BeanTreeNode l_child = ( BeanTreeNode ) l_apps.getChildAt( ii ) ;
+ l_app = ( MutableApplication ) l_child.getUserObject() ;
+
+ if ( ( l_app ).getName().equals( appName ) )
+ {
+ return l_app ;
+ }
+ }
+
+ return null ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see java.awt.event.ActionListener#actionPerformed(
+ * java.awt.event.ActionEvent)
+ */
+ public void actionPerformed( ActionEvent e )
+ {
+ String l_cmd = e.getActionCommand() ;
+
+ if ( l_cmd.startsWith( ACTION_COMMAND ) )
+ {
+ TreePath l_path = m_manager.getSelectedPath() ;
+ String l_permName = StringUtils.split( l_cmd, '|' )[1] ;
+ MutableProfile l_profile = getProfile( l_path ) ;
+ ContainerTreeNode l_grants = null ;
+
+ if ( l_path.getLastPathComponent() instanceof BeanTreeNode )
+ {
+ // we selected a role node so we need to get the child grants
+ l_grants = ( ( BeanTreeNode ) l_path.getLastPathComponent() )
+ .getContainerChild( "Denials" ) ;
+ }
+ else
+ {
+ // we selected the grants node so we just get the last container
+ l_grants = m_manager.getLastContainer() ;
+ }
+
+ MutableApplication l_app = getApplication(
+ l_profile.getApplicationName() ) ;
+ BitPermission l_perm = l_app.getPermission( l_permName ) ;
+ BeanTreeNode l_permNode = new BeanTreeNode( l_perm,
+ m_manager.getContainmentModel() ) ;
+
+ try
+ {
+ l_profile.deny( l_permName ) ;
+ }
+ catch( RmsException ex )
+ {
+ String l_msg = "We failed to deny the permission "
+ + l_permName + " for user " + l_profile.getUserName()
+ + "'s profile for application "
+ + l_profile.getApplicationName()
+ + " for the following reasons: "
+ + ExceptionUtils.getFullStackTrace( ex ) ;
+ JTextArea l_text = new JTextArea( l_msg ) ;
+ l_text.setEnabled( false ) ;
+ JScrollPane l_comp = new JScrollPane( l_text,
+ JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
+ JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED ) ;
+ l_comp.getViewport().setPreferredSize(
+ new Dimension( 640, 240 ) ) ;
+ JOptionPane.showMessageDialog( null , l_comp,
+ "Failed to Deny Permission to Profile",
+ JOptionPane.ERROR_MESSAGE ) ;
+ return ;
+ }
+
+ m_manager.getTreeModel().insertNodeInto( l_permNode, l_grants, 0 ) ;
+
+ BeanTreeNode l_profileNode = getProfileNode( l_path ) ;
+ l_profileNode.refresh() ;
+ m_manager.getTreeModel().nodeStructureChanged( l_profileNode ) ;
+
+ m_manager.buildMenus() ;
+ }
+ }
+
+
+ /*
+ * This method is invoked when the Grants of a role is selected or a role
+ * itself is selected.
+ *
+ * (non-Javadoc)
+ * @see org.apache.rms.ui.actions.SubMenuHandler#getSubMenu(javax.swing.tree.TreePath,
+ * org.apache.rms.ui.ocmm.Action)
+ */
+ public JMenuItem getSubMenu( TreePath a_path, Action a_action )
+ {
+ JMenu l_menu = new JMenu( a_action.getName() ) ;
+ MutableProfile l_profile = getProfile( a_path ) ;
+ MutableApplication l_app = getApplication(
+ l_profile.getApplicationName() ) ;
+
+ l_menu.setToolTipText( "Deny a permission for user "
+ + l_profile.getUserName() + "'s profile for application "
+ + l_profile.getApplicationName() ) ;
+ l_menu.setIcon( Images.load( a_action.getIcon() ) ) ;
+ ArrayList l_items = new ArrayList() ;
+ Iterator l_list = l_app.getPermissions() ;
+
+ while ( l_list.hasNext() )
+ {
+ BitPermission l_perm = ( BitPermission ) l_list.next() ;
+ l_items.add( l_perm.getName() ) ;
+ }
+
+ l_list = l_profile.getDenials() ;
+ while ( l_list.hasNext() )
+ {
+ BitPermission l_perm = ( BitPermission ) l_list.next() ;
+ l_items.remove( l_perm.getName() ) ;
+ }
+
+ for ( int ii = 0; ii < l_items.size(); ii++ )
+ {
+ String l_item = ( String ) l_items.get( ii ) ;
+ JMenuItem l_menuItem = new JMenuItem( l_item ) ;
+ l_menu.add( l_menuItem ) ;
+
+ String l_cmd = a_action.getCommand() + "|" + l_item ;
+ l_menuItem.setActionCommand( l_cmd ) ;
+ l_menuItem.setToolTipText( "Deny permission " + l_item
+ + " to user " + l_profile.getUserName()
+ + "'s profile for application "
+ + l_profile.getApplicationName() ) ;
+ l_menuItem.addActionListener( this ) ;
+ }
+
+ return l_menu ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuHandler#getCommand()
+ */
+ public String getCommand()
+ {
+ return ACTION_COMMAND ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuHandler#handles(org.apache.rms.ui.ocmm.Action)
+ */
+ public boolean handles( Action action )
+ {
+ return action.getCommand().equals( ACTION_COMMAND ) ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuHandler#isForItem()
+ */
+ public boolean isForItem()
+ {
+ return false ;
+ }
+}
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/GrantPermissionToProfileHandler.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/GrantPermissionToProfileHandler.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,310 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.actions ;
+
+
+import java.util.Iterator ;
+import java.util.ArrayList ;
+
+import java.awt.Dimension ;
+import java.awt.event.ActionEvent ;
+
+import javax.swing.JMenu ;
+import javax.swing.JMenuItem ;
+import javax.swing.JTextArea ;
+import javax.swing.JOptionPane ;
+import javax.swing.JScrollPane ;
+import javax.swing.tree.TreePath ;
+
+import org.apache.commons.lang.StringUtils ;
+import org.apache.commons.lang.exception.ExceptionUtils ;
+
+import org.apache.rms.ui.Images ;
+import org.apache.rms.ui.ocmm.Action ;
+import org.apache.rms.RmsException ;
+import org.apache.rms.BitPermission ;
+import org.apache.rms.spi.MutableBitPermission;
+import org.apache.rms.ui.ActionMenuManager ;
+import org.apache.rms.spi.MutableProfile ;
+import org.apache.rms.ui.navtree.BeanTreeNode ;
+import org.apache.rms.spi.MutableApplication ;
+import org.apache.rms.ui.navtree.ContainerTreeNode ;
+import org.apache.rms.ui.navtree.ContainmentTreeNode ;
+
+
+/**
+ * Handler for 'GrantPermissionToProfile' ActionEvent commands which occur
+ * when a profile or the 'Grants' container under a profile is selected and
+ * a grant menu item is pressed.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class GrantPermissionToProfileHandler implements SubMenuHandler
+{
+ public static final String ACTION_COMMAND = "GrantPermissionToProfile" ;
+ private final ActionMenuManager m_manager ;
+
+
+ /**
+ * Creates a 'GrantPermissionToProfile' action command handler.
+ *
+ * @param a_manager the handler for the command.
+ */
+ public GrantPermissionToProfileHandler( ActionMenuManager a_manager )
+ {
+ m_manager = a_manager ;
+ }
+
+
+ /**
+ * Gets the Profile node associated with the selection path.
+ *
+ * @param a_path the selection path
+ * @return the profile node
+ */
+ private BeanTreeNode getProfileNode( TreePath a_path )
+ {
+ /*
+ * Last selected is either the 'Grants' container or the profile bean.
+ */
+ ContainmentTreeNode l_last =
+ ( ContainmentTreeNode ) a_path.getLastPathComponent() ;
+
+ if ( l_last.isContainerNode() )
+ {
+ return ( BeanTreeNode ) l_last.getParent() ;
+ }
+ else
+ {
+ return ( BeanTreeNode ) l_last ;
+ }
+ }
+
+
+ /**
+ * Gets the Profile associated with the selection path.
+ *
+ * @param a_path the selection path
+ * @return the mutable application under which this path is associated
+ */
+ private MutableProfile getProfile( TreePath a_path )
+ {
+ MutableProfile l_profile = null ;
+
+ /*
+ * Last selected is either the 'Grants' container or the profile bean.
+ */
+ ContainmentTreeNode l_last =
+ ( ContainmentTreeNode ) a_path.getLastPathComponent() ;
+
+ if ( l_last.isContainerNode() )
+ {
+ l_profile = ( MutableProfile ) ( ( BeanTreeNode ) l_last
+ .getParent() ).getUserObject() ;
+ }
+ else
+ {
+ l_profile = ( MutableProfile ) ( ( BeanTreeNode )
+ l_last ).getUserObject() ;
+ }
+
+ return l_profile ;
+ }
+
+
+ private MutableApplication getApplication( String appName )
+ {
+ MutableApplication l_app = null ;
+ BeanTreeNode l_root = ( BeanTreeNode ) m_manager
+ .getSelectedPath().getPath()[0] ;
+ ContainerTreeNode l_apps = l_root.getContainerChild( "Applications" ) ;
+
+ for ( int ii = 0; ii < l_apps.getChildCount(); ii++ )
+ {
+ BeanTreeNode l_child = ( BeanTreeNode ) l_apps.getChildAt( ii ) ;
+ l_app = ( MutableApplication ) l_child.getUserObject() ;
+
+ if ( ( l_app ).getName().equals( appName ) )
+ {
+ return l_app ;
+ }
+ }
+
+ return null ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see java.awt.event.ActionListener#actionPerformed(
+ * java.awt.event.ActionEvent)
+ */
+ public void actionPerformed( ActionEvent e )
+ {
+ String l_cmd = e.getActionCommand() ;
+
+ if ( l_cmd.startsWith( ACTION_COMMAND ) )
+ {
+ TreePath l_path = m_manager.getSelectedPath() ;
+ String l_permName = StringUtils.split( l_cmd, '|' )[1] ;
+ MutableProfile l_profile = getProfile( l_path ) ;
+ ContainerTreeNode l_grants = null ;
+
+ if ( l_path.getLastPathComponent() instanceof BeanTreeNode )
+ {
+ // we selected a role node so we need to get the child grants
+ l_grants = ( ( BeanTreeNode ) l_path.getLastPathComponent() )
+ .getContainerChild( "Grants" ) ;
+ }
+ else
+ {
+ // we selected the grants node so we just get the last container
+ l_grants = m_manager.getLastContainer() ;
+ }
+
+ MutableApplication l_app = getApplication(
+ l_profile.getApplicationName() ) ;
+ MutableBitPermission l_perm = ( MutableBitPermission )
+ l_app.getPermission( l_permName ) ;
+ BeanTreeNode l_permNode = new BeanTreeNode( l_perm,
+ m_manager.getContainmentModel() ) ;
+
+ try
+ {
+ l_profile.grant( l_perm ) ;
+ }
+ catch( RmsException ex )
+ {
+ String l_msg = "We failed to grant the permission "
+ + l_permName + " for user " + l_profile.getUserName()
+ + "'s profile for application "
+ + l_profile.getApplicationName()
+ + " for the following reasons: "
+ + ExceptionUtils.getFullStackTrace( ex ) ;
+ JTextArea l_text = new JTextArea( l_msg ) ;
+ l_text.setEnabled( false ) ;
+ JScrollPane l_comp = new JScrollPane( l_text,
+ JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
+ JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED ) ;
+ l_comp.getViewport().setPreferredSize(
+ new Dimension( 640, 240 ) ) ;
+ JOptionPane.showMessageDialog( null , l_comp,
+ "Failed to Grant Permission to Profile",
+ JOptionPane.ERROR_MESSAGE ) ;
+ return ;
+ }
+
+ m_manager.getTreeModel().insertNodeInto( l_permNode, l_grants, 0 ) ;
+
+ BeanTreeNode l_profileNode = getProfileNode( l_path ) ;
+ l_profileNode.refresh() ;
+ m_manager.getTreeModel().nodeStructureChanged( l_profileNode ) ;
+
+ m_manager.buildMenus() ;
+ }
+ }
+
+
+ /*
+ * This method is invoked when the Grants of a role is selected or a role
+ * itself is selected.
+ *
+ * (non-Javadoc)
+ * @see org.apache.rms.ui.actions.SubMenuHandler#getSubMenu(javax.swing.tree.TreePath,
+ * org.apache.rms.ui.ocmm.Action)
+ */
+ public JMenuItem getSubMenu( TreePath a_path, Action a_action )
+ {
+ JMenu l_menu = new JMenu( a_action.getName() ) ;
+ MutableProfile l_profile = getProfile( a_path ) ;
+ MutableApplication l_app = getApplication(
+ l_profile.getApplicationName() ) ;
+
+ l_menu.setIcon( Images.load( a_action.getIcon() ) ) ;
+ l_menu.setToolTipText( "Grant a permission to user "
+ + l_profile.getUserName() + "'s profile for application "
+ + l_profile.getApplicationName() ) ;
+
+ ArrayList l_items = new ArrayList() ;
+ Iterator l_list = l_app.getPermissions() ;
+
+ while ( l_list.hasNext() )
+ {
+ BitPermission l_perm = ( BitPermission ) l_list.next() ;
+ l_items.add( l_perm.getName() ) ;
+ }
+
+ l_list = l_profile.getPermissions() ;
+ while ( l_list.hasNext() )
+ {
+ BitPermission l_perm = ( BitPermission ) l_list.next() ;
+ l_items.remove( l_perm.getName() ) ;
+ }
+
+ l_list = l_profile.getGrants() ;
+ while ( l_list.hasNext() )
+ {
+ BitPermission l_perm = ( BitPermission ) l_list.next() ;
+ l_items.remove( l_perm.getName() ) ;
+ }
+
+ for ( int ii = 0; ii < l_items.size(); ii++ )
+ {
+ String l_item = ( String ) l_items.get( ii ) ;
+ JMenuItem l_menuItem = new JMenuItem( l_item ) ;
+ l_menu.add( l_menuItem ) ;
+
+ String l_cmd = a_action.getCommand() + "|" + l_item ;
+ l_menuItem.setActionCommand( l_cmd ) ;
+ l_menuItem.setToolTipText( "Grant permission " + l_item
+ + " to user " + l_profile.getUserName()
+ + "'s profile for application "
+ + l_profile.getApplicationName() ) ;
+ l_menuItem.addActionListener( this ) ;
+ l_menuItem.setIcon( Images.load( a_action.getIcon() ) ) ;
+ }
+
+ return l_menu ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuHandler#getCommand()
+ */
+ public String getCommand()
+ {
+ return ACTION_COMMAND ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuHandler#handles(org.apache.rms.ui.ocmm.Action)
+ */
+ public boolean handles( Action action )
+ {
+ return action.getCommand().equals( ACTION_COMMAND ) ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuHandler#isForItem()
+ */
+ public boolean isForItem()
+ {
+ return false ;
+ }
+}
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/GrantPermissionToRoleHandler.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/GrantPermissionToRoleHandler.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,296 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.actions ;
+
+
+import java.util.Iterator ;
+import java.util.ArrayList ;
+
+import java.awt.Dimension ;
+import java.awt.event.ActionEvent ;
+
+import javax.swing.JMenu ;
+import javax.swing.JMenuItem ;
+import javax.swing.JTextArea ;
+import javax.swing.JOptionPane ;
+import javax.swing.JScrollPane ;
+import javax.swing.tree.TreePath ;
+
+import org.apache.commons.lang.StringUtils ;
+import org.apache.commons.lang.exception.ExceptionUtils ;
+
+import org.apache.rms.ui.Images ;
+import org.apache.rms.User ;
+import org.apache.rms.ui.ocmm.Action ;
+import org.apache.rms.RmsException ;
+import org.apache.rms.BitPermission ;
+import org.apache.rms.spi.MutableRole ;
+import org.apache.rms.ui.ActionMenuManager ;
+import org.apache.rms.ui.navtree.BeanTreeNode ;
+import org.apache.rms.spi.MutableApplication ;
+import org.apache.rms.ui.navtree.ContainerTreeNode ;
+import org.apache.rms.ui.navtree.ContainmentTreeNode ;
+
+
+/**
+ * Handler for 'GrantPermissionToRole' ActionEvent commands.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class GrantPermissionToRoleHandler implements SubMenuHandler
+{
+ public static final String ACTION_COMMAND = "GrantPermissionToRole" ;
+ private final ActionMenuManager m_manager ;
+
+
+ /**
+ * Creates a 'GrantPermissionToRole' action command handler.
+ *
+ * @param a_manager the handler for the command.
+ */
+ public GrantPermissionToRoleHandler( ActionMenuManager a_manager )
+ {
+ m_manager = a_manager ;
+ }
+
+
+ /**
+ * Gets the application associated with the selection path.
+ *
+ * @param a_path the selection path
+ * @return the mutable application under which this path is associated
+ */
+ private MutableApplication getApplication( TreePath a_path )
+ {
+ MutableApplication l_app = null ;
+
+ ContainmentTreeNode l_last =
+ ( ContainmentTreeNode ) a_path.getLastPathComponent() ;
+ if ( l_last instanceof ContainerTreeNode )
+ {
+ l_app = ( MutableApplication ) ( ( BeanTreeNode ) l_last
+ .getParent().getParent().getParent() ).getUserObject() ;
+ }
+ else
+ {
+ l_app = ( MutableApplication ) ( ( BeanTreeNode ) l_last.getParent()
+ .getParent() ).getUserObject() ;
+ }
+
+ return l_app ;
+ }
+
+
+ /**
+ * Gets the role associated with the selection path
+ *
+ * @param a_path the selection path
+ * @return the mutable role under which this path is associated
+ */
+ private MutableRole getRole( TreePath a_path )
+ {
+ MutableRole l_role = null ;
+
+ ContainmentTreeNode l_last =
+ ( ContainmentTreeNode ) a_path.getLastPathComponent() ;
+ if ( l_last instanceof ContainerTreeNode )
+ {
+ l_role = ( MutableRole )
+ ( ( BeanTreeNode ) l_last.getParent() ).getUserObject() ;
+ }
+ else
+ {
+ l_role = ( MutableRole ) l_last.getUserObject() ;
+ }
+
+ return l_role ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see java.awt.event.ActionListener#actionPerformed(
+ * java.awt.event.ActionEvent)
+ */
+ public void actionPerformed( ActionEvent e )
+ {
+ String l_cmd = e.getActionCommand() ;
+
+ if ( l_cmd.startsWith( ACTION_COMMAND ) )
+ {
+ TreePath l_path = m_manager.getSelectedPath() ;
+ String l_permName = StringUtils.split( l_cmd, '|' )[1] ;
+ MutableRole l_role = getRole( l_path ) ;
+ ContainerTreeNode l_grants = null ;
+
+ if ( l_path.getLastPathComponent() instanceof BeanTreeNode )
+ {
+ // we selected a role node so we need to get the child grants
+ l_grants = ( ( BeanTreeNode ) l_path.getLastPathComponent() )
+ .getContainerChild( "Grants" ) ;
+ }
+ else
+ {
+ // we selected the grants node so we just get the last container
+ l_grants = m_manager.getLastContainer() ;
+ }
+
+ MutableApplication l_app = getApplication( l_path ) ;
+ BitPermission l_perm = l_app.getPermission( l_permName ) ;
+ BeanTreeNode l_permNode = new BeanTreeNode( l_perm,
+ m_manager.getContainmentModel() ) ;
+
+ try
+ {
+ l_role.grant( l_permName ) ;
+ }
+ catch( RmsException ex )
+ {
+ String l_msg = "We failed to grant the permission "
+ + l_permName + " for Role " + l_role.getName()
+ + " for the following reasons: "
+ + ExceptionUtils.getFullStackTrace( ex ) ;
+ JTextArea l_text = new JTextArea( l_msg ) ;
+ l_text.setEnabled( false ) ;
+ JScrollPane l_comp = new JScrollPane( l_text,
+ JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
+ JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED ) ;
+ l_comp.getViewport().setPreferredSize(
+ new Dimension( 640, 240 ) ) ;
+ JOptionPane.showMessageDialog( null , l_comp,
+ "Failed to Grant Permission to Role",
+ JOptionPane.ERROR_MESSAGE ) ;
+ return ;
+ }
+
+ m_manager.getTreeModel().insertNodeInto( l_permNode, l_grants, 0 ) ;
+ m_manager.buildMenus() ;
+
+ /*
+ * Profiles listen as Observers of DefaultRoles which extends the
+ * Observable class. Changes to roles automatically result in
+ * effective permission calculations this way in profiles if the
+ * provider implementation handles the Observer.update() calls
+ * correctly. All we now need to do is refresh the profile nodes
+ * so they display the correct permissions for roles and the correct
+ * effective permissions.
+ *
+ * We need to find all the profile nodes of users that are in the
+ * role that just changed by having the grant added. We must call
+ * refresh on these nodes and let the tree model announce a
+ * structural change to the tree at those nodes.
+ */
+ BeanTreeNode l_root = ( BeanTreeNode )
+ m_manager.getTreeModel().getRoot() ;
+ ContainerTreeNode l_users = ( ContainerTreeNode )
+ l_root.getContainerChild( "Users" ) ;
+
+ for ( int ii = 0; ii < l_users.getChildCount(); ii++ )
+ {
+ BeanTreeNode node = ( BeanTreeNode ) l_users.getChildAt( ii ) ;
+ User user = ( User ) node.getUserObject() ;
+
+ if ( user.hasProfile( l_role.getApplicationName() ) )
+ {
+ user.getProfile( l_role.getApplicationName() ).hasRole(
+ l_role ) ;
+
+ // We'll just update the user node
+ node.refresh() ;
+ m_manager.getTreeModel().nodeStructureChanged( node ) ;
+ }
+ }
+ }
+ }
+
+
+ /*
+ * This method is invoked when the Grants of a role is selected or a role
+ * itself is selected.
+ *
+ * (non-Javadoc)
+ * @see org.apache.rms.ui.actions.SubMenuHandler#getSubMenu(javax.swing.tree.TreePath,
+ * org.apache.rms.ui.ocmm.Action)
+ */
+ public JMenuItem getSubMenu( TreePath a_path, Action a_action )
+ {
+ JMenu l_menu = new JMenu( a_action.getName() ) ;
+ MutableRole l_role = getRole( a_path ) ;
+ MutableApplication l_app = getApplication( a_path ) ;
+
+ l_menu.setIcon( Images.load( a_action.getIcon() ) ) ;
+ l_menu.setToolTipText( "Grant a permission to role "
+ + l_role.getName() ) ;
+
+ ArrayList l_items = new ArrayList() ;
+ Iterator l_list = l_app.getPermissions() ;
+
+ while ( l_list.hasNext() )
+ {
+ l_items.add( l_list.next() ) ;
+ }
+
+ l_list = l_role.getGrants() ;
+ while ( l_list.hasNext() )
+ {
+ l_items.remove( l_list.next() ) ;
+ }
+
+ for ( int ii = 0; ii < l_items.size(); ii++ )
+ {
+ BitPermission l_item = ( BitPermission ) l_items.get( ii ) ;
+ JMenuItem l_menuItem = new JMenuItem( l_item.getName() ) ;
+ l_menu.add( l_menuItem ) ;
+
+ String l_cmd = a_action.getCommand() + "|" + l_item.getName() ;
+ l_menuItem.setActionCommand( l_cmd ) ;
+ l_menuItem.setToolTipText( "Grant permission " + l_item.getName()
+ + " to Role " + l_role.getName() ) ;
+ l_menuItem.addActionListener( this ) ;
+ l_menuItem.setIcon( Images.load( a_action.getIcon() ) ) ;
+ }
+
+ return l_menu ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuHandler#getCommand()
+ */
+ public String getCommand()
+ {
+ return ACTION_COMMAND ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuHandler#handles(org.apache.rms.ui.ocmm.Action)
+ */
+ public boolean handles( Action action )
+ {
+ return action.getCommand().equals( ACTION_COMMAND ) ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuHandler#isForItem()
+ */
+ public boolean isForItem()
+ {
+ return false ;
+ }
+}
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/HandlerTemplate.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/HandlerTemplate.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,69 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.actions ;
+
+
+import java.awt.event.ActionEvent ;
+
+import org.apache.rms.ui.ActionMenuManager ;
+
+
+/**
+ * Handler for '' ActionEvent commands.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class HandlerTemplate extends BaseMenuItemHandler
+{
+ public static final String ACTION_COMMAND =
+ "" ;
+ private final ActionMenuManager m_manager ;
+
+
+ /**
+ * Creates a '' action command handler.
+ *
+ * @param a_manager the handler for the command.
+ */
+ public HandlerTemplate( ActionMenuManager a_manager )
+ {
+ m_manager = a_manager ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see java.awt.event.ActionListener#actionPerformed(
+ * java.awt.event.ActionEvent)
+ */
+ public void actionPerformed( ActionEvent e )
+ {
+ if ( e.getActionCommand().equals( ACTION_COMMAND ) )
+ {
+ // do what we do
+ }
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuHandler#getCommand()
+ */
+ public String getCommand()
+ {
+ return ACTION_COMMAND ;
+ }
+}
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/MenuHandler.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/MenuHandler.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.actions ;
+
+
+import java.awt.event.ActionListener ;
+
+import org.apache.rms.ui.ocmm.Action ;
+
+
+/**
+ * Menu handlers are action handlers designed specifically for ocmm Actions.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public interface MenuHandler extends ActionListener
+{
+ /**
+ * Checks whether or not this handler is for single items.
+ *
+ * @return
+ */
+ boolean isForItem() ;
+
+ /**
+ * Gets the command for this handler.
+ *
+ * @return the command
+ */
+ String getCommand() ;
+
+ /**
+ * Checks to see if this handler handles an action.
+ *
+ * @param action the action to handle
+ * @return true if this handler handles the action, false otherwise.
+ */
+ boolean handles( Action action ) ;
+}
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/MenuItemHandler.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/MenuItemHandler.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.actions ;
+
+
+import javax.swing.JMenuItem ;
+import javax.swing.tree.TreePath ;
+
+import org.apache.rms.ui.ocmm.Action ;
+
+
+/**
+ * This is a handler for a single menu item.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public interface MenuItemHandler extends MenuHandler
+{
+ /**
+ * Gets a new menu item for a path and action.
+ *
+ * @param a_path the path to the selected item
+ * @param a_action the action to associated with this handler
+ * @return the menu item triggering actions handled by this handler
+ */
+ JMenuItem getMenuItem( TreePath a_path, Action a_action ) ;
+}
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/RefreshHandler.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/RefreshHandler.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,73 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.actions ;
+
+
+import java.awt.event.ActionEvent ;
+
+import org.apache.rms.ui.ActionMenuManager ;
+import org.apache.rms.ui.navtree.ContainmentTreeNode ;
+
+
+/**
+ * Handler for 'Refresh' ActionEvent commands.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class RefreshHandler extends BaseMenuItemHandler
+{
+ public static final String ACTION_COMMAND = "Refresh" ;
+ private final ActionMenuManager m_manager ;
+
+
+ /**
+ * Creates a 'Refresh' action command handler.
+ *
+ * @param a_manager the handler for the command.
+ */
+ public RefreshHandler( ActionMenuManager a_manager )
+ {
+ m_manager = a_manager ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see java.awt.event.ActionListener#actionPerformed(
+ * java.awt.event.ActionEvent)
+ */
+ public void actionPerformed( ActionEvent e )
+ {
+ if ( e.getActionCommand().equals( ACTION_COMMAND ) )
+ {
+ ContainmentTreeNode l_node = ( ContainmentTreeNode )
+ m_manager.getSelectedPath().getLastPathComponent() ;
+
+ l_node.refresh() ;
+ m_manager.getTreeModel().nodeStructureChanged( l_node ) ;
+ }
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuHandler#getCommand()
+ */
+ public String getCommand()
+ {
+ return ACTION_COMMAND ;
+ }
+}
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/RemoveRoleFromProfileHandler.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/RemoveRoleFromProfileHandler.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,317 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.actions ;
+
+
+import java.util.Iterator ;
+import java.awt.Dimension ;
+import java.util.ArrayList ;
+import java.awt.event.ActionEvent ;
+
+import javax.swing.JMenu ;
+import javax.swing.JMenuItem ;
+import javax.swing.JTextArea ;
+import javax.swing.JOptionPane ;
+import javax.swing.JScrollPane ;
+import javax.swing.tree.TreePath ;
+
+import org.apache.commons.lang.StringUtils ;
+import org.apache.commons.lang.exception.ExceptionUtils ;
+
+import org.apache.rms.ui.Images ;
+import org.apache.rms.Role ;
+import org.apache.rms.ui.ocmm.Action ;
+import org.apache.rms.RmsException ;
+import org.apache.rms.spi.MutableRole ;
+import org.apache.rms.ui.ActionMenuManager ;
+import org.apache.rms.ui.navtree.BeanTreeNode ;
+import org.apache.rms.spi.MutableProfile ;
+import org.apache.rms.ui.navtree.ContainerTreeNode ;
+import org.apache.rms.ui.navtree.ContainmentTreeNode ;
+
+
+/**
+ * Handler for 'RemoveRoleFromProfile' ActionEvent commands.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class RemoveRoleFromProfileHandler implements SubMenuHandler
+{
+ public static final String ACTION_COMMAND = "RemoveRoleFromProfile" ;
+ private final ActionMenuManager m_manager ;
+
+
+ /**
+ * Creates a 'RemoveRoleFromProfile' action command handler.
+ *
+ * @param a_manager the handler for the command.
+ */
+ public RemoveRoleFromProfileHandler( ActionMenuManager a_manager )
+ {
+ m_manager = a_manager ;
+ }
+
+
+ /**
+ * Gets the Profile associated with the selection path.
+ *
+ * @param a_path the selection path
+ * @return the mutable application under which this path is associated
+ */
+ private MutableProfile getProfile( TreePath a_path )
+ {
+ MutableProfile l_profile = null ;
+
+ /*
+ * Last selected is either the 'Grants' container or the profile bean.
+ */
+ ContainmentTreeNode l_last =
+ ( ContainmentTreeNode ) a_path.getLastPathComponent() ;
+
+ if ( l_last.isContainerNode() )
+ {
+ l_profile = ( MutableProfile ) ( ( BeanTreeNode ) l_last
+ .getParent() ).getUserObject() ;
+ }
+ else
+ {
+ l_profile = ( MutableProfile ) ( ( BeanTreeNode )
+ l_last ).getUserObject() ;
+ }
+
+ return l_profile ;
+ }
+
+
+ /**
+ * Checks to see if a role is selected so we will show a single menu
+ * item in this case instead of an entire submenu.
+ *
+ * @param a_path the path to the selected node
+ * @return true if the selected node is a role node false otherwise
+ */
+ private boolean isRoleSelected( TreePath a_path )
+ {
+ ContainmentTreeNode l_last =
+ ( ContainmentTreeNode ) a_path.getLastPathComponent() ;
+
+ if ( l_last.isContainerNode() )
+ {
+ return false ;
+ }
+ else if ( l_last.getContainmentMetadata().getTypeClass()
+ .isAssignableFrom( Role.class ) )
+ {
+ return true ;
+ }
+
+ return false ;
+ }
+
+
+ /**
+ * Gets the selected role.
+ *
+ * @param a_path the path to the selected role
+ * @return the select mutable selected role
+ */
+ private MutableRole getSelectedRole( TreePath a_path )
+ {
+ ContainmentTreeNode l_last =
+ ( ContainmentTreeNode ) a_path.getLastPathComponent() ;
+ return ( MutableRole ) l_last.getUserObject() ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see java.awt.event.ActionListener#actionPerformed(
+ * java.awt.event.ActionEvent)
+ */
+ public void actionPerformed( ActionEvent e )
+ {
+ String l_cmd = e.getActionCommand() ;
+
+ if ( l_cmd.startsWith( ACTION_COMMAND ) )
+ {
+ TreePath l_path = m_manager.getSelectedPath() ;
+ String l_roleName = StringUtils.split( l_cmd, '|' )[1] ;
+ MutableProfile l_profile = null ;
+ BeanTreeNode l_roleNode = null ;
+ ContainerTreeNode l_roles = null ;
+ BeanTreeNode l_profileNode = null ;
+
+
+ if ( isRoleSelected( l_path ) )
+ {
+ l_roleNode = ( BeanTreeNode ) l_path.getLastPathComponent() ;
+ l_roles = m_manager.getLastContainer() ;
+ l_profile = ( MutableProfile ) ( ( BeanTreeNode )
+ l_roles.getParent() ).getUserObject() ;
+ l_profileNode = ( BeanTreeNode ) l_roles.getParent() ;
+ }
+ else
+ {
+ l_profile = getProfile( l_path ) ;
+
+ if ( l_path.getLastPathComponent() instanceof BeanTreeNode )
+ {
+ // we selected a profile node so we need to get child roles
+ l_roles = ( ( BeanTreeNode ) l_path
+ .getLastPathComponent() )
+ .getContainerChild( "Roles" ) ;
+ }
+ else
+ {
+ // we selected the roles node so we just get last container
+ l_roles = m_manager.getLastContainer() ;
+ }
+ l_profileNode = ( BeanTreeNode ) l_roles.getParent() ;
+
+ for ( int ii = 0; ii < l_roles.getChildCount(); ii++ )
+ {
+ BeanTreeNode l_child = ( BeanTreeNode )
+ l_roles.getChildAt( ii ) ;
+ MutableRole l_role = ( MutableRole )
+ l_child.getUserObject() ;
+
+ if ( l_role.getName().equals( l_roleName ) )
+ {
+ l_roleNode = l_child ;
+ break ;
+ }
+ }
+ }
+
+ try
+ {
+ l_profile.removeRole( l_roleName ) ;
+ }
+ catch( RmsException ex )
+ {
+ String l_msg = "We failed to remove the role "
+ + l_roleName + " from user " + l_profile.getUserName()
+ + "'s profile for application "
+ + l_profile.getApplicationName()
+ + " for the following reasons: "
+ + ExceptionUtils.getFullStackTrace( ex ) ;
+ JTextArea l_text = new JTextArea( l_msg ) ;
+ l_text.setEnabled( false ) ;
+ JScrollPane l_comp = new JScrollPane( l_text,
+ JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
+ JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED ) ;
+ l_comp.getViewport().setPreferredSize(
+ new Dimension( 640, 240 ) ) ;
+ JOptionPane.showMessageDialog( null , l_comp,
+ "Failed to Remove Role From Profile",
+ JOptionPane.ERROR_MESSAGE ) ;
+ return ;
+ }
+
+ m_manager.getTreeModel().removeNodeFromParent( l_roleNode ) ;
+
+ l_profileNode.refresh() ;
+ m_manager.getTreeModel().nodeStructureChanged( l_profileNode ) ;
+
+ m_manager.buildMenus() ;
+ }
+ }
+
+
+ /*
+ * This method is invoked when the Grants of a role is selected or a role
+ * itself is selected.
+ *
+ * (non-Javadoc)
+ * @see org.apache.rms.ui.actions.SubMenuHandler#getSubMenu(javax.swing.tree.TreePath,
+ * org.apache.rms.ui.ocmm.Action)
+ */
+ public JMenuItem getSubMenu( TreePath a_path, Action a_action )
+ {
+ if ( isRoleSelected( a_path ) )
+ {
+ MutableRole l_role = getSelectedRole( a_path ) ;
+ JMenuItem l_item = new JMenuItem( a_action.getName() ) ;
+ l_item.setIcon( Images.load( a_action.getIcon() ) ) ;
+ String l_cmd = a_action.getCommand() + "|" + l_role.getName() ;
+ l_item.setActionCommand( l_cmd ) ;
+ l_item.setToolTipText( "Remove role " + l_role.getName() ) ;
+ l_item.addActionListener( this ) ;
+ return l_item ;
+ }
+
+ JMenu l_menu = new JMenu( a_action.getName() ) ;
+ MutableProfile l_profile = getProfile( a_path ) ;
+
+ l_menu.setIcon( Images.load( a_action.getIcon() ) ) ;
+ l_menu.setToolTipText( "Remove a role from user "
+ + l_profile.getUserName() + "'s profile for application "
+ + l_profile.getApplicationName() ) ;
+
+ ArrayList l_items = new ArrayList() ;
+ Iterator l_list = l_profile.getRoles() ;
+ while ( l_list.hasNext() )
+ {
+ l_items.add( l_list.next() ) ;
+ }
+
+ for ( int ii = 0; ii < l_items.size(); ii++ )
+ {
+ MutableRole l_item = ( MutableRole ) l_items.get( ii ) ;
+ JMenuItem l_menuItem = new JMenuItem( l_item.getName() ) ;
+ l_menu.add( l_menuItem ) ;
+
+ String l_cmd = a_action.getCommand() + "|" + l_item.getName() ;
+ l_menuItem.setActionCommand( l_cmd ) ;
+ l_menuItem.setToolTipText( "Remove role " + l_item.getName()
+ + " from user " + l_profile.getUserName()
+ + "'s profile for application "
+ + l_profile.getApplicationName() ) ;
+ l_menuItem.addActionListener( this ) ;
+ l_menuItem.setIcon( Images.load( a_action.getIcon() ) ) ;
+ }
+
+ return l_menu ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuHandler#getCommand()
+ */
+ public String getCommand()
+ {
+ return ACTION_COMMAND ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuHandler#handles(org.apache.rms.ui.ocmm.Action)
+ */
+ public boolean handles( Action action )
+ {
+ return action.getCommand().equals( ACTION_COMMAND ) ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuHandler#isForItem()
+ */
+ public boolean isForItem()
+ {
+ return false ;
+ }
+}
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/RenameApplicationHandler.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/RenameApplicationHandler.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,213 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.actions ;
+
+
+import java.awt.Dimension ;
+import java.awt.event.ActionEvent ;
+
+import java.util.Iterator ;
+import java.util.ArrayList ;
+
+import javax.swing.JTextArea ;
+import javax.swing.JOptionPane ;
+import javax.swing.JScrollPane ;
+import javax.swing.tree.TreeNode ;
+
+import org.apache.commons.lang.WordUtils ;
+import org.apache.commons.lang.exception.ExceptionUtils ;
+
+import org.apache.rms.Rms ;
+import org.apache.rms.Role ;
+import org.apache.rms.User ;
+import org.apache.rms.Application ;
+import org.apache.rms.RmsException ;
+import org.apache.rms.BitPermission ;
+import org.apache.rms.spi.MutableApplication ;
+
+import org.apache.rms.ui.ActionMenuManager ;
+import org.apache.rms.ui.navtree.BeanTreeNode ;
+import org.apache.rms.ui.navtree.ContainerTreeNode ;
+
+
+/**
+ * Action handler for 'RenameApplication' action commands.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class RenameApplicationHandler extends BaseMenuItemHandler
+{
+ public static final String ACTION_COMMAND = "RenameApplication" ;
+ private final ActionMenuManager m_manager ;
+
+
+ /**
+ * Creates a handler for 'RenameApplication' action commands.
+ */
+ public RenameApplicationHandler( ActionMenuManager a_manager )
+ {
+ m_manager = a_manager ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see java.awt.event.ActionListener#actionPerformed(
+ * java.awt.event.ActionEvent)
+ */
+ public void actionPerformed( ActionEvent e )
+ {
+ if ( e.getActionCommand().equals( ACTION_COMMAND ) )
+ {
+ BeanTreeNode l_beanNode = m_manager.getLastBean() ;
+ ContainerTreeNode l_apps = m_manager.getLastContainer() ;
+ MutableApplication l_app = ( MutableApplication )
+ l_beanNode.getUserObject() ;
+ String l_newName = null ;
+
+ Iterator l_list = l_app.getRoles() ;
+ ArrayList l_rolesForApp = new ArrayList() ;
+ while ( l_list.hasNext() )
+ {
+ l_rolesForApp.add( ( ( Role ) l_list.next() ).getName() ) ;
+ }
+
+ l_list = l_app.getPermissions() ;
+ ArrayList l_permsForApp = new ArrayList() ;
+ while ( l_list.hasNext() )
+ {
+ l_permsForApp.add( ( ( BitPermission ) l_list.next() )
+ .getName() ) ;
+ }
+
+ try
+ {
+ l_list = Rms.getInstance().getUsers( l_app.getName() ) ;
+ }
+ catch( RmsException ex )
+ {
+ ex.printStackTrace() ;
+ }
+ ArrayList l_usersForApp = new ArrayList() ;
+ while ( l_list.hasNext() )
+ {
+ l_usersForApp.add( ( ( User ) l_list.next() ).getName() ) ;
+ }
+
+
+ if ( l_rolesForApp.size() > 0
+ || l_permsForApp.size() > 0
+ || l_usersForApp.size() > 0 )
+ {
+ String l_msg =
+ "The application " + l_app.getName()
+ + " has the following roles that depend on it:\n"
+ + l_rolesForApp ;
+ l_msg +=
+ "\n\nThe application " + l_app.getName()
+ + " has the following permissions that depend on it:\n"
+ + l_permsForApp ;
+ l_msg +=
+ "\n\nThe application " + l_app.getName() + " has the "
+ + "following user's with profiles that depend on it:\n"
+ + l_permsForApp ;
+ JTextArea l_text = new JTextArea( l_msg ) ;
+ l_text.setEnabled( false ) ;
+ JScrollPane l_comp = new JScrollPane( l_text,
+ JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
+ JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED ) ;
+ l_comp.getViewport().setPreferredSize(
+ new Dimension( 640, 240 ) ) ;
+ JOptionPane.showMessageDialog( null , l_comp,
+ "Application is Referenced by Entities!",
+ JOptionPane.ERROR_MESSAGE ) ;
+ return ;
+ }
+
+ l_newName = JOptionPane.showInputDialog( m_manager.getMainFrame(),
+ "What would you like to rename application " + l_app.getName()
+ + " to?", "Rename Application " + l_app.getName(),
+ JOptionPane.INFORMATION_MESSAGE ) ;
+
+ if ( l_newName == null )
+ {
+ return ;
+ }
+ else if ( l_newName.trim().equals( "" ) )
+ {
+ JOptionPane.showMessageDialog( m_manager.getMainFrame(),
+ "Application name cannot be set to the empty String!",
+ "Invalid Application Name",
+ JOptionPane.ERROR_MESSAGE ) ;
+ return ;
+ }
+
+
+ for ( int ii = 0; ii < l_apps.getChildCount(); ii++ )
+ {
+ BeanTreeNode l_child =
+ ( BeanTreeNode ) l_apps.getChildAt( ii ) ;
+ Application l_childApp =
+ ( Application ) l_child.getUserObject() ;
+ if ( l_childApp.getName().equals( l_newName ) )
+ {
+ JOptionPane.showMessageDialog( m_manager.getMainFrame(),
+ "New application name " + l_newName
+ + " is already the name of another Application!",
+ "Invalid Application Name",
+ JOptionPane.ERROR_MESSAGE ) ;
+ return ;
+ }
+ }
+
+ try
+ {
+ l_app.rename( l_newName ) ;
+ }
+ catch ( RmsException ex )
+ {
+ String l_msg = "Failed to rename appliciation "
+ + l_app.getName()
+ + " due to the following reason:"
+ + ExceptionUtils.getFullStackTrace( ex ) ;
+ l_msg = WordUtils.wrap( l_msg, 80 ) ;
+
+ JTextArea l_text = new JTextArea( l_msg ) ;
+ l_text.setEnabled( false ) ;
+ JScrollPane l_comp = new JScrollPane( l_text,
+ JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
+ JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED ) ;
+ l_comp.getViewport().setPreferredSize( new
+ Dimension( 640, 240 ) ) ;
+ JOptionPane.showMessageDialog( null , l_comp,
+ "Failed to Rename Application!",
+ JOptionPane.ERROR_MESSAGE ) ;
+ }
+
+ m_manager.getTreeModel().nodeChanged( ( TreeNode ) l_beanNode ) ;
+ }
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuHandler#getCommand()
+ */
+ public String getCommand()
+ {
+ return ACTION_COMMAND ;
+ }
+}
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/RenamePermissionDialog.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/RenamePermissionDialog.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,305 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.actions ;
+
+
+import java.awt.Font ;
+import java.awt.Frame ;
+import java.awt.Color ;
+import java.awt.Insets ;
+import java.awt.Toolkit ;
+import java.awt.Dimension ;
+import java.awt.FlowLayout ;
+import java.awt.GridBagLayout ;
+import java.awt.event.ActionEvent ;
+import java.awt.event.WindowEvent ;
+import java.awt.GridBagConstraints ;
+import java.awt.event.ActionListener ;
+
+import javax.swing.JPanel ;
+import javax.swing.JLabel ;
+import javax.swing.JButton ;
+import javax.swing.JDialog ;
+import javax.swing.JTextField ;
+import javax.swing.JOptionPane ;
+import javax.swing.BorderFactory ;
+import javax.swing.border.TitledBorder ;
+
+
+import org.apache.rms.Application ;
+import org.apache.rms.BitPermission ;
+
+
+/**
+ * A modal dialog for renaming permissions.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class RenamePermissionDialog
+ extends JDialog implements ActionListener
+{
+ private static final String TITLE_BASE =
+ "Rename Permission " ;
+ private static final String PRESS_TO_CANCEL_TOP =
+ "Press to cancel creation of permission" ;
+ private static final String PRESS_TO_CREATE_TIP =
+ "Press to create new application permission" ;
+
+ private boolean m_hasCanceled = true ;
+
+ private final Application m_application ;
+ private final BitPermission m_permission ;
+
+ private JPanel m_mainPanel = new JPanel() ;
+ private JPanel m_infoPanel = new JPanel() ;
+ private JPanel m_buttonPanel = new JPanel() ;
+ private JPanel m_appPanel = new JPanel() ;
+ private JLabel m_appNameLabel = new JLabel() ;
+ private JButton m_cancelButton = new JButton() ;
+ private JButton m_renameButton = new JButton() ;
+ private JPanel m_permPanel = new JPanel() ;
+ private JLabel m_permNameLabel = new JLabel() ;
+ private JTextField m_permNameText = new JTextField() ;
+ private JLabel m_appName = new JLabel() ;
+
+
+ /**
+ * Creates new form JDialog
+ *
+ * @param parent
+ * @param modal
+ */
+ public RenamePermissionDialog( Frame parent, boolean modal,
+ Application app, BitPermission perm )
+ {
+ super( parent, modal ) ;
+ m_application = app ;
+ m_permission = perm ;
+
+ initGUI() ;
+
+ Dimension m_screenSize = Toolkit.getDefaultToolkit().getScreenSize() ;
+ Dimension m_frameSize = getSize() ;
+
+ if ( m_frameSize.height > m_screenSize.height )
+ {
+ m_frameSize.height = m_screenSize.height ;
+ }
+
+ if ( m_frameSize.width > m_screenSize.width )
+ {
+ m_frameSize.width = m_screenSize.width ;
+ }
+
+ setLocation( ( m_screenSize.width - m_frameSize.width ) / 2,
+ ( m_screenSize.height - m_frameSize.height ) / 2 ) ;
+ }
+
+
+ /**
+ * Called from within the constructor to initialize the form.
+ */
+ private void initGUI()
+ {
+ addWindowListener( new java.awt.event.WindowAdapter()
+ {
+ public void windowClosing( java.awt.event.WindowEvent evt )
+ {
+ closeDialog(evt);
+ }
+ });
+ pack();
+ setBounds( new java.awt.Rectangle( 0, 0, 455, 220 ) ) ;
+ setTitle( TITLE_BASE + m_permission.getName() ) ;
+ setModal( true ) ;
+ getContentPane().setLayout( new java.awt.BorderLayout() ) ;
+ getContentPane().add( m_mainPanel, java.awt.BorderLayout.CENTER ) ;
+ m_mainPanel.setLayout( new java.awt.GridBagLayout() ) ;
+ m_mainPanel.setBorder( null ) ;
+
+ m_mainPanel.add( m_infoPanel, new GridBagConstraints( 0, 0, 1, 1,
+ 1.0, 0.8, GridBagConstraints.NORTH,
+ GridBagConstraints.BOTH, new Insets( 0, 5, 5, 5 ),
+ 0, 0 ) ) ;
+
+ m_mainPanel.add( m_buttonPanel,
+ new GridBagConstraints( 0, 1, 1, 1, 0.0, 0.0,
+ GridBagConstraints.EAST,
+ GridBagConstraints.BOTH,
+ new Insets( 10, 5, 10, 5 ), 0, 0 ) ) ;
+
+ m_infoPanel.setBorder( BorderFactory.createTitledBorder(
+ BorderFactory.createLineBorder( new Color(
+ 153, 153, 153 ), 1 ),
+ "Rename Permission",
+ TitledBorder.LEADING, TitledBorder.TOP,
+ new Font( "Comic Sans MS", 0, 14 ),
+ new Color( 60, 60, 60 ) ) ) ;
+
+ m_infoPanel.setLayout( new GridBagLayout() ) ;
+
+ m_infoPanel.add( m_appPanel, new GridBagConstraints( 0, 0, 1, 1, 1.0,
+ 1.0, GridBagConstraints.NORTH, GridBagConstraints.BOTH,
+ new Insets( 0, 0, 0, 0 ), 0, 0 ) ) ;
+
+ m_infoPanel.add( m_permPanel, new GridBagConstraints( 0, 1, 1, 1, 1.0,
+ 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+ new Insets( 0, 0, 5, 0 ), 0, 0 ) ) ;
+
+ m_appNameLabel.setText( "Application Name:" ) ;
+ m_appNameLabel.setToolTipText( "Application Name" ) ;
+ m_appPanel.setLayout( new GridBagLayout() ) ;
+ m_appPanel.setAlignmentX( 0.0f ) ;
+ m_appPanel.setAlignmentY( 0.0f ) ;
+
+ m_appPanel.add( m_appNameLabel, new GridBagConstraints( 0, 0, 1, 1, 0.0,
+ 0.0, GridBagConstraints.WEST,
+ GridBagConstraints.NONE,
+ new Insets( 0, 10, 0, 10 ), 0, 0 ) );
+
+ m_appPanel.add( m_appName, new GridBagConstraints( 1, 0, 4, 1, 1.0, 0.0,
+ GridBagConstraints.WEST,
+ GridBagConstraints.HORIZONTAL,
+ new Insets( 0, 0, 0, 0 ), 0, 0 ) ) ;
+
+ m_cancelButton.setText( "Cancel" ) ;
+ m_cancelButton.setActionCommand( "Cancel" ) ;
+ m_cancelButton.addActionListener( this ) ;
+ m_cancelButton.setToolTipText( PRESS_TO_CANCEL_TOP ) ;
+ m_cancelButton.setSelected( true ) ;
+ m_buttonPanel.setLayout( new FlowLayout( FlowLayout.RIGHT, 10, 5 ) ) ;
+ m_buttonPanel.setBorder( BorderFactory.createTitledBorder(
+ BorderFactory.createLineBorder( new Color( 153, 153, 153 ), 1 ), "",
+ TitledBorder.LEADING, TitledBorder.TOP,
+ new Font( "Comic Sans MS", 0, 14 ), new Color( 60, 60, 60 ) ) ) ;
+ m_buttonPanel.add( m_cancelButton ) ;
+ m_buttonPanel.add( m_renameButton ) ;
+ m_renameButton.setText( "Rename" ) ;
+ m_renameButton.setActionCommand( "Rename" ) ;
+ m_renameButton.addActionListener( this ) ;
+ m_renameButton.setToolTipText( PRESS_TO_CREATE_TIP ) ;
+ m_permNameLabel.setText( "Permission Name:" ) ;
+ m_permNameLabel.setVerifyInputWhenFocusTarget( false ) ;
+ m_permNameLabel.setToolTipText( "Permission Name" ) ;
+ m_permPanel.setLayout( new GridBagLayout() ) ;
+
+ m_permPanel.add(m_permNameLabel, new GridBagConstraints( 0, 0, 1, 1,
+ 0.29, 0.0, GridBagConstraints.WEST,
+ GridBagConstraints.HORIZONTAL,
+ new Insets( 0, 10, 0, 0 ), 0, 0 ) ) ;
+
+ m_permPanel.add( m_permNameText, new GridBagConstraints( 1, 0, 1, 1,
+ 70.0, 0.0, GridBagConstraints.WEST,
+ GridBagConstraints.HORIZONTAL,
+ new Insets( 0, 10, 0, 10 ), 0, 0 ) ) ;
+
+ m_appName.setText( m_application.getName() ) ;
+ m_appName.setToolTipText(
+ "The name of the application owning the permission" ) ;
+
+ m_permNameText.setText( m_permission.getName() ) ;
+ }
+
+
+ /**
+ * Closes the dialog
+ *
+ * @param evt
+ */
+ private void closeDialog( WindowEvent evt )
+ {
+ evt.getWindow() ;
+ setVisible( false ) ;
+ dispose() ;
+ }
+
+
+ /**
+ * Gets the permission name.
+ *
+ * @return the name of the new permission to create
+ */
+ public String getPermissionName()
+ {
+ return m_permNameText.getText() ;
+ }
+
+
+ /**
+ * Gets if this dialog's action was canceled.
+ *
+ * @return true if canceled false otherwise
+ */
+ public boolean hasCanceled()
+ {
+ return m_hasCanceled ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see java.awt.event.ActionListener#actionPerformed(
+ * java.awt.event.ActionEvent)
+ */
+ public void actionPerformed( ActionEvent e )
+ {
+ if ( e.getActionCommand().equals( "Cancel" ) )
+ {
+ m_hasCanceled = true ;
+ }
+ else if ( e.getActionCommand().equals( "Rename" ) )
+ {
+ if ( m_permNameText.getText() == null ||
+ m_permNameText.getText().trim().equals( "" ) )
+ {
+ JOptionPane.showMessageDialog( this,
+ "Cannot rename permission with empty label!",
+ "Cannot rename: no permission name!",
+ JOptionPane.ERROR_MESSAGE ) ;
+ return ;
+ }
+
+ String l_permName = m_permNameText.getText().trim() ;
+
+ if ( m_permNameText.getText().equals( m_permission.getName() ) )
+ {
+ JOptionPane.showMessageDialog( this,
+ "Permission name " + l_permName
+ + " has not changed!",
+ "Permission name has not changed!",
+ JOptionPane.ERROR_MESSAGE ) ;
+ m_permNameText.setText( m_permission.getName() ) ;
+ return ;
+ }
+ else if ( m_application.hasPermission( l_permName ) )
+ {
+ JOptionPane.showMessageDialog( this,
+ "Permission with name " + l_permName
+ + " already exists for Application!",
+ "Permission exists for Application!",
+ JOptionPane.ERROR_MESSAGE ) ;
+ m_permNameText.setText( m_permission.getName() ) ;
+ return ;
+ }
+
+ m_hasCanceled = false ;
+ }
+
+ setVisible( false ) ;
+ dispose() ;
+ }
+}
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/RenamePermissionHandler.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/RenamePermissionHandler.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,101 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.actions ;
+
+
+import java.awt.event.ActionEvent ;
+
+import javax.swing.tree.TreeNode ;
+
+import org.apache.rms.RmsException ;
+import org.apache.rms.spi.MutableApplication ;
+import org.apache.rms.spi.MutableBitPermission ;
+
+import org.apache.rms.ui.ActionMenuManager ;
+import org.apache.rms.ui.navtree.BeanTreeNode ;
+import org.apache.rms.ui.navtree.ContainmentTreeNode ;
+
+
+/**
+ * Action handler for 'AddPermissionToApplication' action commands.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class RenamePermissionHandler extends BaseMenuItemHandler
+{
+ public static final String ACTION_COMMAND = "RenamePermission" ;
+ private final ActionMenuManager m_manager ;
+
+
+ /**
+ * Creates a handler for 'AddPermissionToApplication' action commands.
+ */
+ public RenamePermissionHandler( ActionMenuManager a_manager )
+ {
+ m_manager = a_manager ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see java.awt.event.ActionListener#actionPerformed(
+ * java.awt.event.ActionEvent)
+ */
+ public void actionPerformed( ActionEvent e )
+ {
+ if ( e.getActionCommand().equals( ACTION_COMMAND ) )
+ {
+ BeanTreeNode l_beanNode = m_manager.getLastBean() ;
+ MutableBitPermission l_perm =
+ ( MutableBitPermission ) l_beanNode.getUserObject() ;
+ MutableApplication l_app =
+ ( MutableApplication ) ( ( ContainmentTreeNode ) l_beanNode
+ .getParent().getParent() ).getUserObject() ;
+
+ RenamePermissionDialog l_permDialog =
+ new RenamePermissionDialog( null, true, l_app, l_perm ) ;
+ l_permDialog.setVisible( true ) ;
+
+ if ( l_permDialog.hasCanceled() )
+ {
+ return ;
+ }
+
+ String l_newPermName = l_permDialog.getPermissionName() ;
+ try
+ {
+ l_app.renamePermission( l_perm, l_newPermName ) ;
+ }
+ catch ( RmsException ex )
+ {
+ ex.printStackTrace() ;
+ }
+
+ m_manager.getTreeModel().nodeChanged( ( TreeNode )
+ m_manager.getTreeModel().getRoot() ) ;
+ }
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuHandler#getCommand()
+ */
+ public String getCommand()
+ {
+ return ACTION_COMMAND ;
+ }
+}
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/RenameRoleHandler.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/RenameRoleHandler.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,186 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.actions ;
+
+
+import java.awt.Dimension ;
+import java.awt.event.ActionEvent ;
+
+import java.util.Iterator ;
+import java.util.ArrayList ;
+
+import javax.swing.JTextArea ;
+import javax.swing.JOptionPane ;
+import javax.swing.JScrollPane ;
+import javax.swing.tree.TreeNode ;
+
+import org.apache.commons.lang.WordUtils ;
+import org.apache.commons.lang.exception.ExceptionUtils ;
+
+import org.apache.rms.Rms ;
+import org.apache.rms.Role ;
+import org.apache.rms.User ;
+import org.apache.rms.RmsException ;
+import org.apache.rms.spi.MutableRole;
+
+import org.apache.rms.ui.ActionMenuManager ;
+import org.apache.rms.ui.navtree.BeanTreeNode ;
+import org.apache.rms.ui.navtree.ContainerTreeNode ;
+
+
+/**
+ * Action handler for 'RenameRole' action commands.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class RenameRoleHandler extends BaseMenuItemHandler
+{
+ public static final String ACTION_COMMAND = "RenameRole" ;
+ private final ActionMenuManager m_manager ;
+
+
+ /**
+ * Creates a handler for 'RenameRole' action commands.
+ */
+ public RenameRoleHandler( ActionMenuManager a_manager )
+ {
+ m_manager = a_manager ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see java.awt.event.ActionListener#actionPerformed(
+ * java.awt.event.ActionEvent)
+ */
+ public void actionPerformed( ActionEvent e )
+ {
+ if ( e.getActionCommand().equals( ACTION_COMMAND ) )
+ {
+ BeanTreeNode l_beanNode = m_manager.getLastBean() ;
+ ContainerTreeNode l_roles = m_manager.getLastContainer() ;
+ MutableRole l_role = ( MutableRole ) l_beanNode.getUserObject() ;
+ String l_newName = null ;
+
+ Iterator l_list = null ;
+ ArrayList l_usersInRole = new ArrayList() ;
+ try
+ {
+ l_list = Rms.getInstance().getUsers( l_role.getApplicationName(),
+ l_role.getName() ) ;
+ }
+ catch ( RmsException ex )
+ {
+ ex.printStackTrace() ;
+ }
+
+ while ( l_list.hasNext() )
+ {
+ l_usersInRole.add( ( ( User ) l_list.next() ).getName() ) ;
+ }
+
+ if ( l_usersInRole.size() > 0 )
+ {
+ String l_msg =
+ "The role " + l_role.getName()
+ + " has the following users that depend on it:\n"
+ + l_usersInRole ;
+ JTextArea l_text = new JTextArea( l_msg ) ;
+ l_text.setEnabled( false ) ;
+ JScrollPane l_comp = new JScrollPane( l_text,
+ JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
+ JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED ) ;
+ l_comp.getViewport().setPreferredSize(
+ new Dimension( 640, 240 ) ) ;
+ JOptionPane.showMessageDialog( null , l_comp,
+ "Role is Referenced by Entities!",
+ JOptionPane.ERROR_MESSAGE ) ;
+ return ;
+ }
+
+ l_newName = JOptionPane.showInputDialog( m_manager.getMainFrame(),
+ "What would you like to rename role " + l_role.getName()
+ + " to?", "Rename Role " + l_role.getName(),
+ JOptionPane.INFORMATION_MESSAGE ) ;
+
+ if ( l_newName == null )
+ {
+ return ;
+ }
+ else if ( l_newName.trim().equals( "" ) )
+ {
+ JOptionPane.showMessageDialog( m_manager.getMainFrame(),
+ "Role name cannot be set to the empty String!",
+ "Invalid Role Name",
+ JOptionPane.ERROR_MESSAGE ) ;
+ return ;
+ }
+
+
+ for ( int ii = 0; ii < l_roles.getChildCount(); ii++ )
+ {
+ BeanTreeNode l_child =
+ ( BeanTreeNode ) l_roles.getChildAt( ii ) ;
+ Role l_childRole = ( Role ) l_child.getUserObject() ;
+ if ( l_childRole.getName().equals( l_newName ) )
+ {
+ JOptionPane.showMessageDialog( m_manager.getMainFrame(),
+ "New role name " + l_newName
+ + " is already the name of another Role!",
+ "Invalid Role Name",
+ JOptionPane.ERROR_MESSAGE ) ;
+ return ;
+ }
+ }
+
+ try
+ {
+ l_role.rename( l_newName ) ;
+ }
+ catch ( RmsException ex )
+ {
+ String l_msg = "Failed to rename role "
+ + l_role.getName()
+ + " due to the following reason:"
+ + ExceptionUtils.getFullStackTrace( ex ) ;
+ l_msg = WordUtils.wrap( l_msg, 80 ) ;
+
+ JTextArea l_text = new JTextArea( l_msg ) ;
+ l_text.setEnabled( false ) ;
+ JScrollPane l_comp = new JScrollPane( l_text,
+ JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
+ JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED ) ;
+ l_comp.getViewport().setPreferredSize( new
+ Dimension( 640, 240 ) ) ;
+ JOptionPane.showMessageDialog( null , l_comp,
+ "Failed to Rename Role!",
+ JOptionPane.ERROR_MESSAGE ) ;
+ }
+
+ m_manager.getTreeModel().nodeChanged( ( TreeNode ) l_beanNode ) ;
+ }
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuHandler#getCommand()
+ */
+ public String getCommand()
+ {
+ return ACTION_COMMAND ;
+ }
+}
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/RenameUserHandler.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/RenameUserHandler.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,173 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.actions ;
+
+
+import java.awt.Dimension ;
+import java.awt.event.ActionEvent ;
+
+import java.util.Iterator ;
+import java.util.ArrayList ;
+
+import javax.swing.JTextArea ;
+import javax.swing.JOptionPane ;
+import javax.swing.JScrollPane ;
+import javax.swing.tree.TreeNode ;
+
+import org.apache.commons.lang.WordUtils ;
+import org.apache.commons.lang.exception.ExceptionUtils ;
+
+import org.apache.rms.User ;
+import org.apache.rms.Profile ;
+import org.apache.rms.RmsException ;
+import org.apache.rms.spi.MutableUser ;
+
+import org.apache.rms.ui.ActionMenuManager ;
+import org.apache.rms.ui.navtree.BeanTreeNode ;
+import org.apache.rms.ui.navtree.ContainerTreeNode ;
+
+
+/**
+ * Action handler for 'RenameUser' action commands.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class RenameUserHandler extends BaseMenuItemHandler
+{
+ public static final String ACTION_COMMAND = "RenameUser" ;
+ private final ActionMenuManager m_manager ;
+
+
+ /**
+ * Creates a handler for 'RenameUser' action commands.
+ */
+ public RenameUserHandler( ActionMenuManager a_manager )
+ {
+ m_manager = a_manager ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see java.awt.event.ActionListener#actionPerformed(
+ * java.awt.event.ActionEvent)
+ */
+ public void actionPerformed( ActionEvent e )
+ {
+ if ( e.getActionCommand().equals( ACTION_COMMAND ) )
+ {
+ BeanTreeNode l_beanNode = m_manager.getLastBean() ;
+ ContainerTreeNode l_users = m_manager.getLastContainer() ;
+ MutableUser l_user = ( MutableUser ) l_beanNode.getUserObject() ;
+ String l_newName = null ;
+
+ Iterator l_list = l_user.getProfiles() ;
+ ArrayList l_profilesForUser = new ArrayList() ;
+ while ( l_list.hasNext() )
+ {
+ l_profilesForUser.add( ( ( Profile ) l_list.next() )
+ .getApplicationName() ) ;
+ }
+
+ if ( l_profilesForUser.size() > 0 )
+ {
+ String l_msg =
+ "The user " + l_user.getName()
+ + " has the following profiles that depend on it:\n"
+ + l_profilesForUser ;
+ JTextArea l_text = new JTextArea( l_msg ) ;
+ l_text.setEnabled( false ) ;
+ JScrollPane l_comp = new JScrollPane( l_text,
+ JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
+ JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED ) ;
+ l_comp.getViewport().setPreferredSize(
+ new Dimension( 640, 240 ) ) ;
+ JOptionPane.showMessageDialog( null , l_comp,
+ "User is Referenced by Profiles!",
+ JOptionPane.ERROR_MESSAGE ) ;
+ return ;
+ }
+
+ l_newName = JOptionPane.showInputDialog( m_manager.getMainFrame(),
+ "What would you like to rename user " + l_user.getName()
+ + " to?", "Rename User " + l_user.getName(),
+ JOptionPane.INFORMATION_MESSAGE ) ;
+
+ if ( l_newName == null )
+ {
+ return ;
+ }
+ else if ( l_newName.trim().equals( "" ) )
+ {
+ JOptionPane.showMessageDialog( m_manager.getMainFrame(),
+ "User name cannot be set to the empty String!",
+ "Invalid User Name", JOptionPane.ERROR_MESSAGE ) ;
+ return ;
+ }
+
+
+ for ( int ii = 0; ii < l_users.getChildCount(); ii++ )
+ {
+ BeanTreeNode l_child =
+ ( BeanTreeNode ) l_users.getChildAt( ii ) ;
+ User l_childUser = ( User ) l_child.getUserObject() ;
+ if ( l_childUser.getName().equals( l_newName ) )
+ {
+ JOptionPane.showMessageDialog( m_manager.getMainFrame(),
+ "New user name " + l_newName
+ + " is already the name of another User!",
+ "Invalid User Name", JOptionPane.ERROR_MESSAGE ) ;
+ return ;
+ }
+ }
+
+ try
+ {
+ l_user.rename( l_newName ) ;
+ }
+ catch ( RmsException ex )
+ {
+ String l_msg = "Failed to rename user " + l_user.getName()
+ + " due to the following reason:"
+ + ExceptionUtils.getFullStackTrace( ex ) ;
+ l_msg = WordUtils.wrap( l_msg, 80 ) ;
+
+ JTextArea l_text = new JTextArea( l_msg ) ;
+ l_text.setEnabled( false ) ;
+ JScrollPane l_comp = new JScrollPane( l_text,
+ JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
+ JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED ) ;
+ l_comp.getViewport().setPreferredSize( new
+ Dimension( 640, 240 ) ) ;
+ JOptionPane.showMessageDialog( null , l_comp,
+ "Failed to Rename User!",
+ JOptionPane.ERROR_MESSAGE ) ;
+ }
+
+ m_manager.getTreeModel().nodeChanged( ( TreeNode ) l_beanNode ) ;
+ }
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuHandler#getCommand()
+ */
+ public String getCommand()
+ {
+ return ACTION_COMMAND ;
+ }
+}
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/RevokeDenialFromProfileHandler.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/RevokeDenialFromProfileHandler.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,316 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.actions ;
+
+
+import java.util.Iterator ;
+import java.awt.Dimension ;
+import java.util.ArrayList ;
+import java.awt.event.ActionEvent ;
+
+import javax.swing.JMenu ;
+import javax.swing.JMenuItem ;
+import javax.swing.JTextArea ;
+import javax.swing.JOptionPane ;
+import javax.swing.JScrollPane ;
+import javax.swing.tree.TreePath ;
+
+import org.apache.commons.lang.StringUtils ;
+import org.apache.commons.lang.exception.ExceptionUtils ;
+
+import org.apache.rms.ui.Images ;
+import org.apache.rms.ui.ocmm.Action ;
+import org.apache.rms.RmsException ;
+import org.apache.rms.BitPermission ;
+import org.apache.rms.ui.ActionMenuManager ;
+import org.apache.rms.spi.MutableProfile ;
+import org.apache.rms.ui.navtree.BeanTreeNode ;
+import org.apache.rms.ui.navtree.ContainerTreeNode ;
+import org.apache.rms.spi.MutableBitPermission ;
+import org.apache.rms.ui.navtree.ContainmentTreeNode ;
+
+
+/**
+ * Handler for 'RevokeDenialFromProfile' ActionEvent commands.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class RevokeDenialFromProfileHandler implements SubMenuHandler
+{
+ public static final String ACTION_COMMAND = "RevokeDenialFromProfile" ;
+ private final ActionMenuManager m_manager ;
+
+
+ /**
+ * Creates a 'RevokeDenialFromProfile' action command handler.
+ *
+ * @param a_manager the handler for the command.
+ */
+ public RevokeDenialFromProfileHandler( ActionMenuManager a_manager )
+ {
+ m_manager = a_manager ;
+ }
+
+
+ /**
+ * Gets the Profile associated with the selection path.
+ *
+ * @param a_path the selection path
+ * @return the mutable application under which this path is associated
+ */
+ private MutableProfile getProfile( TreePath a_path )
+ {
+ MutableProfile l_profile = null ;
+
+ /*
+ * Last selected is either the 'Grants' container or the profile bean.
+ */
+ ContainmentTreeNode l_last =
+ ( ContainmentTreeNode ) a_path.getLastPathComponent() ;
+
+ if ( l_last.isContainerNode() )
+ {
+ l_profile = ( MutableProfile ) ( ( BeanTreeNode ) l_last
+ .getParent() ).getUserObject() ;
+ }
+ else
+ {
+ l_profile = ( MutableProfile ) ( ( BeanTreeNode )
+ l_last ).getUserObject() ;
+ }
+
+ return l_profile ;
+ }
+
+
+ /**
+ * Checks to see if a permission is selected so we will show a single menu
+ * item in this case instead of an entire submenu.
+ *
+ * @param a_path the path to the selected node
+ * @return true if the selected node is a permission node false otherwise
+ */
+ private boolean isPermSelected( TreePath a_path )
+ {
+ ContainmentTreeNode l_last =
+ ( ContainmentTreeNode ) a_path.getLastPathComponent() ;
+
+ if ( l_last.isContainerNode() )
+ {
+ return false ;
+ }
+ else if ( l_last.getContainmentMetadata().getTypeClass()
+ .isAssignableFrom( BitPermission.class ) )
+ {
+ return true ;
+ }
+
+ return false ;
+ }
+
+
+ /**
+ * Gets the selected permission.
+ *
+ * @param a_path the path to the selected permission
+ * @return the select mutable bit permission
+ */
+ private MutableBitPermission getPermission( TreePath a_path )
+ {
+ ContainmentTreeNode l_last =
+ ( ContainmentTreeNode ) a_path.getLastPathComponent() ;
+ return ( MutableBitPermission ) l_last.getUserObject() ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see java.awt.event.ActionListener#actionPerformed(
+ * java.awt.event.ActionEvent)
+ */
+ public void actionPerformed( ActionEvent e )
+ {
+ String l_cmd = e.getActionCommand() ;
+
+ if ( l_cmd.startsWith( ACTION_COMMAND ) )
+ {
+ TreePath l_path = m_manager.getSelectedPath() ;
+ String l_permName = StringUtils.split( l_cmd, '|' )[1] ;
+ MutableProfile l_profile = null ;
+ BeanTreeNode l_permNode = null ;
+ ContainerTreeNode l_denials = null ;
+ BeanTreeNode l_profileNode = null ;
+
+
+ if ( isPermSelected( l_path ) )
+ {
+ l_permNode = ( BeanTreeNode ) l_path.getLastPathComponent() ;
+ l_denials = m_manager.getLastContainer() ;
+ l_profileNode = ( BeanTreeNode ) l_denials.getParent() ;
+ l_profile = ( MutableProfile ) l_profileNode.getUserObject() ;
+ }
+ else
+ {
+ l_profile = getProfile( l_path ) ;
+
+ if ( l_path.getLastPathComponent() instanceof BeanTreeNode )
+ {
+ // we selected a role node so we need to get child grants
+ l_denials = ( ( BeanTreeNode ) l_path
+ .getLastPathComponent() )
+ .getContainerChild( "Denials" ) ;
+ }
+ else
+ {
+ // we selected the grants node so we just get last container
+ l_denials = m_manager.getLastContainer() ;
+ }
+ l_profileNode = ( BeanTreeNode ) l_denials.getParent() ;
+
+ for ( int ii = 0; ii < l_denials.getChildCount(); ii++ )
+ {
+ BeanTreeNode l_child = ( BeanTreeNode )
+ l_denials.getChildAt( ii ) ;
+ BitPermission l_perm = ( BitPermission )
+ l_child.getUserObject() ;
+
+ if ( l_perm.getName().equals( l_permName ) )
+ {
+ l_permNode = l_child ;
+ break ;
+ }
+ }
+ }
+
+ try
+ {
+ l_profile.revokeDenial( l_permName ) ;
+ }
+ catch( RmsException ex )
+ {
+ String l_msg = "We failed to revoke the permission "
+ + l_permName + " from user " + l_profile.getUserName()
+ + "'s profile for application "
+ + l_profile.getApplicationName()
+ + " for the following reasons: "
+ + ExceptionUtils.getFullStackTrace( ex ) ;
+ JTextArea l_text = new JTextArea( l_msg ) ;
+ l_text.setEnabled( false ) ;
+ JScrollPane l_comp = new JScrollPane( l_text,
+ JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
+ JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED ) ;
+ l_comp.getViewport().setPreferredSize(
+ new Dimension( 640, 240 ) ) ;
+ JOptionPane.showMessageDialog( null , l_comp,
+ "Failed to Revoke Permission From Profile",
+ JOptionPane.ERROR_MESSAGE ) ;
+ return ;
+ }
+
+ m_manager.getTreeModel().removeNodeFromParent( l_permNode ) ;
+
+ l_profileNode.refresh() ;
+ m_manager.getTreeModel().nodeStructureChanged( l_profileNode ) ;
+
+ m_manager.buildMenus() ;
+ }
+ }
+
+
+ /*
+ * This method is invoked when the Grants of a role is selected or a role
+ * itself is selected.
+ *
+ * (non-Javadoc)
+ * @see org.apache.rms.ui.actions.SubMenuHandler#getSubMenu(javax.swing.tree.TreePath,
+ * org.apache.rms.ui.ocmm.Action)
+ */
+ public JMenuItem getSubMenu( TreePath a_path, Action a_action )
+ {
+ if ( isPermSelected( a_path ) )
+ {
+ MutableBitPermission l_perm = getPermission( a_path ) ;
+ JMenuItem l_item = new JMenuItem( a_action.getName() ) ;
+ String l_cmd = a_action.getCommand() + "|" + l_perm.getName() ;
+ l_item.setActionCommand( l_cmd ) ;
+ l_item.setToolTipText( "Revoke denial " + l_perm.getName() ) ;
+ l_item.addActionListener( this ) ;
+ l_item.setIcon( Images.load( a_action.getIcon() ) ) ;
+ return l_item ;
+ }
+
+ JMenu l_menu = new JMenu( a_action.getName() ) ;
+ MutableProfile l_profile = getProfile( a_path ) ;
+
+ l_menu.setIcon( Images.load( a_action.getIcon() ) ) ;
+ l_menu.setToolTipText( "Revoke a denial from user "
+ + l_profile.getUserName() + "'s profile for application "
+ + l_profile.getApplicationName() ) ;
+
+ ArrayList l_items = new ArrayList() ;
+ Iterator l_list = l_profile.getDenials() ;
+ while ( l_list.hasNext() )
+ {
+ l_items.add( l_list.next() ) ;
+ }
+
+ for ( int ii = 0; ii < l_items.size(); ii++ )
+ {
+ BitPermission l_item = ( BitPermission ) l_items.get( ii ) ;
+ JMenuItem l_menuItem = new JMenuItem( l_item.getName() ) ;
+ l_menu.add( l_menuItem ) ;
+
+ String l_cmd = a_action.getCommand() + "|" + l_item.getName() ;
+ l_menuItem.setActionCommand( l_cmd ) ;
+ l_menuItem.setToolTipText( "Revoke denial " + l_item.getName()
+ + " from user " + l_profile.getUserName()
+ + "'s profile for application "
+ + l_profile.getApplicationName() ) ;
+ l_menuItem.addActionListener( this ) ;
+ l_menuItem.setIcon( Images.load( a_action.getIcon() ) ) ;
+ }
+
+ return l_menu ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuHandler#getCommand()
+ */
+ public String getCommand()
+ {
+ return ACTION_COMMAND ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuHandler#handles(org.apache.rms.ui.ocmm.Action)
+ */
+ public boolean handles( Action action )
+ {
+ return action.getCommand().equals( ACTION_COMMAND ) ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuHandler#isForItem()
+ */
+ public boolean isForItem()
+ {
+ return false ;
+ }
+}
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/RevokeGrantFromProfileHandler.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/RevokeGrantFromProfileHandler.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,315 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.actions ;
+
+
+import java.util.Iterator ;
+import java.awt.Dimension ;
+import java.util.ArrayList ;
+import java.awt.event.ActionEvent ;
+
+import javax.swing.JMenu ;
+import javax.swing.JMenuItem ;
+import javax.swing.JTextArea ;
+import javax.swing.JOptionPane ;
+import javax.swing.JScrollPane ;
+import javax.swing.tree.TreePath ;
+
+import org.apache.commons.lang.StringUtils ;
+import org.apache.commons.lang.exception.ExceptionUtils ;
+
+import org.apache.rms.ui.Images ;
+import org.apache.rms.ui.ocmm.Action ;
+import org.apache.rms.RmsException ;
+import org.apache.rms.BitPermission ;
+import org.apache.rms.ui.ActionMenuManager ;
+import org.apache.rms.spi.MutableProfile ;
+import org.apache.rms.ui.navtree.BeanTreeNode ;
+import org.apache.rms.ui.navtree.ContainerTreeNode ;
+import org.apache.rms.spi.MutableBitPermission ;
+import org.apache.rms.ui.navtree.ContainmentTreeNode ;
+
+
+/**
+ * Handler for 'RevokeGrantFromProfile' ActionEvent commands.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class RevokeGrantFromProfileHandler implements SubMenuHandler
+{
+ public static final String ACTION_COMMAND = "RevokeGrantFromProfile" ;
+ private final ActionMenuManager m_manager ;
+
+
+ /**
+ * Creates a 'RevokeGrantFromProfile' action command handler.
+ *
+ * @param a_manager the handler for the command.
+ */
+ public RevokeGrantFromProfileHandler( ActionMenuManager a_manager )
+ {
+ m_manager = a_manager ;
+ }
+
+
+ /**
+ * Gets the Profile associated with the selection path.
+ *
+ * @param a_path the selection path
+ * @return the mutable application under which this path is associated
+ */
+ private MutableProfile getProfile( TreePath a_path )
+ {
+ MutableProfile l_profile = null ;
+
+ /*
+ * Last selected is either the 'Grants' container or the profile bean.
+ */
+ ContainmentTreeNode l_last =
+ ( ContainmentTreeNode ) a_path.getLastPathComponent() ;
+
+ if ( l_last.isContainerNode() )
+ {
+ l_profile = ( MutableProfile ) ( ( BeanTreeNode ) l_last
+ .getParent() ).getUserObject() ;
+ }
+ else
+ {
+ l_profile = ( MutableProfile ) ( ( BeanTreeNode )
+ l_last ).getUserObject() ;
+ }
+
+ return l_profile ;
+ }
+
+
+ /**
+ * Checks to see if a permission is selected so we will show a single menu
+ * item in this case instead of an entire submenu.
+ *
+ * @param a_path the path to the selected node
+ * @return true if the selected node is a permission node false otherwise
+ */
+ private boolean isPermSelected( TreePath a_path )
+ {
+ ContainmentTreeNode l_last =
+ ( ContainmentTreeNode ) a_path.getLastPathComponent() ;
+
+ if ( l_last.isContainerNode() )
+ {
+ return false ;
+ }
+ else if ( l_last.getContainmentMetadata().getTypeClass()
+ .isAssignableFrom( BitPermission.class ) )
+ {
+ return true ;
+ }
+
+ return false ;
+ }
+
+
+ /**
+ * Gets the selected permission.
+ *
+ * @param a_path the path to the selected permission
+ * @return the select mutable bit permission
+ */
+ private MutableBitPermission getPermission( TreePath a_path )
+ {
+ ContainmentTreeNode l_last =
+ ( ContainmentTreeNode ) a_path.getLastPathComponent() ;
+ return ( MutableBitPermission ) l_last.getUserObject() ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see java.awt.event.ActionListener#actionPerformed(
+ * java.awt.event.ActionEvent)
+ */
+ public void actionPerformed( ActionEvent e )
+ {
+ String l_cmd = e.getActionCommand() ;
+
+ if ( l_cmd.startsWith( ACTION_COMMAND ) )
+ {
+ TreePath l_path = m_manager.getSelectedPath() ;
+ String l_permName = StringUtils.split( l_cmd, '|' )[1] ;
+ MutableProfile l_profile = null ;
+ BeanTreeNode l_permNode = null ;
+ ContainerTreeNode l_grants = null ;
+ BeanTreeNode l_profileNode = null ;
+
+ if ( isPermSelected( l_path ) )
+ {
+ l_permNode = ( BeanTreeNode ) l_path.getLastPathComponent() ;
+ l_grants = m_manager.getLastContainer() ;
+ l_profileNode = ( BeanTreeNode ) l_grants.getParent() ;
+ l_profile = ( MutableProfile ) l_profileNode.getUserObject() ;
+ }
+ else
+ {
+ l_profile = getProfile( l_path ) ;
+
+ if ( l_path.getLastPathComponent() instanceof BeanTreeNode )
+ {
+ // we selected a role node so we need to get child grants
+ l_grants = ( ( BeanTreeNode ) l_path
+ .getLastPathComponent() )
+ .getContainerChild( "Grants" ) ;
+ }
+ else
+ {
+ // we selected the grants node so we just get last container
+ l_grants = m_manager.getLastContainer() ;
+ }
+ l_profileNode = ( BeanTreeNode ) l_grants.getParent() ;
+
+ for ( int ii = 0; ii < l_grants.getChildCount(); ii++ )
+ {
+ BeanTreeNode l_child = ( BeanTreeNode )
+ l_grants.getChildAt( ii ) ;
+ BitPermission l_perm = ( BitPermission )
+ l_child.getUserObject() ;
+
+ if ( l_perm.getName().equals( l_permName ) )
+ {
+ l_permNode = l_child ;
+ break ;
+ }
+ }
+ }
+
+ try
+ {
+ l_profile.revokeGrant( l_permName ) ;
+ }
+ catch( RmsException ex )
+ {
+ String l_msg = "We failed to revoke the permission "
+ + l_permName + " from user " + l_profile.getUserName()
+ + "'s profile for application "
+ + l_profile.getApplicationName()
+ + " for the following reasons: "
+ + ExceptionUtils.getFullStackTrace( ex ) ;
+ JTextArea l_text = new JTextArea( l_msg ) ;
+ l_text.setEnabled( false ) ;
+ JScrollPane l_comp = new JScrollPane( l_text,
+ JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
+ JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED ) ;
+ l_comp.getViewport().setPreferredSize(
+ new Dimension( 640, 240 ) ) ;
+ JOptionPane.showMessageDialog( null , l_comp,
+ "Failed to Revoke Permission From Profile",
+ JOptionPane.ERROR_MESSAGE ) ;
+ return ;
+ }
+
+ m_manager.getTreeModel().removeNodeFromParent( l_permNode ) ;
+
+ l_profileNode.refresh() ;
+ m_manager.getTreeModel().nodeStructureChanged( l_profileNode ) ;
+
+ m_manager.buildMenus() ;
+ }
+ }
+
+
+ /*
+ * This method is invoked when the Grants of a role is selected or a role
+ * itself is selected.
+ *
+ * (non-Javadoc)
+ * @see org.apache.rms.ui.actions.SubMenuHandler#getSubMenu(javax.swing.tree.TreePath,
+ * org.apache.rms.ui.ocmm.Action)
+ */
+ public JMenuItem getSubMenu( TreePath a_path, Action a_action )
+ {
+ if ( isPermSelected( a_path ) )
+ {
+ MutableBitPermission l_perm = getPermission( a_path ) ;
+ JMenuItem l_item = new JMenuItem( a_action.getName() ) ;
+ String l_cmd = a_action.getCommand() + "|" + l_perm.getName() ;
+ l_item.setActionCommand( l_cmd ) ;
+ l_item.setToolTipText( "Revoke grant " + l_perm.getName() ) ;
+ l_item.addActionListener( this ) ;
+ l_item.setIcon( Images.load( a_action.getIcon() ) ) ;
+ return l_item ;
+ }
+
+ JMenu l_menu = new JMenu( a_action.getName() ) ;
+ MutableProfile l_profile = getProfile( a_path ) ;
+
+ l_menu.setIcon( Images.load( a_action.getIcon() ) ) ;
+ l_menu.setToolTipText( "Revoke a grant from user "
+ + l_profile.getUserName() + "'s profile for application "
+ + l_profile.getApplicationName() ) ;
+
+ ArrayList l_items = new ArrayList() ;
+ Iterator l_list = l_profile.getGrants() ;
+ while ( l_list.hasNext() )
+ {
+ l_items.add( l_list.next() ) ;
+ }
+
+ for ( int ii = 0; ii < l_items.size(); ii++ )
+ {
+ BitPermission l_item = ( BitPermission ) l_items.get( ii ) ;
+ JMenuItem l_menuItem = new JMenuItem( l_item.getName() ) ;
+ l_menu.add( l_menuItem ) ;
+
+ String l_cmd = a_action.getCommand() + "|" + l_item.getName() ;
+ l_menuItem.setActionCommand( l_cmd ) ;
+ l_menuItem.setToolTipText( "Revoke grant " + l_item.getName()
+ + " from user " + l_profile.getUserName()
+ + "'s profile for application "
+ + l_profile.getApplicationName() ) ;
+ l_menuItem.addActionListener( this ) ;
+ l_menuItem.setIcon( Images.load( a_action.getIcon() ) ) ;
+ }
+
+ return l_menu ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuHandler#getCommand()
+ */
+ public String getCommand()
+ {
+ return ACTION_COMMAND ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuHandler#handles(org.apache.rms.ui.ocmm.Action)
+ */
+ public boolean handles( Action action )
+ {
+ return action.getCommand().equals( ACTION_COMMAND ) ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuHandler#isForItem()
+ */
+ public boolean isForItem()
+ {
+ return false ;
+ }
+}
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/RevokePermissionFromRoleHandler.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/RevokePermissionFromRoleHandler.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,337 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.actions ;
+
+
+import java.util.Iterator ;
+import java.util.ArrayList ;
+
+import java.awt.Dimension ;
+import java.awt.event.ActionEvent ;
+
+import javax.swing.JMenu ;
+import javax.swing.JMenuItem ;
+import javax.swing.JTextArea ;
+import javax.swing.JOptionPane ;
+import javax.swing.JScrollPane ;
+import javax.swing.tree.TreePath ;
+
+import org.apache.commons.lang.StringUtils ;
+import org.apache.commons.lang.exception.ExceptionUtils ;
+
+import org.apache.rms.User ;
+import org.apache.rms.ui.Images ;
+import org.apache.rms.ui.ocmm.Action ;
+import org.apache.rms.RmsException ;
+import org.apache.rms.BitPermission ;
+import org.apache.rms.spi.MutableRole ;
+import org.apache.rms.ui.ActionMenuManager ;
+import org.apache.rms.ui.navtree.BeanTreeNode ;
+import org.apache.rms.ui.navtree.ContainerTreeNode ;
+import org.apache.rms.spi.MutableBitPermission ;
+import org.apache.rms.ui.navtree.ContainmentTreeNode ;
+
+
+/**
+ * Handler for 'RevokePermissionFromRole' ActionEvent commands.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class RevokePermissionFromRoleHandler implements SubMenuHandler
+{
+ public static final String ACTION_COMMAND = "RevokePermissionFromRole" ;
+ private final ActionMenuManager m_manager ;
+
+
+ /**
+ * Creates a 'RevokePermissionFromRole' action command handler.
+ *
+ * @param a_manager the handler for the command.
+ */
+ public RevokePermissionFromRoleHandler( ActionMenuManager a_manager )
+ {
+ m_manager = a_manager ;
+ }
+
+
+ /**
+ * Gets the role associated with the selection path
+ *
+ * @param a_path the selection path
+ * @return the mutable role under which this path is associated
+ */
+ private MutableRole getRole( TreePath a_path )
+ {
+ MutableRole l_role = null ;
+
+ ContainmentTreeNode l_last =
+ ( ContainmentTreeNode ) a_path.getLastPathComponent() ;
+ if ( l_last instanceof ContainerTreeNode )
+ {
+ l_role = ( MutableRole )
+ ( ( BeanTreeNode ) l_last.getParent() ).getUserObject() ;
+ }
+ else
+ {
+ l_role = ( MutableRole ) l_last.getUserObject() ;
+ }
+
+ return l_role ;
+ }
+
+
+ /**
+ * Checks to see if a permission is selected so we will show a single menu
+ * item in this case instead of an entire submenu.
+ *
+ * @param a_path the path to the selected node
+ * @return true if the selected node is a permission node false otherwise
+ */
+ private boolean isPermSelected( TreePath a_path )
+ {
+ ContainmentTreeNode l_last =
+ ( ContainmentTreeNode ) a_path.getLastPathComponent() ;
+
+ if ( l_last.isContainerNode() )
+ {
+ return false ;
+ }
+ else if ( l_last.getContainmentMetadata().getTypeClass()
+ .isAssignableFrom( BitPermission.class ) )
+ {
+ return true ;
+ }
+
+ return false ;
+ }
+
+
+ /**
+ * Gets the selected permission.
+ *
+ * @param a_path the path to the selected permission
+ * @return the select mutable bit permission
+ */
+ private MutableBitPermission getPermission( TreePath a_path )
+ {
+ ContainmentTreeNode l_last =
+ ( ContainmentTreeNode ) a_path.getLastPathComponent() ;
+ return ( MutableBitPermission ) l_last.getUserObject() ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see java.awt.event.ActionListener#actionPerformed(
+ * java.awt.event.ActionEvent)
+ */
+ public void actionPerformed( ActionEvent e )
+ {
+ String l_cmd = e.getActionCommand() ;
+
+ if ( l_cmd.startsWith( ACTION_COMMAND ) )
+ {
+ TreePath l_path = m_manager.getSelectedPath() ;
+ String l_permName = StringUtils.split( l_cmd, '|' )[1] ;
+ MutableRole l_role = null ;
+ BeanTreeNode l_permNode = null ;
+ ContainerTreeNode l_grants = null ;
+
+
+ if ( isPermSelected( l_path ) )
+ {
+ l_permNode = ( BeanTreeNode ) l_path.getLastPathComponent() ;
+ l_grants = m_manager.getLastContainer() ;
+ l_role = ( MutableRole ) ( ( BeanTreeNode )
+ l_grants.getParent() ).getUserObject() ;
+ }
+ else
+ {
+ l_role = getRole( l_path ) ;
+
+ if ( l_path.getLastPathComponent() instanceof BeanTreeNode )
+ {
+ // we selected a role node so we need to get child grants
+ l_grants = ( ( BeanTreeNode ) l_path
+ .getLastPathComponent() )
+ .getContainerChild( "Grants" ) ;
+ }
+ else
+ {
+ // we selected the grants node so we just get last container
+ l_grants = m_manager.getLastContainer() ;
+ }
+
+ for ( int ii = 0; ii < l_grants.getChildCount(); ii++ )
+ {
+ BeanTreeNode l_child = ( BeanTreeNode )
+ l_grants.getChildAt( ii ) ;
+ BitPermission l_perm = ( BitPermission )
+ l_child.getUserObject() ;
+
+ if ( l_perm.getName().equals( l_permName ) )
+ {
+ l_permNode = l_child ;
+ break ;
+ }
+ }
+ }
+
+ try
+ {
+ l_role.revoke( l_permName ) ;
+ }
+ catch( RmsException ex )
+ {
+ String l_msg = "We failed to revoke the permission "
+ + l_permName + " for Role " + l_role.getName()
+ + " for the following reasons: "
+ + ExceptionUtils.getFullStackTrace( ex ) ;
+ JTextArea l_text = new JTextArea( l_msg ) ;
+ l_text.setEnabled( false ) ;
+ JScrollPane l_comp = new JScrollPane( l_text,
+ JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
+ JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED ) ;
+ l_comp.getViewport().setPreferredSize(
+ new Dimension( 640, 240 ) ) ;
+ JOptionPane.showMessageDialog( null , l_comp,
+ "Failed to Revoke Permission From Role",
+ JOptionPane.ERROR_MESSAGE ) ;
+ return ;
+ }
+
+ m_manager.getTreeModel().removeNodeFromParent( l_permNode ) ;
+ m_manager.buildMenus() ;
+
+ /*
+ * Profiles listen as Observers of DefaultRoles which extends the
+ * Observable class. Changes to roles automatically result in
+ * effective permission calculations this way in profiles if the
+ * provider implementation handles the Observer.update() calls
+ * correctly. All we now need to do is refresh the profile nodes
+ * so they display the correct permissions for roles and the correct
+ * effective permissions.
+ *
+ * We need to find all the profile nodes of users that are in the
+ * role that just changed by having the grant removed. We must call
+ * refresh on these nodes and let the tree model announce a
+ * structural change to the tree at those nodes.
+ */
+ BeanTreeNode l_root = ( BeanTreeNode )
+ m_manager.getTreeModel().getRoot() ;
+ ContainerTreeNode l_users = ( ContainerTreeNode )
+ l_root.getContainerChild( "Users" ) ;
+
+ for ( int ii = 0; ii < l_users.getChildCount(); ii++ )
+ {
+ BeanTreeNode node = ( BeanTreeNode ) l_users.getChildAt( ii ) ;
+ User user = ( User ) node.getUserObject() ;
+
+ if ( user.hasProfile( l_role.getApplicationName() ) )
+ {
+ user.getProfile( l_role.getApplicationName() ).hasRole(
+ l_role ) ;
+
+ // We'll just update the user node
+ node.refresh() ;
+ m_manager.getTreeModel().nodeStructureChanged( node ) ;
+ }
+ }
+ }
+ }
+
+
+ /*
+ * This method is invoked when the Grants of a role is selected or a role
+ * itself is selected.
+ *
+ * (non-Javadoc)
+ * @see org.apache.rms.ui.actions.SubMenuHandler#getSubMenu(javax.swing.tree.TreePath,
+ * org.apache.rms.ui.ocmm.Action)
+ */
+ public JMenuItem getSubMenu( TreePath a_path, Action a_action )
+ {
+ if ( isPermSelected( a_path ) )
+ {
+ MutableBitPermission l_perm = getPermission( a_path ) ;
+ JMenuItem l_item = new JMenuItem( a_action.getName() ) ;
+ String l_cmd = a_action.getCommand() + "|" + l_perm.getName() ;
+ l_item.setActionCommand( l_cmd ) ;
+ l_item.setToolTipText( "Revoke permission " + l_perm.getName() ) ;
+ l_item.addActionListener( this ) ;
+ l_item.setIcon( Images.load( a_action.getIcon() ) ) ;
+ return l_item ;
+ }
+
+ JMenu l_menu = new JMenu( a_action.getName() ) ;
+ MutableRole l_role = getRole( a_path ) ;
+
+ l_menu.setIcon( Images.load( a_action.getIcon() ) ) ;
+ l_menu.setToolTipText( "Revoke a permission from role "
+ + l_role.getName() ) ;
+
+ ArrayList l_items = new ArrayList() ;
+ Iterator l_list = l_role.getGrants() ;
+ while ( l_list.hasNext() )
+ {
+ l_items.add( l_list.next() ) ;
+ }
+
+ for ( int ii = 0; ii < l_items.size(); ii++ )
+ {
+ BitPermission l_item = ( BitPermission ) l_items.get( ii ) ;
+ JMenuItem l_menuItem = new JMenuItem( l_item.getName() ) ;
+ l_menu.add( l_menuItem ) ;
+
+ String l_cmd = a_action.getCommand() + "|" + l_item.getName() ;
+ l_menuItem.setActionCommand( l_cmd ) ;
+ l_menuItem.setToolTipText( "Revoke permission " + l_item.getName()
+ + " from Role " + l_role.getName() ) ;
+ l_menuItem.addActionListener( this ) ;
+ l_menuItem.setIcon( Images.load( a_action.getIcon() ) ) ;
+ }
+
+ return l_menu ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuHandler#getCommand()
+ */
+ public String getCommand()
+ {
+ return ACTION_COMMAND ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuHandler#handles(org.apache.rms.ui.ocmm.Action)
+ */
+ public boolean handles( Action action )
+ {
+ return action.getCommand().equals( ACTION_COMMAND ) ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.actions.MenuHandler#isForItem()
+ */
+ public boolean isForItem()
+ {
+ return false ;
+ }
+}
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/SubMenuHandler.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/actions/SubMenuHandler.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.actions ;
+
+
+import javax.swing.JMenuItem ;
+import javax.swing.tree.TreePath ;
+
+import org.apache.rms.ui.ocmm.Action ;
+
+
+/**
+ * Some handler's are very special since they manage sub menu's as opposed to
+ * single menu items.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public interface SubMenuHandler extends MenuHandler
+{
+ /**
+ * Gets a new submenu for associated with this handler.
+ *
+ * @param path the path to the selected component
+ * @param action the action
+ * @return the submenu
+ */
+ JMenuItem getSubMenu( TreePath path, Action action ) ;
+}
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/closefile.gif
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/help.gif
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/.cvsignore
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/.cvsignore Wed Apr 7 18:57:22 2004
@@ -0,0 +1 @@
+Thumbs.db
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/add2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/application.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/application_add.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/application_delete.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/application_new.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/application_server.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/at.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/bullet_ball_blue.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/bullet_ball_glass_blue.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/bullet_ball_glass_green.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/bullet_ball_glass_red.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/bullet_ball_glass_yellow.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/bullet_ball_green.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/bullet_ball_red.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/bullet_ball_yellow.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/bullet_square_blue.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/bullet_square_green.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/bullet_square_red.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/bullet_square_yellow.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/bullet_triangle_blue.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/bullet_triangle_green.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/bullet_triangle_red.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/bullet_triangle_yellow.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/delete2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/earth.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/earth_lock.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/environment.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/goblet_bronze.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/goblet_gold.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/goblet_gold_add.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/goblet_gold_delete.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/goblet_gold_new.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/goblet_gold_preferences.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/goblet_silver.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/home.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/id_card.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/id_card2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/id_card_add.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/id_card_delete.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/id_card_error.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/id_card_information.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/id_card_new.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/id_card_ok.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/id_card_preferences.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/id_card_view.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/id_card_warning.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/id_cards.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/joypad.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/key1.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/key1_add.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/key1_delete.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/key1_preferences.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/key2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/keys.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/replace2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/user1.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/user1_add.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/user1_delete.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/user1_preferences.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/user1_refresh.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/users1.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/users2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/users3.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/users3_preferences.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/users_back.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/users_family.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/woman1.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/woman2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/woman3.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/woman4.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/plain/worker.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/.cvsignore
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/.cvsignore Wed Apr 7 18:57:22 2004
@@ -0,0 +1 @@
+Thumbs.db
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/add2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/application.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/application_add.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/application_delete.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/application_new.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/application_server.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/at.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/bullet_ball_blue.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/bullet_ball_glass_blue.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/bullet_ball_glass_green.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/bullet_ball_glass_red.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/bullet_ball_glass_yellow.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/bullet_ball_green.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/bullet_ball_red.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/bullet_ball_yellow.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/bullet_square_blue.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/bullet_square_green.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/bullet_square_red.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/bullet_square_yellow.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/bullet_triangle_blue.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/bullet_triangle_green.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/bullet_triangle_red.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/bullet_triangle_yellow.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/delete2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/earth.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/earth_lock.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/environment.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/goblet_bronze.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/goblet_gold.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/goblet_gold_add.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/goblet_gold_delete.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/goblet_gold_new.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/goblet_gold_preferences.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/goblet_silver.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/home.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/id_card.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/id_card2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/id_card_add.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/id_card_delete.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/id_card_error.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/id_card_information.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/id_card_new.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/id_card_ok.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/id_card_preferences.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/id_card_view.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/id_card_warning.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/id_cards.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/joypad.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/key1.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/key1_add.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/key1_delete.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/key1_preferences.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/key2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/keys.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/replace2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/user1.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/user1_add.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/user1_delete.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/user1_preferences.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/user1_refresh.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/users1.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/users2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/users3.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/users3_preferences.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/users_back.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/users_family.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/woman1.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/woman2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/woman3.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/woman4.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/16x16/shadow/worker.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/.cvsignore
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/.cvsignore Wed Apr 7 18:57:22 2004
@@ -0,0 +1 @@
+Thumbs.db
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/add2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/application.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/application_add.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/application_delete.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/application_new.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/application_server.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/at.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/bullet_ball_blue.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/bullet_ball_glass_blue.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/bullet_ball_glass_green.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/bullet_ball_glass_red.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/bullet_ball_glass_yellow.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/bullet_ball_green.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/bullet_ball_red.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/bullet_ball_yellow.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/bullet_square_blue.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/bullet_square_green.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/bullet_square_red.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/bullet_square_yellow.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/bullet_triangle_blue.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/bullet_triangle_green.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/bullet_triangle_red.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/bullet_triangle_yellow.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/delete2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/earth.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/earth_lock.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/environment.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/goblet_bronze.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/goblet_gold.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/goblet_gold_add.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/goblet_gold_delete.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/goblet_gold_new.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/goblet_gold_preferences.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/goblet_silver.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/home.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/id_card.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/id_card2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/id_card_add.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/id_card_delete.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/id_card_error.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/id_card_information.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/id_card_new.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/id_card_ok.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/id_card_preferences.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/id_card_view.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/id_card_warning.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/id_cards.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/joypad.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/key1.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/key1_add.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/key1_delete.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/key1_preferences.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/key2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/keys.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/replace2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/user1.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/user1_add.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/user1_delete.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/user1_preferences.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/user1_refresh.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/users1.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/users2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/users3.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/users3_preferences.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/users_back.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/users_family.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/woman1.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/woman2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/woman3.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/woman4.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/plain/worker.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/.cvsignore
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/.cvsignore Wed Apr 7 18:57:22 2004
@@ -0,0 +1 @@
+Thumbs.db
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/add2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/application.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/application_add.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/application_delete.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/application_new.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/application_server.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/at.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/bullet_ball_blue.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/bullet_ball_glass_blue.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/bullet_ball_glass_green.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/bullet_ball_glass_red.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/bullet_ball_glass_yellow.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/bullet_ball_green.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/bullet_ball_red.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/bullet_ball_yellow.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/bullet_square_blue.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/bullet_square_green.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/bullet_square_red.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/bullet_square_yellow.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/bullet_triangle_blue.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/bullet_triangle_green.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/bullet_triangle_red.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/bullet_triangle_yellow.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/delete2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/earth.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/earth_lock.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/environment.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/goblet_bronze.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/goblet_gold.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/goblet_gold_add.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/goblet_gold_delete.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/goblet_gold_new.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/goblet_gold_preferences.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/goblet_silver.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/home.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/id_card.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/id_card2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/id_card_add.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/id_card_delete.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/id_card_error.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/id_card_information.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/id_card_new.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/id_card_ok.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/id_card_preferences.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/id_card_view.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/id_card_warning.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/id_cards.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/joypad.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/key1.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/key1_add.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/key1_delete.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/key1_preferences.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/key2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/keys.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/replace2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/user1.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/user1_add.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/user1_delete.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/user1_preferences.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/user1_refresh.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/users1.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/users2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/users3.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/users3_family.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/users3_preferences.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/users_back.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/woman1.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/woman2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/woman3.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/woman4.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/24x24/shadow/worker.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/.cvsignore
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/.cvsignore Wed Apr 7 18:57:22 2004
@@ -0,0 +1 @@
+Thumbs.db
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/add2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/application.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/application_add.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/application_delete.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/application_new.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/application_server.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/at.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/bullet_ball_blue.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/bullet_ball_glass_blue.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/bullet_ball_glass_green.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/bullet_ball_glass_red.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/bullet_ball_glass_yellow.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/bullet_ball_green.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/bullet_ball_red.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/bullet_ball_yellow.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/bullet_square_blue.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/bullet_square_green.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/bullet_square_red.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/bullet_square_yellow.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/bullet_triangle_blue.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/bullet_triangle_green.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/bullet_triangle_red.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/bullet_triangle_yellow.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/delete2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/earth.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/earth_lock.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/environment.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/goblet_bronze.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/goblet_gold.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/goblet_gold_add.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/goblet_gold_delete.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/goblet_gold_new.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/goblet_gold_preferences.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/goblet_silver.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/home.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/id_card.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/id_card2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/id_card_add.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/id_card_delete.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/id_card_error.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/id_card_information.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/id_card_new.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/id_card_ok.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/id_card_preferences.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/id_card_view.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/id_card_warning.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/id_cards.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/joypad.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/key1.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/key1_add.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/key1_delete.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/key1_preferences.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/key2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/keys.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/replace2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/user1.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/user1_add.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/user1_delete.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/user1_preferences.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/user1_refresh.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/users1.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/users2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/users3.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/users3_preferences.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/users_back.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/users_family.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/woman1.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/woman2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/woman3.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/woman4.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/plain/worker.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/.cvsignore
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/.cvsignore Wed Apr 7 18:57:22 2004
@@ -0,0 +1 @@
+Thumbs.db
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/add2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/application.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/application_add.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/application_delete.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/application_new.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/application_server.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/at.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/bullet_ball_blue.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/bullet_ball_glass_blue.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/bullet_ball_glass_green.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/bullet_ball_glass_red.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/bullet_ball_glass_yellow.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/bullet_ball_green.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/bullet_ball_red.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/bullet_ball_yellow.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/bullet_square_blue.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/bullet_square_green.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/bullet_square_red.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/bullet_square_yellow.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/bullet_triangle_blue.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/bullet_triangle_green.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/bullet_triangle_red.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/bullet_triangle_yellow.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/delete2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/earth.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/earth_lock.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/environment.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/goblet_bronze.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/goblet_gold.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/goblet_gold_add.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/goblet_gold_delete.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/goblet_gold_new.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/goblet_gold_preferences.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/goblet_silver.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/home.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/id_card.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/id_card2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/id_card_add.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/id_card_delete.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/id_card_error.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/id_card_information.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/id_card_new.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/id_card_ok.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/id_card_preferences.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/id_card_view.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/id_card_warning.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/id_cards.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/joypad.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/key1.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/key1_add.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/key1_delete.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/key1_preferences.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/key2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/keys.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/replace2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/user1.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/user1_add.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/user1_delete.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/user1_preferences.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/user1_refresh.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/users1.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/users2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/users3.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/users3_preferences.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/users_back.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/users_family.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/woman1.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/woman2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/woman3.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/woman4.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/32x32/shadow/worker.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/.cvsignore
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/.cvsignore Wed Apr 7 18:57:22 2004
@@ -0,0 +1 @@
+Thumbs.db
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/add2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/application.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/application_add.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/application_delete.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/application_new.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/application_server.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/at.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/bullet_ball_blue.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/bullet_ball_glass_blue.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/bullet_ball_glass_green.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/bullet_ball_glass_red.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/bullet_ball_glass_yellow.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/bullet_ball_green.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/bullet_ball_red.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/bullet_ball_yellow.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/bullet_square_blue.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/bullet_square_green.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/bullet_square_red.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/bullet_square_yellow.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/bullet_triangle_blue.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/bullet_triangle_green.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/bullet_triangle_red.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/bullet_triangle_yellow.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/delete2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/earth_lock.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/environment.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/goblet_bronze.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/goblet_gold.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/goblet_gold_add.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/goblet_gold_delete.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/goblet_gold_new.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/goblet_gold_preferences.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/goblet_silver.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/home.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/id_card.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/id_card2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/id_card_add.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/id_card_delete.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/id_card_error.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/id_card_information.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/id_card_new.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/id_card_ok.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/id_card_preferences.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/id_card_view.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/id_card_warning.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/id_cards.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/joypad.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/key1.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/key1_add.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/key1_delete.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/key1_preferences.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/key2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/keys.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/replace2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/user1.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/user1_add.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/user1_delete.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/user1_preferences.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/user1_refresh.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/users1.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/users2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/users3.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/users3_preferences.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/users_back.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/users_family.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/woman1.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/woman2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/woman3.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/woman4.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/plain/worker.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/.cvsignore
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/.cvsignore Wed Apr 7 18:57:22 2004
@@ -0,0 +1 @@
+Thumbs.db
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/add2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/application.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/application_add.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/application_delete.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/application_new.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/application_server.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/at.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/bullet_ball_blue.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/bullet_ball_glass_blue.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/bullet_ball_glass_green.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/bullet_ball_glass_red.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/bullet_ball_glass_yellow.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/bullet_ball_green.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/bullet_ball_red.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/bullet_ball_yellow.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/bullet_square_blue.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/bullet_square_green.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/bullet_square_red.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/bullet_square_yellow.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/bullet_triangle_blue.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/bullet_triangle_green.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/bullet_triangle_red.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/bullet_triangle_yellow.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/delete2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/earth_lock.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/environment.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/goblet_bronze.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/goblet_gold.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/goblet_gold_add.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/goblet_gold_delete.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/goblet_gold_new.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/goblet_gold_preferences.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/goblet_silver.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/home.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/id_card.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/id_card2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/id_card_add.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/id_card_delete.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/id_card_error.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/id_card_information.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/id_card_new.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/id_card_ok.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/id_card_preferences.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/id_card_view.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/id_card_warning.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/id_cards.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/joypad.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/key1.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/key1_add.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/key1_delete.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/key1_preferences.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/key2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/keys.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/replace2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/user1.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/user1_add.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/user1_delete.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/user1_preferences.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/user1_refresh.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/users1.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/users2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/users3.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/users3_preferences.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/users_back.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/users_family.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/woman1.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/woman2.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/woman3.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/woman4.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/48x48/shadow/worker.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/images/status.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/src/java/org/apache/rms/ui/openfile.gif
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/xdocs/images/mmc.png
==============================================================================
Binary file. No diff available.
Added: incubator/directory/rms/trunk/gui/main/xdocs/index.xml
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/xdocs/index.xml Wed Apr 7 18:57:22 2004
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document>
+ <body>
+ <properties>
+ <author email="akarasulu@apache.org">Alex Karasulu</author>
+ <title>RMS Management Console (RMC)</title>
+ </properties>
+
+ <section name="RMS Management Console">
+ <p>
+ Welcome to the RMS Management Console Home Page!
+ </p>
+ <p>
+ The RMS Management Console or RMC is used to manage the entities within
+ a realm. Applications, users, profiles, permissions, roles et. cetera.
+ are managed by environment operators using this console application
+ which directly alters the authoritative RMS datastore.
+ </p>
+ </section>
+ </body>
+</document>
\ No newline at end of file
Added: incubator/directory/rms/trunk/gui/main/xdocs/navigation.xml
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/xdocs/navigation.xml Wed Apr 7 18:57:22 2004
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <title>RMS Management Console (RMC)</title>
+ <body>
+ <links>
+ <item name="RMS" href="http://openrms.sourceforge.net"/>
+ <item name="RMS" href="http://openrms.sourceforge.net"/>
+ </links>
+
+ <menu name="About RMC">
+ <item name="Requirements" href="requirements.html"/>
+ <item name="Random Thoughts" href="requirements.html"/>
+ </menu>
+ </body>
+</project>
\ No newline at end of file
Added: incubator/directory/rms/trunk/gui/main/xdocs/requirements.xml
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/xdocs/requirements.xml Wed Apr 7 18:57:22 2004
@@ -0,0 +1,209 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document>
+ <body>
+ <properties>
+ <author email="akarasulu@apache.org">Alex Karasulu</author>
+ <title>Rms Management Console Requirements</title>
+ </properties>
+
+ <section name="Rms Management Console Requirements">
+ <subsection name="UI Description">
+ <p>
+ The UI will be designed to resemble the Microsoft Management Console
+ (MMC) application. Snap-ins for the Rms console like MMC snap-ins
+ will have other snap-ins associated with them heirarchically. The
+ snap-ins and their heirarchy will be displayed like the MMC in a tree
+ on the left hand side of a split pane.
+ </p>
+
+ <p>
+ On the right hand side of the split pane plugins can display within a
+ table any information they would like. Basically selecting a plugin
+ node in the tree hands over control of this area to the right to that
+ plugin. The plugin may populate the table with what ever content it
+ needs as well as change the popup menus triggered on the cells of the
+ table.
+ </p>
+
+ <p>
+ On the tree display when expanding a plugin it is upto the plugin to
+ return the set of child plugins to display. Each subordinate plugin
+ when selected displays rows in the table to the right of the split
+ pan in accordance with the context of the plugin. Here's what the
+ MMC looks like to show the kind of UI we are talking about:
+ </p>
+ <center><img src="images/mmc.png"/></center>
+ </subsection>
+ <subsection name="Design Aspects">
+ <p>
+ A main application is required as a baseline where plugins can be
+ snapped in. The main UI and the plugins should all be IoC enabled
+ components. There will be initially two plugins: one to manage users
+ and another to manage applications.
+ </p>
+
+ <p>
+ Let's explore the application plugin. This plugin when selected
+ will list the set of applications in the system within the
+ table to the right hand side. If the plugin's node in the tree on the
+ left hand side is expanded then all the applications are displayed in
+ the tree. When application nodes are selected they display two
+ containers: one for roles and another for permissions. When expanded
+ the application node displays these two child nodes. When these nodes
+ are selected the set or roles or permissions respectively are listed
+ within the table to the right. Also when expanded these nodes display
+ the roles or permissions respectively within the tree on the left.
+ </p>
+
+ <p>
+ The user plugin will enable the management of users and user
+ application authorization profiles. The plugin when expanded in the
+ tree will list the set of users. When selected the table to the right
+ will display these users as rows in the table. Users when expanded
+ will display profiles for various applications in the system. Each
+ profile will then display containers for the roles, grants and denials
+ of permissions in the associated application for that profile.
+ </p>
+ </subsection>
+ </section>
+ <section name="Random Thoughts On Tree Based Navigation">
+ <p>
+ The main console application will need to expose access to its tree
+ and table realestate. I have no idea on how this could be done right
+ now. Perhaps its best to explore what a standard UI design would
+ entail and then refactor that to use plugins. That's probably the
+ best approach to weed out the better plugin based design.
+ </p>
+
+ <subsection name="Navigation Based on Database Metadata">
+ <p>
+ We need to build a tree model based on the contents of the database.
+ Basically clicking on an application's roles tree node should list
+ the roles in the application. We have a drill down mechanism with
+ the tree to explore RMS contents. Not every node in the tree can be
+ logically inferred or can it? Take for example the containers of
+ objects like roles and permissions - can we infer the need to create
+ the container for these objects that are of zero to many cardinality
+ in relation to the application? They really can be but its a PITA to
+ do this with reflection or reading the database's meta data to devise
+ a generic navigation just for this small set of object types.
+ </p>
+
+ <p>
+ For the heck of it let's just explore the idea of building a tree
+ navigator that uses database metadata. Such a navigator must be given
+ a set of seed tables. These seed tables are the child nodes right
+ under the root of the tree. The metadata is used to determine the
+ tables that have a foreign key to the seed table. For simplicity, let
+ us automatically presume the cardinality of the fk relation to always
+ be zero or more. This way every child table with a fk automatically
+ represents a container node under the parent table. This container
+ node will contain the records of the child table within it. The fk
+ relations to the children will also be evaluated to determine their
+ child containers as well.
+ </p>
+
+ <p>
+ This sounding pretty cool now. Let's step through the events of
+ exploring the application seed node. The application node is
+ represented as a container with the label 'applications'. Expanding
+ this branch node lists all the applications by name under it. These
+ applications can in turn be expanded to display two child containers
+ labeled, 'roles' and 'permissions'. Expanding the permissions
+ container would list the set of permissions associated with the
+ application. The permissions themselves are terminal and cannot be
+ expanded. Expansion of the roles container displays the roles of the
+ user. Now each role is referenced by a user profile but we do not
+ want to display the user profile under each role or do we? Also roles
+ have grants but these grants are a hunk of binary data that cannot be
+ displayed appropriately using this scheme based on database metadata.
+ A special editor is required to display the actual list of grants
+ rather than this blob of binary data. These are the areas that are
+ gray with respect to this technique.
+ </p>
+
+ <p>
+ Furthermore we need a way to determine how to name container nodes and
+ the labels of the records they use. A mapping is required to
+ associate a container label for a table and a container child node
+ label for each row in that table. The container label is easy. The
+ container label map just says for table 'FOO', name the container
+ 'Foos' and if there is an 'S' or 's' at the end of the table name then
+ don't add the extra 's' for the container name. Now the child nodes
+ in the container can be named using a map that specifies the column
+ value to use as the container's unique name for the child node. So
+ for a role the ROLE_NAME column could be used. In this case the value
+ for the ROLE_NAME would be used to name the child node in the roles
+ container.
+ </p>
+ </subsection>
+ <subsection name="Navigation Based on Object Model Metadata">
+ <p>
+ This database metadata based navigation takes us to the records of
+ interest. But keep in mind we really should not be dealing with
+ database records or constructs at this point. We should be using the
+ value objects created from the database.
+ </p>
+ <p>
+ So then where does this leave us. Well we now have to deal with
+ reflection to understand the containment heirarchy. The metadata
+ we're looking for is now based on class and interface information
+ which we use reflection to get to. This may actually be better for us
+ because it reduces some of the complications of the database metadata
+ based navigation above. For example the issue of flowing over into
+ profiles because of a fk to the APP_ROLES table from the
+ USER_APP_PROFILE_ROLES table is no longer there. The Role interface
+ does not allow access to the profiles that reference the Role. Also
+ the Role grants which are efficiently stored in the database as binary
+ data no longer represent scaler quantities. They become containers
+ that can reveal the set of permissions granted to the role or those
+ that are associated with the role. So we actually gain more from the
+ padding that reflection on interfaces gives us when building such a
+ navigation system.
+ </p>
+
+ <p>
+ There are however some problems that will result. The relationships
+ between objects are often not so clear when container classes are
+ used to return objects rather than using arrays of those class
+ instances. Take for example return types using an Iterator. The
+ type of the underlying objects returned is lost. We have to infer
+ the type based on some naming convention or provide some extra meta
+ information.
+ </p>
+
+ <p>
+ Let's conduct the same exercise using reflection for navigation rather
+ than using database metadata. Again some seed information is
+ required for the first teir of child nodes under the root of the tree.
+ When using database metadata the seeds were table names, which allowed
+ the lookup of records in those tables when the container for the table
+ was expanded. The seeds for reflection require a class or interface
+ name as well as a factory like object for listing the set of objects
+ that implement that interface. The RMS top level facade will be that
+ factory but I don't think we should use that. Instead a new set of
+ factories should be created to return these objects. Even for objects
+ that are returned by the parent we should expose these 'factories'.
+ Perhaps a 'factory' is not a good term for these objects that help
+ operate on the containment trees of other objects. These peer
+ factories or what ever could also provide extra hints and meta data
+ not easily inferred through reflection regarding the composition of
+ the class the factory is dedicated to. Basically the factory can
+ either describe or clarify which functions to use to acquire child
+ objects or a listing for them so reflection can proceed. The factory
+ can also provide other things like menus and editors for child
+ elements and so on.
+ </p>
+
+ <p>
+ This route is sounding much better now. There is a well defined node
+ type helper or container class defined (the helper factory thingy we
+ talked about above). An instance of this class is registered for each
+ data type involved in the containment hierary. Any objects that do
+ not have registered helper containers for their classes or interfaces
+ are deamed scalar objects and are not expandable as container objects.
+ </p>
+ </subsection>
+ </section>
+ </body>
+</document>
\ No newline at end of file
Added: incubator/directory/rms/trunk/gui/main/xdocs/rt.xml
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/main/xdocs/rt.xml Wed Apr 7 18:57:22 2004
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document>
+ <properties>
+ <author email="akarasulu@apache.org">Alex Karasulu</author>
+ <title>Random Thoughts</title>
+ </properties>
+
+ <body>
+ <section name="Random Thoughts">
+
+ <subsection name="30-JAN-2004: Experiment with Navigation">
+ <p>
+ I'm just going to implement a brut force tree navigation for now which
+ can later be refactored into something more elegant. Here are my
+ reasons for this:
+ </p>
+ <ul>
+ <li>
+ Forgot swing stuff and need to get refamiliarized before I can draw
+ out an elaborate design around these APIs to make the navigation more
+ generic.
+ </li>
+ <li>
+ Brute force code will be faster to write and I can start taking notes
+ as ideas come up about where to take the design.
+ </li>
+ <li>
+ Can always refactor!
+ </li>
+ </ul>
+ </subsection>
+
+ </section>
+ </body>
+</document>
Added: incubator/directory/rms/trunk/gui/navtree/.classpath
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/navtree/.classpath Wed Apr 7 18:57:22 2004
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src/java"/>
+ <classpathentry kind="var" path="JRE_LIB" sourcepath="JRE_SRC"/>
+ <classpathentry kind="var" path="MAVEN_REPO/commons-lang/jars/commons-lang-2.0.jar"/>
+ <classpathentry kind="var" path="MAVEN_REPO/commons-collections/jars/commons-collections-3.0.jar"/>
+ <classpathentry kind="var" path="MAVEN_REPO/commons-beanutils/jars/commons-beanutils-1.6.jar"/>
+ <classpathentry kind="src" path="/rms-gui-ocmm-api"/>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
Added: incubator/directory/rms/trunk/gui/navtree/.project
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/navtree/.project Wed Apr 7 18:57:22 2004
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>rms-gui-navtree</name>
+ <comment>The RMS Management Console has to the left of a split pane a navigation tree showing the object model for the domain. This project contains the code for that navigation tree.</comment>
+ <projects>
+ <project>rms-gui-ocmm-api</project>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
Added: incubator/directory/rms/trunk/gui/navtree/navtree.iml
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/navtree/navtree.iml Wed Apr 7 18:57:22 2004
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module version="4" relativePaths="false">
+ <component name="ModuleRootManager" />
+ <component name="NewModuleRootManager">
+ <output url="file://$MODULE_DIR$/target/classes" />
+ <exclude-output />
+ <content url="file://$MODULE_DIR$">
+ <sourceFolder url="file://$MODULE_DIR$/src/java" isTestSource="false" />
+ </content>
+ <orderEntry type="inheritedJdk" />
+ <orderEntry type="sourceFolder" forTests="false" />
+ <orderEntry type="library" name="junit-3.8.1.jar" level="application" />
+ <orderEntry type="module" module-name="ocmm-api" />
+ <orderEntry type="module" module-name="ocmm-impl" />
+ <orderEntry type="module" module-name="ocmm-spi" />
+ <orderEntry type="library" name="commons-beanutils-1.6.jar" level="application" />
+ <orderEntry type="library" name="commons-collections-3.0.jar" level="application" />
+ </component>
+</module>
+
Added: incubator/directory/rms/trunk/gui/navtree/project.xml
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/navtree/project.xml Wed Apr 7 18:57:22 2004
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<project>
+ <extend>${basedir}/../../project.xml</extend>
+ <id>rms-gui-navtree</id>
+ <name>RMS Management Console Navigation Tree</name>
+ <package>org.apache.rms.ui.navtree</package>
+ <currentVersion>SNAPSHOT</currentVersion>
+
+ <shortDescription>RMS Management Console Navigation Tree</shortDescription>
+ <description>
+ The RMS Management Console has to the left of a split pane a navigation
+ tree showing the object model for the domain. This project contains
+ the code for that navigation tree.
+ </description>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ <version>2.0</version>
+ <url>http://jakarta.apache.com/commons/lang</url>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-collections</groupId>
+ <artifactId>commons-collections</artifactId>
+ <version>3.0</version>
+ <url>http://jakarta.apache.com/commons/collections</url>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-beanutils</groupId>
+ <artifactId>commons-beanutils</artifactId>
+ <version>1.6</version>
+ <url>http://jakarta.apache.com/commons/collections</url>
+ </dependency>
+
+ <dependency>
+ <groupId>incubator-directory</groupId>
+ <artifactId>rms-gui-ocmm-api</artifactId>
+ <version>SNAPSHOT</version>
+ <url>http://openrms.sourceforge.net/rms/gui/ocmm/api</url>
+ </dependency>
+
+ </dependencies>
+</project>
+
+
Added: incubator/directory/rms/trunk/gui/navtree/src/java/org/apache/rms/ui/navtree/BeanTreeNode.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/navtree/src/java/org/apache/rms/ui/navtree/BeanTreeNode.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,192 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.navtree ;
+
+
+import javax.swing.tree.DefaultMutableTreeNode ;
+
+import java.lang.reflect.InvocationTargetException ;
+
+import org.apache.commons.beanutils.BeanUtils ;
+
+import org.apache.rms.ui.ocmm.Container ;
+import org.apache.rms.ui.ocmm.ContainmentModel ;
+import org.apache.rms.ui.ocmm.ContainmentMetadata ;
+
+
+/**
+ * A node holding a bean.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class BeanTreeNode extends DefaultMutableTreeNode
+ implements ContainmentTreeNode
+{
+ // private final TreeNode m_parent ;
+ private final ContainmentMetadata m_metadata ;
+ private final ContainmentModel m_model ;
+
+
+ /**
+ * Creates a TreeNode containing a bean in the containment model.
+ *
+ * @param a_bean the bean representing this node
+ * @param a_model the containment model
+ */
+ public BeanTreeNode( Object a_bean, ContainmentModel a_model )
+ {
+ super( a_bean, true ) ;
+ m_metadata = a_model.getMetadata( a_bean.getClass() ) ;
+ m_model = a_model ;
+
+ init() ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see javax.swing.tree.TreeNode#getAllowsChildren()
+ */
+ public boolean getAllowsChildren()
+ {
+ return ! m_metadata.isLeaf() ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see javax.swing.tree.TreeNode#isLeaf()
+ */
+ public boolean isLeaf()
+ {
+ return m_metadata.isLeaf() ;
+ }
+
+
+ public String toString()
+ {
+ String l_key = m_metadata.getKeyedBy() ;
+ if ( m_metadata.isKeyedByProperty() )
+ {
+ try
+ {
+ return BeanUtils.getProperty( getUserObject(), l_key ) ;
+ }
+ catch( NoSuchMethodException e )
+ {
+ e.printStackTrace() ;
+ }
+ catch( IllegalAccessException e )
+ {
+ e.printStackTrace() ;
+ }
+ catch( InvocationTargetException e )
+ {
+ e.printStackTrace() ;
+ }
+
+ return "FAILED-NAME-PROPERTY-LOOKUP" ;
+ }
+ else
+ {
+ return l_key ;
+ }
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.navtree.ContainmentTreeNode#getContainmentMetadata()
+ */
+ public ContainmentMetadata getContainmentMetadata()
+ {
+ return m_metadata ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.navtree.ContainmentTreeNode#isBeanNode()
+ */
+ public boolean isBeanNode()
+ {
+ return true ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.navtree.ContainmentTreeNode#isContainerNode()
+ */
+ public boolean isContainerNode()
+ {
+ return false ;
+ }
+
+
+ /**
+ * Gets a child container node by name.
+ *
+ * @param a_name the name of the child container node
+ * @return the child container tree node
+ */
+ public ContainerTreeNode getContainerChild( String a_name )
+ {
+ ContainerTreeNode l_ctn = null ;
+
+ for ( int ii = 0; ii < getChildCount(); ii++ )
+ {
+ l_ctn = ( ContainerTreeNode ) getChildAt( ii ) ;
+ if ( l_ctn.getContainer().getName().equalsIgnoreCase( a_name ) )
+ {
+ return l_ctn ;
+ }
+ }
+
+ return l_ctn ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.navtree.ContainmentTreeNode#refresh()
+ */
+ public void init()
+ {
+ if ( ! m_metadata.isLeaf() )
+ {
+ Container[] l_containers = m_metadata.getContainers() ;
+ for ( int ii = 0; ii < l_containers.length; ii++ )
+ {
+ ContainerTreeNode l_child = new ContainerTreeNode( this,
+ l_containers[ii], m_model ) ;
+ add( l_child ) ;
+ l_child.setParent( this ) ;
+ }
+ }
+ }
+
+
+ public void refresh()
+ {
+ if ( ! m_metadata.isLeaf() )
+ {
+ Container[] l_containers = m_metadata.getContainers() ;
+ for ( int ii = 0; ii < l_containers.length; ii++ )
+ {
+ ContainerTreeNode l_child =
+ ( ContainerTreeNode ) getChildAt( ii ) ;
+ l_child.refresh() ;
+ }
+ }
+ }
+}
Added: incubator/directory/rms/trunk/gui/navtree/src/java/org/apache/rms/ui/navtree/ContainerTreeNode.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/navtree/src/java/org/apache/rms/ui/navtree/ContainerTreeNode.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,276 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.navtree ;
+
+
+import java.util.Vector ;
+import java.util.HashSet ;
+import java.util.Iterator ;
+
+import javax.swing.tree.MutableTreeNode ;
+import javax.swing.tree.DefaultMutableTreeNode ;
+
+import org.apache.commons.beanutils.PropertyUtils ;
+import org.apache.commons.collections.IteratorUtils ;
+import org.apache.commons.collections.CollectionUtils ;
+
+import org.apache.rms.ui.ocmm.Container ;
+import org.apache.rms.ui.ocmm.ContainmentModel ;
+import org.apache.rms.ui.ocmm.ContainmentMetadata ;
+
+
+/**
+ * A container node.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class ContainerTreeNode extends DefaultMutableTreeNode
+ implements ContainmentTreeNode
+{
+ private final ContainmentMetadata m_metadata ;
+ private final ContainmentModel m_model ;
+ private final Container m_container ;
+ private BeanTreeNode m_parent ;
+
+
+ /**
+ * Creates a container tree node based on a container of objects under a
+ * parent using a containment model.
+ *
+ * @param parent the parent of this node
+ * @param container the container this node is associated with
+ * @param model the containment model to use while creating children
+ */
+ public ContainerTreeNode( BeanTreeNode parent, Container container,
+ ContainmentModel model )
+ {
+ super( container, true ) ;
+ m_container = container ;
+ m_metadata = model.getMetadata( m_container.getContainedType() ) ;
+ m_model = model ;
+ m_parent = parent ;
+
+ init() ;
+ }
+
+
+ /**
+ * Gets an iteration over the set of contained elements.
+ *
+ * @return the iteration over contained elements
+ */
+ private Iterator getIterator( Object bean )
+ {
+ Object l_retval = null ;
+ String l_prop = m_container.getIterationProperty() ;
+
+ try
+ {
+ l_retval = PropertyUtils.getProperty( bean, l_prop ) ;
+ }
+ catch( Exception e )
+ {
+ e.printStackTrace() ;
+ }
+
+ return IteratorUtils.getIterator( l_retval ) ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see javax.swing.tree.TreeNode#getAllowsChildren()
+ */
+ public boolean getAllowsChildren()
+ {
+ return true ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see javax.swing.tree.TreeNode#isLeaf()
+ */
+ public boolean isLeaf()
+ {
+ return false ;
+ }
+
+
+ /*
+ * (non-Javadoc)
+ * @see java.lang.Object#toString()
+ */
+ public String toString()
+ {
+ return m_container.getName() ;
+ }
+
+
+ /**
+ * Gets the container this node represents.
+ *
+ * @return the container for this node.
+ */
+ public Container getContainer()
+ {
+ return m_container ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.navtree.ContainmentTreeNode#getContainmentMetadata()
+ */
+ public ContainmentMetadata getContainmentMetadata()
+ {
+ return m_metadata ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.navtree.ContainmentTreeNode#getUserObject()
+ */
+ public Object getUserObject()
+ {
+ return m_container ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.navtree.ContainmentTreeNode#isBeanNode()
+ */
+ public boolean isBeanNode()
+ {
+ return false ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.navtree.ContainmentTreeNode#isContainerNode()
+ */
+ public boolean isContainerNode()
+ {
+ return true ;
+ }
+
+
+ /*
+ * (non-Javadoc)
+ * @see javax.swing.tree.MutableTreeNode#setParent(
+ * javax.swing.tree.MutableTreeNode)
+ */
+ public void setParent( MutableTreeNode node )
+ {
+ super.setParent( node ) ;
+ m_parent = ( BeanTreeNode ) node ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.navtree.ContainmentTreeNode#refresh()
+ */
+ public void init()
+ {
+ Iterator l_list = getIterator( m_parent.getUserObject() ) ;
+ while( l_list.hasNext() )
+ {
+ BeanTreeNode l_child = null ;
+ Object l_bean = l_list.next() ;
+
+ if ( l_bean != null )
+ {
+ l_child = new BeanTreeNode( l_bean, m_model ) ;
+ }
+ else
+ {
+ continue ;
+ }
+
+ add( l_child ) ;
+ l_child.setParent( this ) ;
+ }
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.navtree.ContainmentTreeNode#refresh()
+ */
+ public void refresh()
+ {
+ HashSet l_set = new HashSet() ;
+ CollectionUtils.addAll( l_set,
+ getIterator( m_parent.getUserObject() ) ) ;
+
+ if ( l_set.isEmpty() )
+ {
+ removeAllChildren() ;
+ }
+
+ /*
+ * If there are children start looking for ones to delete. Any child
+ * that is not within the set of newly queried children l_set is to be
+ * removed from the children vector. To do this properly the vector
+ * must be cloned while deleting.
+ */
+ if ( getChildCount() != 0 )
+ {
+ // Clone the children so we can delete while iterating.
+ Vector l_current = ( Vector ) children.clone() ;
+
+ for ( int ii = 0; ii < l_current.size(); ii++ )
+ {
+ BeanTreeNode l_childNode = ( BeanTreeNode ) l_current.get( ii ) ;
+
+ // remove children we already have from the set but leave child
+ if ( l_set.contains( l_childNode.getUserObject() ) )
+ {
+ l_set.remove( l_childNode.getUserObject() ) ;
+ }
+ // children not present in the set are removed
+ else
+ {
+ // removal of a child shifts elements above one pos down
+ remove( l_childNode ) ;
+ }
+
+ l_childNode.refresh() ;
+ }
+ }
+
+ /*
+ * what ever is left in the set after this process must be added to
+ * this node as new children - so we build and add them here:
+ */
+ Iterator l_list = l_set.iterator() ;
+ while( l_list.hasNext() )
+ {
+ BeanTreeNode l_child = null ;
+ Object l_bean = l_list.next() ;
+
+ if ( l_bean != null )
+ {
+ l_child = new BeanTreeNode( l_bean, m_model ) ;
+ }
+ else
+ {
+ continue ;
+ }
+
+ add( l_child ) ;
+ l_child.setParent( this ) ;
+ }
+ }
+}
Added: incubator/directory/rms/trunk/gui/navtree/src/java/org/apache/rms/ui/navtree/ContainmentTreeNode.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/navtree/src/java/org/apache/rms/ui/navtree/ContainmentTreeNode.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,72 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.navtree ;
+
+
+import javax.swing.tree.MutableTreeNode ;
+import org.apache.rms.ui.ocmm.ContainmentMetadata ;
+
+
+/**
+ * The interface supported by all TreeNodes in a containment tree.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public interface ContainmentTreeNode extends MutableTreeNode
+{
+ /**
+ * Tests whether or not this node is a node that contains a bean instead of
+ * a collection of beans.
+ *
+ * @return true if node contains a bean, false if node contains a collection
+ */
+ boolean isBeanNode() ;
+
+ /**
+ * Tests whether or not this node contains a collection of beans.
+ *
+ * @return true if node contains a collection of beans, false if it is
+ * just a bean node.
+ */
+ boolean isContainerNode() ;
+
+ /**
+ * Gets the object associated with this node. If this is a container of
+ * beans it should return the Container object. If this is a bean node then
+ * it should return the bean. If access to the contained beans of a
+ * container node is needed then the child nodes can be gotten.
+ *
+ * @return the bean or a Container for a collection of beans.
+ */
+ Object getUserObject() ;
+
+ /**
+ * Gets the containment information for the bean's class if this is a bean
+ * node or the containment information for the class of the contained beans
+ * if this is a container node.
+ *
+ * @return the ContainmnetMetadata for the bean class of this node or the
+ * bean class of the beans contained by this node.
+ */
+ ContainmentMetadata getContainmentMetadata() ;
+
+ /**
+ * Refreshes this node.
+ */
+ void refresh() ;
+}
Added: incubator/directory/rms/trunk/gui/ocmm/api/.classpath
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/ocmm/api/.classpath Wed Apr 7 18:57:22 2004
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src/java"/>
+ <classpathentry kind="var" path="JRE_LIB" sourcepath="JRE_SRC"/>
+ <classpathentry kind="var" path="MAVEN_REPO/commons-lang/jars/commons-lang-2.0.jar"/>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
Added: incubator/directory/rms/trunk/gui/ocmm/api/.project
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/ocmm/api/.project Wed Apr 7 18:57:22 2004
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<projectDescription>
+ <name>rms-gui-ocmm-api</name>
+ <comment>
+ </comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
\ No newline at end of file
Added: incubator/directory/rms/trunk/gui/ocmm/api/maven.log
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/ocmm/api/maven.log Wed Apr 7 18:57:22 2004
@@ -0,0 +1,331 @@
+2004-04-06 15:14:21,179 INFO org.apache.maven.plugin.PluginManager - Initializing Plugins!
+2004-04-06 15:14:21,226 INFO org.apache.maven.plugin.PluginManager - Unpacking plugins from directory --> j:\apache\maven\maven-1.0-beta-10\plugins
+2004-04-06 15:14:21,336 INFO org.apache.maven.plugin.PluginManager - Processing unpacked plugins in C:\Documents and Settings\akarasulu\.maven\plugins
+2004-04-06 15:14:21,336 INFO org.apache.maven.plugin.PluginManager - Processing Plugin: maven-deploy-plugin-1.1
+2004-04-06 15:14:21,492 INFO org.apache.maven.plugin.PluginManager - Processing Plugin: maven-plexus-plugin-0.2
+2004-04-06 15:14:21,523 INFO org.apache.maven.plugin.PluginManager - Processing Plugin: maven-runner-plugin-0.2
+2004-04-06 15:14:21,539 INFO org.apache.maven.plugin.PluginManager - Processing Plugin: maven-sea-plugin-1.0
+2004-04-06 15:14:21,539 INFO org.apache.maven.plugin.PluginManager - Processing Plugin: maven-vdoclet-plugin-1.0
+2004-04-06 15:14:21,539 INFO org.apache.maven.plugin.PluginCacheManager - Saving caches to C:\Documents and Settings\akarasulu\.maven\plugins
+2004-04-06 15:14:21,586 INFO org.apache.maven.plugin.PluginManager - Finished initializing Plugins!
+2004-04-06 15:14:25,070 WARN org.apache.commons.jelly.expression.jexl.JexlExpression - Caught exception evaluating: org.apache.commons.jexl.ExpressionImpl@1d33a6b. Reason: java.lang.NumberFormatException: For input string: "includes"
+java.lang.NumberFormatException: For input string: "includes"
+ at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
+ at java.lang.Integer.parseInt(Integer.java:468)
+ at java.lang.Integer.valueOf(Integer.java:574)
+ at org.apache.commons.jexl.util.Coercion.coerceInteger(Coercion.java:95)
+ at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:177)
+ at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:104)
+ at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:106)
+ at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:88)
+ at org.apache.commons.jexl.parser.ASTNotNode.value(ASTNotNode.java:88)
+ at org.apache.commons.jexl.parser.ASTExpression.value(ASTExpression.java:85)
+ at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:123)
+ at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:115)
+ at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$ExpressionSupportLocal.evaluate(JexlExpressionFactory.java:168)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:106)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsBoolean(ExpressionSupport.java:116)
+ at org.apache.commons.jelly.tags.core.WhenTag.doTag(WhenTag.java:90)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.ChooseTag.doTag(ChooseTag.java:84)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.ProjectTag.doTag(ProjectTag.java:112)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:112)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:139)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:734)
+ at org.apache.maven.plugin.PluginManager.prepDynamicTagLib(PluginManager.java:611)
+ at org.apache.maven.plugin.PluginManager.prepDynaTagLibs(PluginManager.java:586)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:686)
+ at org.apache.maven.plugin.PluginManager.loadPlugins(PluginManager.java:766)
+ at org.apache.maven.plugin.PluginManager.prepForCallbacks(PluginManager.java:554)
+ at org.apache.maven.plugin.PluginManager.prepForGoal(PluginManager.java:525)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:415)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:348)
+ at org.apache.maven.cli.App.doMain(App.java:525)
+ at org.apache.maven.cli.App.main(App.java:1088)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:324)
+ at com.werken.forehead.Forehead.run(Forehead.java:543)
+ at com.werken.forehead.Forehead.main(Forehead.java:573)
+2004-04-06 15:14:25,070 WARN org.apache.commons.jelly.expression.jexl.JexlExpression - Caught exception evaluating: org.apache.commons.jexl.ExpressionImpl@7976c1. Reason: java.lang.NumberFormatException: For input string: "excludes"
+java.lang.NumberFormatException: For input string: "excludes"
+ at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
+ at java.lang.Integer.parseInt(Integer.java:468)
+ at java.lang.Integer.valueOf(Integer.java:574)
+ at org.apache.commons.jexl.util.Coercion.coerceInteger(Coercion.java:95)
+ at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:177)
+ at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:104)
+ at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:106)
+ at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:88)
+ at org.apache.commons.jexl.parser.ASTNotNode.value(ASTNotNode.java:88)
+ at org.apache.commons.jexl.parser.ASTExpression.value(ASTExpression.java:85)
+ at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:123)
+ at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:115)
+ at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$ExpressionSupportLocal.evaluate(JexlExpressionFactory.java:168)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:106)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsBoolean(ExpressionSupport.java:116)
+ at org.apache.commons.jelly.tags.core.WhenTag.doTag(WhenTag.java:90)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.ChooseTag.doTag(ChooseTag.java:84)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.ProjectTag.doTag(ProjectTag.java:112)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:112)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:139)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:734)
+ at org.apache.maven.plugin.PluginManager.prepDynamicTagLib(PluginManager.java:611)
+ at org.apache.maven.plugin.PluginManager.prepDynaTagLibs(PluginManager.java:586)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:686)
+ at org.apache.maven.plugin.PluginManager.loadPlugins(PluginManager.java:766)
+ at org.apache.maven.plugin.PluginManager.prepForCallbacks(PluginManager.java:554)
+ at org.apache.maven.plugin.PluginManager.prepForGoal(PluginManager.java:525)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:415)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:348)
+ at org.apache.maven.cli.App.doMain(App.java:525)
+ at org.apache.maven.cli.App.main(App.java:1088)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:324)
+ at com.werken.forehead.Forehead.run(Forehead.java:543)
+ at com.werken.forehead.Forehead.main(Forehead.java:573)
+2004-04-06 15:14:25,086 WARN org.apache.commons.jelly.expression.jexl.JexlExpression - Caught exception evaluating: org.apache.commons.jexl.ExpressionImpl@f892a4. Reason: java.lang.NumberFormatException: For input string: "includes"
+java.lang.NumberFormatException: For input string: "includes"
+ at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
+ at java.lang.Integer.parseInt(Integer.java:468)
+ at java.lang.Integer.valueOf(Integer.java:574)
+ at org.apache.commons.jexl.util.Coercion.coerceInteger(Coercion.java:95)
+ at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:177)
+ at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:104)
+ at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:106)
+ at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:88)
+ at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:123)
+ at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:115)
+ at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$ExpressionSupportLocal.evaluate(JexlExpressionFactory.java:168)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:106)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsIterator(ExpressionSupport.java:146)
+ at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:127)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:267)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.ProjectTag.doTag(ProjectTag.java:112)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:112)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:139)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:734)
+ at org.apache.maven.plugin.PluginManager.prepDynamicTagLib(PluginManager.java:611)
+ at org.apache.maven.plugin.PluginManager.prepDynaTagLibs(PluginManager.java:586)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:686)
+ at org.apache.maven.plugin.PluginManager.loadPlugins(PluginManager.java:766)
+ at org.apache.maven.plugin.PluginManager.prepForCallbacks(PluginManager.java:554)
+ at org.apache.maven.plugin.PluginManager.prepForGoal(PluginManager.java:525)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:415)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:348)
+ at org.apache.maven.cli.App.doMain(App.java:525)
+ at org.apache.maven.cli.App.main(App.java:1088)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:324)
+ at com.werken.forehead.Forehead.run(Forehead.java:543)
+ at com.werken.forehead.Forehead.main(Forehead.java:573)
+2004-04-06 15:14:25,086 WARN org.apache.commons.jelly.expression.jexl.JexlExpression - Caught exception evaluating: org.apache.commons.jexl.ExpressionImpl@1636e4e. Reason: java.lang.NumberFormatException: For input string: "excludes"
+java.lang.NumberFormatException: For input string: "excludes"
+ at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
+ at java.lang.Integer.parseInt(Integer.java:468)
+ at java.lang.Integer.valueOf(Integer.java:574)
+ at org.apache.commons.jexl.util.Coercion.coerceInteger(Coercion.java:95)
+ at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:177)
+ at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:104)
+ at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:106)
+ at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:88)
+ at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:123)
+ at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:115)
+ at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$ExpressionSupportLocal.evaluate(JexlExpressionFactory.java:168)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:106)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsIterator(ExpressionSupport.java:146)
+ at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:127)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:267)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.ProjectTag.doTag(ProjectTag.java:112)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:112)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:139)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:734)
+ at org.apache.maven.plugin.PluginManager.prepDynamicTagLib(PluginManager.java:611)
+ at org.apache.maven.plugin.PluginManager.prepDynaTagLibs(PluginManager.java:586)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:686)
+ at org.apache.maven.plugin.PluginManager.loadPlugins(PluginManager.java:766)
+ at org.apache.maven.plugin.PluginManager.prepForCallbacks(PluginManager.java:554)
+ at org.apache.maven.plugin.PluginManager.prepForGoal(PluginManager.java:525)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:415)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:348)
+ at org.apache.maven.cli.App.doMain(App.java:525)
+ at org.apache.maven.cli.App.main(App.java:1088)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:324)
+ at com.werken.forehead.Forehead.run(Forehead.java:543)
+ at com.werken.forehead.Forehead.main(Forehead.java:573)
+2004-04-06 15:14:26,461 WARN org.apache.commons.jelly.expression.jexl.JexlExpression - Caught exception evaluating: org.apache.commons.jexl.ExpressionImpl@63a721. Reason: java.lang.NumberFormatException: For input string: "includes"
+java.lang.NumberFormatException: For input string: "includes"
+ at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
+ at java.lang.Integer.parseInt(Integer.java:468)
+ at java.lang.Integer.valueOf(Integer.java:574)
+ at org.apache.commons.jexl.util.Coercion.coerceInteger(Coercion.java:95)
+ at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:177)
+ at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:104)
+ at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:106)
+ at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:88)
+ at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:123)
+ at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:115)
+ at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$ExpressionSupportLocal.evaluate(JexlExpressionFactory.java:168)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:106)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsBoolean(ExpressionSupport.java:116)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:87)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:267)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:205)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:145)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.impl.DynamicTag.doTag(DynamicTag.java:125)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.GoalTag$1.performAction(GoalTag.java:128)
+ at com.werken.werkz.Goal.fire(Goal.java:639)
+ at com.werken.werkz.Goal.attain(Goal.java:575)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:434)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:348)
+ at org.apache.maven.cli.App.doMain(App.java:525)
+ at org.apache.maven.cli.App.main(App.java:1088)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:324)
+ at com.werken.forehead.Forehead.run(Forehead.java:543)
+ at com.werken.forehead.Forehead.main(Forehead.java:573)
+2004-04-06 15:14:26,773 WARN org.apache.commons.jelly.expression.jexl.JexlExpression - Caught exception evaluating: org.apache.commons.jexl.ExpressionImpl@63a721. Reason: java.lang.NumberFormatException: For input string: "includes"
+java.lang.NumberFormatException: For input string: "includes"
+ at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
+ at java.lang.Integer.parseInt(Integer.java:468)
+ at java.lang.Integer.valueOf(Integer.java:574)
+ at org.apache.commons.jexl.util.Coercion.coerceInteger(Coercion.java:95)
+ at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:177)
+ at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:104)
+ at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:106)
+ at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:88)
+ at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:123)
+ at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:115)
+ at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$ExpressionSupportLocal.evaluate(JexlExpressionFactory.java:168)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:106)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsBoolean(ExpressionSupport.java:116)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:87)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:267)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:205)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:145)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.impl.DynamicTag.doTag(DynamicTag.java:125)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.GoalTag$1.performAction(GoalTag.java:128)
+ at com.werken.werkz.Goal.fire(Goal.java:639)
+ at com.werken.werkz.Goal.attain(Goal.java:575)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.WerkzProject.attainGoal(WerkzProject.java:193)
+ at com.werken.werkz.jelly.AttainGoalTag.doTag(AttainGoalTag.java:134)
+ at org.apache.maven.jelly.tags.werkz.LazyAttainGoalTag.doTag(LazyAttainGoalTag.java:107)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.GoalTag$1.performAction(GoalTag.java:128)
+ at com.werken.werkz.Goal.fire(Goal.java:639)
+ at com.werken.werkz.Goal.attain(Goal.java:575)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:434)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:348)
+ at org.apache.maven.cli.App.doMain(App.java:525)
+ at org.apache.maven.cli.App.main(App.java:1088)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:324)
+ at com.werken.forehead.Forehead.run(Forehead.java:543)
+ at com.werken.forehead.Forehead.main(Forehead.java:573)
Added: incubator/directory/rms/trunk/gui/ocmm/api/maven.xml
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/ocmm/api/maven.xml Wed Apr 7 18:57:22 2004
@@ -0,0 +1 @@
+<project default="jar:install"/>
Added: incubator/directory/rms/trunk/gui/ocmm/api/ocmm-api.iml
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/ocmm/api/ocmm-api.iml Wed Apr 7 18:57:22 2004
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module version="4" relativePaths="false">
+ <component name="ModuleRootManager" />
+ <component name="NewModuleRootManager">
+ <output url="file://$MODULE_DIR$/target/classes" />
+ <exclude-output />
+ <content url="file://$MODULE_DIR$">
+ <sourceFolder url="file://$MODULE_DIR$/src/java" isTestSource="false" />
+ </content>
+ <orderEntry type="inheritedJdk" />
+ <orderEntry type="sourceFolder" forTests="false" />
+ <orderEntry type="library" name="commons-lang-2.0.jar" level="application" />
+ </component>
+</module>
+
Added: incubator/directory/rms/trunk/gui/ocmm/api/project.xml
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/ocmm/api/project.xml Wed Apr 7 18:57:22 2004
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<project>
+ <extend>${basedir}/../project.xml</extend>
+ <id>rms-gui-ocmm-api</id>
+ <name>Obect Containment Meta Model</name>
+ <package>org.apache.rms.ui.ocmm</package>
+ <currentVersion>SNAPSHOT</currentVersion>
+ <shortDescription>
+ API for for object containment heirarchy meta data model
+ </shortDescription>
+
+ <dependencies>
+ <dependency>
+ <artifactId>commons-lang</artifactId>
+ <groupId>commons-lang</groupId>
+ <version>2.0</version>
+ </dependency>
+ </dependencies>
+</project>
Added: incubator/directory/rms/trunk/gui/ocmm/api/src/java/org/apache/rms/ui/ocmm/Action.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/ocmm/api/src/java/org/apache/rms/ui/ocmm/Action.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,70 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.ocmm ;
+
+
+/**
+ * Defines an action that can be performed.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public interface Action
+{
+ /** no contexts corresponds to all contexts - this is the default */
+ String[] ALL_CONTEXTS = new String[0] ;
+
+ /**
+ * Gets the name (a.k.a. displayed label) of this Action.
+ *
+ * @return the name of this Action
+ */
+ String getName() ;
+
+ /**
+ * Gets this Action's command String.
+ *
+ * @return this Action's command String
+ */
+ String getCommand() ;
+
+ /**
+ * Gets the contexts where this Action is applicable. If an empty array
+ * is returned and or that array equals ALL_CONEXTS then the Action is
+ * effective in all contexts. When no context is defined we default to
+ * all contexts.
+ *
+ * @return the contexts for this Action
+ */
+ String[] getContexts() ;
+
+ /**
+ * Gets a short discription for this Action.
+ *
+ * @return this Action's description
+ */
+ String getDescription() ;
+
+ /**
+ * Gets the IconUsage descriptor associated with this Action.
+ *
+ * @return the IconUsage descriptor associated with this Action
+ */
+ IconUsage getIcon() ;
+}
+
+
Added: incubator/directory/rms/trunk/gui/ocmm/api/src/java/org/apache/rms/ui/ocmm/Container.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/ocmm/api/src/java/org/apache/rms/ui/ocmm/Container.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,68 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.ocmm ;
+
+
+/**
+ * Describes a container node within a visual containment tree of a non-scalar
+ * property for a data type. Basically any objects contained by a data type
+ * with a cardinality of x or more are managed as contained objects. This
+ * interfaces describes the type of objects contained, the name for the
+ * container, and the bean property to use to access an iteration of elements
+ * contained within this container.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public interface Container
+{
+ /**
+ * Gets the name to use for the container.
+ *
+ * @return the container's name
+ */
+ String getName() ;
+
+ /**
+ * Gets the class of the types contained by this container.
+ *
+ * @return the class of the contained items
+ */
+ Class getContainedType() ;
+
+ /**
+ * Gets the property to use on the parent containing object to get an
+ * iteration over the contained set of items.
+ *
+ * @return the bean property to use to get an iteration over the elements
+ */
+ String getIterationProperty() ;
+
+ /**
+ * Gets the Actions applicable to this Container.
+ *
+ * @return the actions applicable to this Container
+ */
+ Action[] getActions() ;
+
+ /**
+ * Gets the IconUsage descriptor for this Container.
+ *
+ * @return the IconUsage descriptor for this Container
+ */
+ IconUsage getIcon() ;
+}
Added: incubator/directory/rms/trunk/gui/ocmm/api/src/java/org/apache/rms/ui/ocmm/ContainmentMetadata.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/ocmm/api/src/java/org/apache/rms/ui/ocmm/ContainmentMetadata.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,94 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.ocmm ;
+
+
+/**
+ * A metadata descriptor for how object's of a data type are to be represented
+ * in a visual containment tree.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public interface ContainmentMetadata
+{
+ /**
+ * Gets the class associated with this ContainmentMetadata.
+ *
+ * @return the class for this ContainmentMetadata
+ */
+ Class getTypeClass() ;
+
+ /**
+ * Determines whether or not objects of this data type are leaves or not.
+ *
+ * @return true if objects are leaves, false otherwise.
+ */
+ boolean isLeaf() ;
+
+ /**
+ * Gets whether or not the keyedBy value returned is the name of a bean
+ * property on the object or is a constant label to use for all objects of
+ * this type.
+ *
+ * @return true if the keyedBy value is a property name, false if it is a
+ * constant name
+ */
+ boolean isKeyedByProperty() ;
+
+ /**
+ * Gets either the name of a bean property to use for getting an objects
+ * key value or a constant name to use for all objects of the associated
+ * data type. Use the isKeyedByProperty to determine what kind of value
+ * is returned.
+ *
+ * @return the bean property name or a constant name for object keys
+ */
+ String getKeyedBy() ;
+
+ /**
+ * Gets the set of bean properties listing scalar values.
+ *
+ * @return the set of scalar bean properties.
+ */
+ String[] getScalarProperties() ;
+
+ /**
+ * Gets the containers displayed as non-leaf child nodes under objects of
+ * the associated data type. Note that if isLeaf returns true a zero length
+ * container array will be returned instead of null. If isLeaf returns
+ * false a non-zero length array will be returned.
+ *
+ * @return the containers under objects of this type
+ */
+ Container[] getContainers() ;
+
+ /**
+ * Gets the actions applicable to the data type represented by this
+ * ContainmentMetadata.
+ *
+ * @return the actions applicable to the data type
+ */
+ Action[] getActions() ;
+
+ /**
+ * Gets the set of IconUsage descriptors defined for this metadata.
+ *
+ * @return the set of IconUsage descriptors
+ */
+ IconUsage[] getIcons() ;
+}
Added: incubator/directory/rms/trunk/gui/ocmm/api/src/java/org/apache/rms/ui/ocmm/ContainmentModel.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/ocmm/api/src/java/org/apache/rms/ui/ocmm/ContainmentModel.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.ocmm ;
+
+
+/**
+ * Contains metadata for types, descibing the containment characteristics of
+ * interest to be displayed within a visual containment tree.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public interface ContainmentModel
+{
+ /**
+ * Gets containment metadata describing the manner in which the contained
+ * data type should appear in the visual containment tree.
+ *
+ * @param clazz the class to lookup containment metadata for
+ * @return the containment metadata, or null if metadata does not exist for
+ * that class
+ */
+ ContainmentMetadata getMetadata( Class clazz ) ;
+}
Added: incubator/directory/rms/trunk/gui/ocmm/api/src/java/org/apache/rms/ui/ocmm/ContextUtils.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/ocmm/api/src/java/org/apache/rms/ui/ocmm/ContextUtils.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,105 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.ocmm ;
+
+
+import org.apache.commons.lang.StringUtils ;
+
+
+/**
+ * Utility methods for dealing with contexts.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class ContextUtils
+{
+ /**
+ * Tests to see if the path is matched by a set of contexts.
+ *
+ * @param path of / separated node name to test for a match
+ * @param contexts the contexts of applicability
+ * @return true if the path is matched by the contexts, false if it does not
+ */
+ public static boolean matches( String path, String[] contexts )
+ {
+ // no context means all contexts are valid
+ if ( contexts.length == 0 )
+ {
+ return true ;
+ }
+
+ for ( int ii = 0; ii < contexts.length; ii++ )
+ {
+ if ( matches( path, contexts[ii] ) )
+ {
+ return true ;
+ }
+ }
+
+ return false ;
+ }
+
+
+ /**
+ * Tests to see if the path is matched by a context.
+ *
+ * @param path of / separated node name to test for a match
+ * @param context the context
+ * @return true if the path is matched by the context, false if it does not
+ */
+ public static boolean matches( String path, String context )
+ {
+ String[] l_comps = StringUtils.split( context, '/' ) ;
+ String[] l_pathComps = StringUtils.split( path, '/' ) ;
+
+ if ( l_pathComps.length != l_comps.length )
+ {
+ return false ;
+ }
+
+ for ( int ii = 0; ii < l_comps.length; ii++ )
+ {
+ if ( l_comps[ii].equals( "root" ) )
+ {
+ if ( l_comps.length == 1 && l_pathComps.length == 1 )
+ {
+ return true ;
+ }
+ else if ( l_comps.length > 1 && l_pathComps.length > 1 )
+ {
+ continue ;
+ }
+ else if ( l_comps.length == 1 )
+ {
+ return false ;
+ }
+ }
+
+ if ( l_comps[ii].equals( "bean" ) )
+ {
+ continue ;
+ }
+ else if ( ! l_pathComps[ii].equals( l_comps[ii] ) )
+ {
+ return false ;
+ }
+ }
+
+ return true ;
+ }
+}
Added: incubator/directory/rms/trunk/gui/ocmm/api/src/java/org/apache/rms/ui/ocmm/DefaultAction.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/ocmm/api/src/java/org/apache/rms/ui/ocmm/DefaultAction.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,166 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.ocmm ;
+
+
+import org.apache.commons.lang.Validate ;
+
+
+/**
+ * A defualt Action bean.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class DefaultAction implements Action
+{
+ /** the icon for this Action */
+ private final IconUsage m_icon ;
+ /** the name of this Action */
+ private final String m_name ;
+ /** the command for this Action */
+ private final String m_command ;
+ /** the contexts this Action is applied to */
+ private final String[] m_contexts ;
+ /** a description for this Action */
+ private String m_description ;
+
+
+ /**
+ * Creates a default Action using all the required properties.
+ *
+ * If the contexts are null or set to an empty array the contexts property
+ * is set to Action.ALL_CONTEXTS to denote this Action's being applicable
+ * to all contexts.
+ *
+ * @param name the name of this Action
+ * @param command the command for this Action
+ * @param contexts the contexts this Action is applied to
+ * @param description a description for this Action
+ * @param icon the icon for this Action
+ * @see Action.ALL_CONTEXTS
+ */
+ public DefaultAction( String name, String command, String[] contexts,
+ String description, IconUsage icon )
+ {
+ Validate.notNull( name, "Action must have non-null name" ) ;
+ m_name = name ;
+
+ Validate.notNull( command, "Action must have non-null command" ) ;
+ m_command = command ;
+
+ if ( contexts != null && contexts.length > 0 )
+ {
+ m_contexts = contexts ;
+ }
+ else
+ {
+ m_contexts = ALL_CONTEXTS ;
+ }
+
+ m_description = description ;
+ m_icon = icon ;
+ }
+
+
+ /**
+ * Creates a default Action without a description.
+ *
+ * If the contexts are null or set to an empty array the contexts property
+ * is set to Action.ALL_CONTEXTS to denote this Action's being applicable
+ * to all contexts.
+ *
+ * @param a_name
+ * @param a_command
+ * @param a_contexts
+ * @see Action.ALL_CONTEXTS
+ */
+ public DefaultAction( String a_name, String a_command, String[] a_contexts )
+ {
+ this( a_name, a_command, a_contexts, null, null ) ;
+ }
+
+
+ /**
+ * Creates a default Action without a description applied to all contexts.
+ *
+ * @param a_name
+ * @param a_command
+ * @see Action.ALL_CONTEXTS
+ */
+ public DefaultAction( String a_name, String a_command )
+ {
+ this( a_name, a_command, null, null, null ) ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.ocmm.Action#getName()
+ */
+ public String getName()
+ {
+ return m_name ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.ocmm.Action#getCommand()
+ */
+ public String getCommand()
+ {
+ return m_command ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.ocmm.Action#getContexts()
+ */
+ public String[] getContexts()
+ {
+ return m_contexts ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.ocmm.Action#getDescription()
+ */
+ public String getDescription()
+ {
+ return m_description ;
+ }
+
+
+ /**
+ * Sets a short description for this Action.
+ *
+ * @param a_description a short description for this Action
+ */
+ public void setDescription( String a_description )
+ {
+ m_description = a_description ;
+ }
+
+
+ /*
+ * (non-Javadoc)
+ * @see org.apache.rms.ui.ocmm.Action#getIcon()
+ */
+ public IconUsage getIcon()
+ {
+ return m_icon ;
+ }
+}
Added: incubator/directory/rms/trunk/gui/ocmm/api/src/java/org/apache/rms/ui/ocmm/DefaultContainer.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/ocmm/api/src/java/org/apache/rms/ui/ocmm/DefaultContainer.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,110 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.ocmm ;
+
+
+/**
+ * A default Container of objects of the same data type.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class DefaultContainer implements Container
+{
+ private final IconUsage m_icon ;
+ private final String m_name ;
+ private final Class m_type ;
+ private final String m_beanProp ;
+ private final Action[] m_actions ;
+
+
+ /**
+ * Creates a default Container.
+ *
+ * @param a_name the name of the container
+ * @param a_type the data type of objects contained inside
+ * @param a_beanProp the bean property used to get at a set of values that
+ * can be iterated over
+ * @see org.apache.commons.collections.IteratorUtils.getIterator(Object) for
+ * more on what return types can be iterated over.
+ */
+ public DefaultContainer( String name, Class type, String beanProp,
+ Action[] actions, IconUsage icon )
+ {
+ m_name = name ;
+ m_type = type ;
+ m_actions = actions ;
+ m_beanProp = beanProp ;
+ m_icon = icon ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.navtree.Container#getName()
+ */
+ public String getName()
+ {
+ return m_name ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.navtree.Container#getContainedType()
+ */
+ public Class getContainedType()
+ {
+ return m_type ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.navtree.Container#getIterationProperty()
+ */
+ public String getIterationProperty()
+ {
+ return m_beanProp ;
+ }
+
+
+ /*
+ * (non-Javadoc)
+ * @see org.apache.rms.ui.ocmm.Container#getActions()
+ */
+ public Action[] getActions()
+ {
+ return m_actions ;
+ }
+
+
+ /*
+ * (non-Javadoc)
+ * @see java.lang.Object#toString()
+ */
+ public String toString()
+ {
+ return m_name ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.ocmm.Container#getIcon()
+ */
+ public IconUsage getIcon()
+ {
+ return m_icon ;
+ }
+}
Added: incubator/directory/rms/trunk/gui/ocmm/api/src/java/org/apache/rms/ui/ocmm/DefaultContainmentMetadata.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/ocmm/api/src/java/org/apache/rms/ui/ocmm/DefaultContainmentMetadata.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,176 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.ocmm ;
+
+
+import org.apache.commons.lang.Validate ;
+
+
+/**
+ * The default containment metadata implementation.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class DefaultContainmentMetadata implements ContainmentMetadata
+{
+ public static final IconUsage[] EMPTY_ICONS = new IconUsage[0] ;
+ public static final String[] EMPTY_SCALARS = new String[0] ;
+ public static final Action[] EMPTY_ACTIONS = new Action[0] ;
+ public static final Container[] EMPTY_CONTAINERS = new Container[0] ;
+
+ private final boolean m_isKeyedByProperty ;
+ private final Class m_type ;
+ private final Container[] m_containers ;
+ private final String m_keyedBy ;
+ private final String[] m_scalarProps ;
+ private final Action[] m_actions ;
+ private final IconUsage[] m_icons ;
+
+
+ /**
+ * Creates a default ContainmentMetadata instance.
+ *
+ * @param a_type the type associated with this ContainmentMetadata
+ * @param a_containers the containers for this type, can be null
+ * @param a_scalarProps the scalar properties for this type, can be null
+ * @param a_keyedBy
+ * @param a_isKeyedByProperty
+ */
+ public DefaultContainmentMetadata( Class a_type, Container[] a_containers,
+ String[] a_scalarProps, String a_keyedBy,
+ Action[] a_actions, IconUsage[] a_icons,
+ boolean a_isKeyedByProperty )
+ {
+ Validate.notNull( a_type, "cannot have null type for metadata" ) ;
+ m_type = a_type ;
+
+ Validate.notNull( a_keyedBy, "cannot have null keyedBy for metadata" ) ;
+ m_keyedBy = a_keyedBy ;
+
+ if ( a_containers != null && a_containers.length > 0 )
+ {
+ m_containers = a_containers ;
+ }
+ else
+ {
+ m_containers = EMPTY_CONTAINERS ;
+ }
+
+ if ( a_scalarProps != null && a_scalarProps.length > 0 )
+ {
+ m_scalarProps = a_scalarProps ;
+ }
+ else
+ {
+ m_scalarProps = EMPTY_SCALARS ;
+ }
+
+ if ( a_actions != null && a_actions.length > 0 )
+ {
+ m_actions = a_actions ;
+ }
+ else
+ {
+ m_actions = EMPTY_ACTIONS ;
+ }
+
+ if ( a_icons != null && a_icons.length > 0 )
+ {
+ m_icons = a_icons ;
+ }
+ else
+ {
+ m_icons = EMPTY_ICONS ;
+ }
+
+ m_isKeyedByProperty = a_isKeyedByProperty ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.navtree.ContainmentMetadata#getTypeClass()
+ */
+ public Class getTypeClass()
+ {
+ return m_type ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.navtree.ContainmentMetadata#isLeaf()
+ */
+ public boolean isLeaf()
+ {
+ return m_containers == EMPTY_CONTAINERS ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.navtree.ContainmentMetadata#isKeyedByProperty()
+ */
+ public boolean isKeyedByProperty()
+ {
+ return m_isKeyedByProperty ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.navtree.ContainmentMetadata#getKeyedBy()
+ */
+ public String getKeyedBy()
+ {
+ return m_keyedBy ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.navtree.ContainmentMetadata#getScalarProperties()
+ */
+ public String[] getScalarProperties()
+ {
+ return m_scalarProps ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.navtree.ContainmentMetadata#getContainers()
+ */
+ public Container[] getContainers()
+ {
+ return m_containers ;
+ }
+
+
+ /*
+ * (non-Javadoc)
+ * @see org.apache.rms.ui.ocmm.ContainmentMetadata#getActions()
+ */
+ public Action[] getActions()
+ {
+ return m_actions ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.ocmm.ContainmentMetadata#getIcons()
+ */
+ public IconUsage[] getIcons()
+ {
+ return m_icons ;
+ }
+}
Added: incubator/directory/rms/trunk/gui/ocmm/api/src/java/org/apache/rms/ui/ocmm/DefaultContainmentModel.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/ocmm/api/src/java/org/apache/rms/ui/ocmm/DefaultContainmentModel.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,71 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.ocmm ;
+
+
+import java.util.Map ;
+import java.util.Iterator ;
+
+
+/**
+ * A default containment model implementation.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class DefaultContainmentModel implements ContainmentModel
+{
+ private final Map m_types ;
+
+
+ /**
+ * Creates an instance of a default ContainmentModel implementation.
+ *
+ * @param types a map of Class keys mapped to ContainmentMetadata values
+ */
+ public DefaultContainmentModel( Map types )
+ {
+ m_types = types ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.navtree.ContainmentModel#getMetadata(java.lang.Class)
+ */
+ public ContainmentMetadata getMetadata( Class clazz )
+ {
+ ContainmentMetadata meta = ( ContainmentMetadata ) m_types.get( clazz ) ;
+
+ if ( meta != null )
+ {
+ return meta ;
+ }
+
+ Iterator list = m_types.keySet().iterator() ;
+ while ( list.hasNext() )
+ {
+ Class modelClass = ( Class ) list.next() ;
+ if ( modelClass.isAssignableFrom( clazz ) )
+ {
+ meta = ( ContainmentMetadata ) m_types.get( modelClass ) ;
+ break ;
+ }
+ }
+
+ return meta ;
+ }
+}
Added: incubator/directory/rms/trunk/gui/ocmm/api/src/java/org/apache/rms/ui/ocmm/DefaultIconUsage.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/ocmm/api/src/java/org/apache/rms/ui/ocmm/DefaultIconUsage.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,124 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.ocmm ;
+
+
+import java.io.File ;
+
+import org.apache.commons.lang.StringUtils ;
+
+
+/**
+ * The default IconUsage descriptor implementation.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class DefaultIconUsage implements IconUsage
+{
+ private final String m_baseDir ;
+ private final String m_fileName ;
+ private final String m_category ;
+ private final String[] m_contexts ;
+ private transient String m_iconPath = null ;
+
+
+ /**
+ * Creates a default IconUsage descriptor implemenation.
+ *
+ * @param baseDir the path to the base directory
+ * @param fileName the relative file name with extention
+ * @param category the path fragment to the category directory which
+ * does not have trialing ( i.e. 24x24/cars ) separators
+ * @param contexts
+ */
+ public DefaultIconUsage( String baseDir, String fileName, String category,
+ String[] contexts )
+ {
+ m_baseDir = correctPath( baseDir ) ;
+ m_fileName = correctPath( fileName ) ;
+ m_category = correctPath( category ) ;
+ m_contexts = contexts ;
+ }
+
+
+ /**
+ * Corrects paths to match OS
+ *
+ * @param path the path using regular '/'
+ * @return the path with OS specific separators
+ */
+ private String correctPath( String path )
+ {
+ return StringUtils.replaceChars( path, '/', File.separatorChar ) ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.ocmm.IconUsage#getBaseDir()
+ */
+ public String getBaseDir()
+ {
+ return m_baseDir ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.ocmm.IconUsage#getCategory()
+ */
+ public String getCategory()
+ {
+ return m_category ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.ocmm.IconUsage#getFilename()
+ */
+ public String getFileName()
+ {
+ return m_fileName ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.ocmm.IconUsage#getContexts()
+ */
+ public String[] getContexts()
+ {
+ return m_contexts ;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.ocmm.IconUsage#getImageIcon()
+ */
+ public String getIconPath()
+ {
+ if ( m_iconPath != null )
+ {
+ return m_iconPath ;
+ }
+
+ StringBuffer l_buf = new StringBuffer() ;
+ l_buf.append( m_baseDir ).append( File.separatorChar ) ;
+ l_buf.append( m_category ).append( File.separatorChar ) ;
+ l_buf.append( m_fileName ) ;
+ m_iconPath = l_buf.toString() ;
+ return m_iconPath ;
+ }
+}
Added: incubator/directory/rms/trunk/gui/ocmm/api/src/java/org/apache/rms/ui/ocmm/IconUsage.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/ocmm/api/src/java/org/apache/rms/ui/ocmm/IconUsage.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,66 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.ocmm ;
+
+
+/**
+ * A descriptor that specifies an icon and how it is used.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public interface IconUsage
+{
+ /** no contexts corresponds to all contexts - this is the default */
+ String[] ALL_CONTEXTS = new String[0] ;
+
+ /**
+ * Gets the base directory path for an icon.
+ *
+ * @return the base directory path.
+ */
+ String getBaseDir() ;
+
+ /**
+ * Gets the category of the icon which is used as a subdirectory from the
+ * base to find the icon.
+ *
+ * @return
+ */
+ String getCategory() ;
+
+ /**
+ * Gets the relative file name of the icon with extention and without paths.
+ *
+ * @return the relative file name of the icon with extention
+ */
+ String getFileName() ;
+
+ /**
+ * Gets the contents for which the icon is valid.
+ *
+ * @return the valid contexts for the image
+ */
+ String[] getContexts() ;
+
+ /**
+ * Gets the path to the image assocated with this IconUsage descriptor.
+ *
+ * @return the path to the image assocated with this IconUsage descriptor
+ */
+ String getIconPath() ;
+}
Added: incubator/directory/rms/trunk/gui/ocmm/api/src/java/org/apache/rms/ui/ocmm/package.html
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/ocmm/api/src/java/org/apache/rms/ui/ocmm/package.html Wed Apr 7 18:57:22 2004
@@ -0,0 +1,6 @@
+<body>
+<p>
+ The <code>ocmm/api</code> package contains an classes and interfaces used to
+ build an object containment meta model component.
+</p>
+</body>
Added: incubator/directory/rms/trunk/gui/ocmm/impl/.classpath
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/ocmm/impl/.classpath Wed Apr 7 18:57:22 2004
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src/java"/>
+ <classpathentry kind="src" path="src/test"/>
+ <classpathentry kind="var" path="MAVEN_REPO/junit/jars/junit-3.8.1.jar"/>
+ <classpathentry kind="var" path="JRE_LIB" sourcepath="JRE_SRC"/>
+ <classpathentry kind="var" path="MAVEN_REPO/avalon-framework/jars/avalon-framework-api-4.1.5.jar"/>
+ <classpathentry kind="var" path="MAVEN_REPO/merlin/jars/merlin-unit-3.2.7.jar"/>
+ <classpathentry kind="lib" path="target/test-classes"/>
+ <classpathentry kind="src" path="/rms-gui-ocmm-api"/>
+ <classpathentry kind="src" path="/rms-gui-ocmm-spi"/>
+ <classpathentry kind="var" path="MAVEN_REPO/commons-lang/jars/commons-lang-2.0.jar"/>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
Added: incubator/directory/rms/trunk/gui/ocmm/impl/.project
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/ocmm/impl/.project Wed Apr 7 18:57:22 2004
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>rms-gui-ocmm-impl</name>
+ <comment>
+ </comment>
+ <projects>
+ <project>rms-gui-ocmm-api</project>
+ <project>rms-gui-ocmm-spi</project>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
Added: incubator/directory/rms/trunk/gui/ocmm/impl/conf/block.xml
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/ocmm/impl/conf/block.xml Wed Apr 7 18:57:22 2004
@@ -0,0 +1,21 @@
+
+<!-- definition of an embedded block -->
+
+<container name="rmc">
+
+ <classloader>
+ <classpath>
+ <repository>
+ <resource id="commons-lang:commons-lang" version="2.0"/>
+ <resource id="rms:rms-rbac-api" version="SNAPSHOT"/>
+ <resource id="rms:rms-gui-ocmm-api" version="SNAPSHOT"/>
+ <resource id="rms:rms-gui-ocmm-spi" version="SNAPSHOT"/>
+ </repository>
+ </classpath>
+ </classloader>
+
+ <component name="ocmm-factory"
+ class="org.apache.rms.ui.ocmm.impl.MerlinOcmmFactory" activation="startup">
+ </component>
+
+</container>
Added: incubator/directory/rms/trunk/gui/ocmm/impl/conf/config.xml
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/ocmm/impl/conf/config.xml Wed Apr 7 18:57:22 2004
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<targets>
+
+ <target path="/rmc/ocmm-factory">
+ <categories priority="INFO"/>
+ </target>
+
+</targets>
Added: incubator/directory/rms/trunk/gui/ocmm/impl/maven.log
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/ocmm/impl/maven.log Wed Apr 7 18:57:22 2004
@@ -0,0 +1,391 @@
+2004-04-06 23:41:19,583 INFO org.apache.maven.plugin.PluginManager - Initializing Plugins!
+2004-04-06 23:41:19,614 INFO org.apache.maven.plugin.PluginManager - Unpacking plugins from directory --> j:\apache\maven\maven-1.0-beta-10\plugins
+2004-04-06 23:41:19,708 INFO org.apache.maven.plugin.PluginManager - Processing unpacked plugins in C:\Documents and Settings\akarasulu\.maven\plugins
+2004-04-06 23:41:19,724 INFO org.apache.maven.plugin.PluginManager - Processing Plugin: maven-deploy-plugin-1.1
+2004-04-06 23:41:19,895 INFO org.apache.maven.plugin.PluginManager - Processing Plugin: maven-plexus-plugin-0.2
+2004-04-06 23:41:19,927 INFO org.apache.maven.plugin.PluginManager - Processing Plugin: maven-runner-plugin-0.2
+2004-04-06 23:41:19,927 INFO org.apache.maven.plugin.PluginManager - Processing Plugin: maven-sea-plugin-1.0
+2004-04-06 23:41:19,927 INFO org.apache.maven.plugin.PluginManager - Processing Plugin: maven-vdoclet-plugin-1.0
+2004-04-06 23:41:19,942 INFO org.apache.maven.plugin.PluginCacheManager - Saving caches to C:\Documents and Settings\akarasulu\.maven\plugins
+2004-04-06 23:41:19,989 INFO org.apache.maven.plugin.PluginManager - Finished initializing Plugins!
+2004-04-06 23:41:23,504 WARN org.apache.commons.jelly.expression.jexl.JexlExpression - Caught exception evaluating: org.apache.commons.jexl.ExpressionImpl@6835fb. Reason: java.lang.NumberFormatException: For input string: "includes"
+java.lang.NumberFormatException: For input string: "includes"
+ at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
+ at java.lang.Integer.parseInt(Integer.java:468)
+ at java.lang.Integer.valueOf(Integer.java:574)
+ at org.apache.commons.jexl.util.Coercion.coerceInteger(Coercion.java:95)
+ at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:177)
+ at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:104)
+ at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:106)
+ at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:88)
+ at org.apache.commons.jexl.parser.ASTNotNode.value(ASTNotNode.java:88)
+ at org.apache.commons.jexl.parser.ASTExpression.value(ASTExpression.java:85)
+ at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:123)
+ at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:115)
+ at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$ExpressionSupportLocal.evaluate(JexlExpressionFactory.java:168)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:106)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsBoolean(ExpressionSupport.java:116)
+ at org.apache.commons.jelly.tags.core.WhenTag.doTag(WhenTag.java:90)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.ChooseTag.doTag(ChooseTag.java:84)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.ProjectTag.doTag(ProjectTag.java:112)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:112)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:139)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:734)
+ at org.apache.maven.plugin.PluginManager.prepDynamicTagLib(PluginManager.java:611)
+ at org.apache.maven.plugin.PluginManager.prepDynaTagLibs(PluginManager.java:586)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:686)
+ at org.apache.maven.plugin.PluginManager.loadPlugins(PluginManager.java:766)
+ at org.apache.maven.plugin.PluginManager.prepForCallbacks(PluginManager.java:554)
+ at org.apache.maven.plugin.PluginManager.prepForGoal(PluginManager.java:525)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:415)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:348)
+ at org.apache.maven.cli.App.doMain(App.java:525)
+ at org.apache.maven.cli.App.main(App.java:1088)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:324)
+ at com.werken.forehead.Forehead.run(Forehead.java:543)
+ at com.werken.forehead.Forehead.main(Forehead.java:573)
+2004-04-06 23:41:23,504 WARN org.apache.commons.jelly.expression.jexl.JexlExpression - Caught exception evaluating: org.apache.commons.jexl.ExpressionImpl@1636e4e. Reason: java.lang.NumberFormatException: For input string: "excludes"
+java.lang.NumberFormatException: For input string: "excludes"
+ at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
+ at java.lang.Integer.parseInt(Integer.java:468)
+ at java.lang.Integer.valueOf(Integer.java:574)
+ at org.apache.commons.jexl.util.Coercion.coerceInteger(Coercion.java:95)
+ at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:177)
+ at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:104)
+ at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:106)
+ at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:88)
+ at org.apache.commons.jexl.parser.ASTNotNode.value(ASTNotNode.java:88)
+ at org.apache.commons.jexl.parser.ASTExpression.value(ASTExpression.java:85)
+ at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:123)
+ at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:115)
+ at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$ExpressionSupportLocal.evaluate(JexlExpressionFactory.java:168)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:106)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsBoolean(ExpressionSupport.java:116)
+ at org.apache.commons.jelly.tags.core.WhenTag.doTag(WhenTag.java:90)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.ChooseTag.doTag(ChooseTag.java:84)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.ProjectTag.doTag(ProjectTag.java:112)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:112)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:139)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:734)
+ at org.apache.maven.plugin.PluginManager.prepDynamicTagLib(PluginManager.java:611)
+ at org.apache.maven.plugin.PluginManager.prepDynaTagLibs(PluginManager.java:586)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:686)
+ at org.apache.maven.plugin.PluginManager.loadPlugins(PluginManager.java:766)
+ at org.apache.maven.plugin.PluginManager.prepForCallbacks(PluginManager.java:554)
+ at org.apache.maven.plugin.PluginManager.prepForGoal(PluginManager.java:525)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:415)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:348)
+ at org.apache.maven.cli.App.doMain(App.java:525)
+ at org.apache.maven.cli.App.main(App.java:1088)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:324)
+ at com.werken.forehead.Forehead.run(Forehead.java:543)
+ at com.werken.forehead.Forehead.main(Forehead.java:573)
+2004-04-06 23:41:23,536 WARN org.apache.commons.jelly.expression.jexl.JexlExpression - Caught exception evaluating: org.apache.commons.jexl.ExpressionImpl@1c8ef56. Reason: java.lang.NumberFormatException: For input string: "includes"
+java.lang.NumberFormatException: For input string: "includes"
+ at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
+ at java.lang.Integer.parseInt(Integer.java:468)
+ at java.lang.Integer.valueOf(Integer.java:574)
+ at org.apache.commons.jexl.util.Coercion.coerceInteger(Coercion.java:95)
+ at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:177)
+ at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:104)
+ at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:106)
+ at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:88)
+ at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:123)
+ at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:115)
+ at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$ExpressionSupportLocal.evaluate(JexlExpressionFactory.java:168)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:106)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsIterator(ExpressionSupport.java:146)
+ at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:127)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:267)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.ProjectTag.doTag(ProjectTag.java:112)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:112)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:139)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:734)
+ at org.apache.maven.plugin.PluginManager.prepDynamicTagLib(PluginManager.java:611)
+ at org.apache.maven.plugin.PluginManager.prepDynaTagLibs(PluginManager.java:586)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:686)
+ at org.apache.maven.plugin.PluginManager.loadPlugins(PluginManager.java:766)
+ at org.apache.maven.plugin.PluginManager.prepForCallbacks(PluginManager.java:554)
+ at org.apache.maven.plugin.PluginManager.prepForGoal(PluginManager.java:525)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:415)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:348)
+ at org.apache.maven.cli.App.doMain(App.java:525)
+ at org.apache.maven.cli.App.main(App.java:1088)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:324)
+ at com.werken.forehead.Forehead.run(Forehead.java:543)
+ at com.werken.forehead.Forehead.main(Forehead.java:573)
+2004-04-06 23:41:23,536 WARN org.apache.commons.jelly.expression.jexl.JexlExpression - Caught exception evaluating: org.apache.commons.jexl.ExpressionImpl@d90453. Reason: java.lang.NumberFormatException: For input string: "excludes"
+java.lang.NumberFormatException: For input string: "excludes"
+ at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
+ at java.lang.Integer.parseInt(Integer.java:468)
+ at java.lang.Integer.valueOf(Integer.java:574)
+ at org.apache.commons.jexl.util.Coercion.coerceInteger(Coercion.java:95)
+ at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:177)
+ at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:104)
+ at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:106)
+ at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:88)
+ at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:123)
+ at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:115)
+ at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$ExpressionSupportLocal.evaluate(JexlExpressionFactory.java:168)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:106)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsIterator(ExpressionSupport.java:146)
+ at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:127)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:267)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.ProjectTag.doTag(ProjectTag.java:112)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:112)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:139)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:734)
+ at org.apache.maven.plugin.PluginManager.prepDynamicTagLib(PluginManager.java:611)
+ at org.apache.maven.plugin.PluginManager.prepDynaTagLibs(PluginManager.java:586)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:686)
+ at org.apache.maven.plugin.PluginManager.loadPlugins(PluginManager.java:766)
+ at org.apache.maven.plugin.PluginManager.prepForCallbacks(PluginManager.java:554)
+ at org.apache.maven.plugin.PluginManager.prepForGoal(PluginManager.java:525)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:415)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:348)
+ at org.apache.maven.cli.App.doMain(App.java:525)
+ at org.apache.maven.cli.App.main(App.java:1088)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:324)
+ at com.werken.forehead.Forehead.run(Forehead.java:543)
+ at com.werken.forehead.Forehead.main(Forehead.java:573)
+2004-04-06 23:41:25,660 WARN org.apache.commons.jelly.expression.jexl.JexlExpression - Caught exception evaluating: org.apache.commons.jexl.ExpressionImpl@1b32627. Reason: java.lang.NumberFormatException: For input string: "includes"
+java.lang.NumberFormatException: For input string: "includes"
+ at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
+ at java.lang.Integer.parseInt(Integer.java:468)
+ at java.lang.Integer.valueOf(Integer.java:574)
+ at org.apache.commons.jexl.util.Coercion.coerceInteger(Coercion.java:95)
+ at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:177)
+ at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:104)
+ at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:106)
+ at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:88)
+ at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:123)
+ at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:115)
+ at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$ExpressionSupportLocal.evaluate(JexlExpressionFactory.java:168)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:106)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsBoolean(ExpressionSupport.java:116)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:87)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:267)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:205)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:145)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.impl.DynamicTag.doTag(DynamicTag.java:125)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.GoalTag$1.performAction(GoalTag.java:128)
+ at com.werken.werkz.Goal.fire(Goal.java:639)
+ at com.werken.werkz.Goal.attain(Goal.java:575)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:434)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:348)
+ at org.apache.maven.cli.App.doMain(App.java:525)
+ at org.apache.maven.cli.App.main(App.java:1088)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:324)
+ at com.werken.forehead.Forehead.run(Forehead.java:543)
+ at com.werken.forehead.Forehead.main(Forehead.java:573)
+2004-04-06 23:41:25,707 WARN org.apache.commons.jelly.expression.jexl.JexlExpression - Caught exception evaluating: org.apache.commons.jexl.ExpressionImpl@1b32627. Reason: java.lang.NumberFormatException: For input string: "includes"
+java.lang.NumberFormatException: For input string: "includes"
+ at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
+ at java.lang.Integer.parseInt(Integer.java:468)
+ at java.lang.Integer.valueOf(Integer.java:574)
+ at org.apache.commons.jexl.util.Coercion.coerceInteger(Coercion.java:95)
+ at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:177)
+ at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:104)
+ at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:106)
+ at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:88)
+ at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:123)
+ at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:115)
+ at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$ExpressionSupportLocal.evaluate(JexlExpressionFactory.java:168)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:106)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsBoolean(ExpressionSupport.java:116)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:87)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:267)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:205)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:145)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.impl.DynamicTag.doTag(DynamicTag.java:125)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.GoalTag$1.performAction(GoalTag.java:128)
+ at com.werken.werkz.Goal.fire(Goal.java:639)
+ at com.werken.werkz.Goal.attain(Goal.java:575)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:434)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:348)
+ at org.apache.maven.cli.App.doMain(App.java:525)
+ at org.apache.maven.cli.App.main(App.java:1088)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:324)
+ at com.werken.forehead.Forehead.run(Forehead.java:543)
+ at com.werken.forehead.Forehead.main(Forehead.java:573)
+2004-04-06 23:41:25,723 WARN org.apache.commons.jelly.expression.jexl.JexlExpression - Caught exception evaluating: org.apache.commons.jexl.ExpressionImpl@1b32627. Reason: java.lang.NumberFormatException: For input string: "includes"
+java.lang.NumberFormatException: For input string: "includes"
+ at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
+ at java.lang.Integer.parseInt(Integer.java:468)
+ at java.lang.Integer.valueOf(Integer.java:574)
+ at org.apache.commons.jexl.util.Coercion.coerceInteger(Coercion.java:95)
+ at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:177)
+ at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:104)
+ at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:106)
+ at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:88)
+ at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:123)
+ at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:115)
+ at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$ExpressionSupportLocal.evaluate(JexlExpressionFactory.java:168)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:106)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsBoolean(ExpressionSupport.java:116)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:87)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:267)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:205)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:145)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.impl.DynamicTag.doTag(DynamicTag.java:125)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.GoalTag$1.performAction(GoalTag.java:128)
+ at com.werken.werkz.Goal.fire(Goal.java:639)
+ at com.werken.werkz.Goal.attain(Goal.java:575)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:434)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:348)
+ at org.apache.maven.cli.App.doMain(App.java:525)
+ at org.apache.maven.cli.App.main(App.java:1088)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:324)
+ at com.werken.forehead.Forehead.run(Forehead.java:543)
+ at com.werken.forehead.Forehead.main(Forehead.java:573)
Added: incubator/directory/rms/trunk/gui/ocmm/impl/maven.xml
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/ocmm/impl/maven.xml Wed Apr 7 18:57:22 2004
@@ -0,0 +1,7 @@
+<project default="jar:install">
+
+ <preGoal name="java:compile">
+ <attainGoal name="avalon:meta"/>
+ </preGoal>
+
+</project>
Added: incubator/directory/rms/trunk/gui/ocmm/impl/merlin.properties
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/ocmm/impl/merlin.properties Wed Apr 7 18:57:22 2004
@@ -0,0 +1,11 @@
+
+#
+# General properties referenced by merlin plugin
+# goals and the merlin unit test.
+#
+
+merlin.info = false
+merlin.debug = false
+
+
+
Added: incubator/directory/rms/trunk/gui/ocmm/impl/ocmm-impl.iml
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/ocmm/impl/ocmm-impl.iml Wed Apr 7 18:57:22 2004
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module version="4" relativePaths="false">
+ <component name="ModuleRootManager" />
+ <component name="NewModuleRootManager">
+ <output url="file://$MODULE_DIR$/target/classes" />
+ <exclude-output />
+ <content url="file://$MODULE_DIR$">
+ <sourceFolder url="file://$MODULE_DIR$/src/java" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/test" isTestSource="true" />
+ <excludeFolder url="file://$MODULE_DIR$/classes" />
+ </content>
+ <orderEntry type="inheritedJdk" />
+ <orderEntry type="sourceFolder" forTests="false" />
+ <orderEntry type="module" module-name="ocmm-api" />
+ <orderEntry type="module" module-name="ocmm-spi" />
+ <orderEntry type="library" name="avalon-framework-api-4.1.5.jar" level="application" />
+ <orderEntry type="library" name="merlin-unit-3.2.10.jar" level="application" />
+ <orderEntry type="library" name="junit-3.8.1.jar" level="application" />
+ </component>
+</module>
+
Added: incubator/directory/rms/trunk/gui/ocmm/impl/project.xml
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/ocmm/impl/project.xml Wed Apr 7 18:57:22 2004
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<project>
+
+ <extend>${basedir}/../project.xml</extend>
+
+ <id>rms-gui-ocmm-impl</id>
+ <name>Object Containment Meta Model Implementation</name>
+ <currentVersion>SNAPSHOT</currentVersion>
+ <shortDescription>
+ Object Containment Meta Model Implementation
+ </shortDescription>
+ <package>org.apache.rms.ui.ocmm.impl</package>
+
+ <dependencies>
+
+ <dependency>
+ <artifactId>commons-lang</artifactId>
+ <groupId>commons-lang</groupId>
+ <version>2.0</version>
+ </dependency>
+
+ <dependency>
+ <groupId>incubator-directory</groupId>
+ <artifactId>rms-gui-ocmm-api</artifactId>
+ <version>SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>incubator-directory</groupId>
+ <artifactId>rms-gui-ocmm-spi</artifactId>
+ <version>SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>avalon-framework</groupId>
+ <artifactId>avalon-framework-api</artifactId>
+ <version>4.1.5</version>
+ </dependency>
+
+ <dependency>
+ <groupId>merlin</groupId>
+ <artifactId>merlin-unit</artifactId>
+ <version>3.2.10</version>
+ </dependency>
+
+ </dependencies>
+
+</project>
Added: incubator/directory/rms/trunk/gui/ocmm/impl/src/java/org/apache/rms/ui/ocmm/impl/MerlinOcmmFactory.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/ocmm/impl/src/java/org/apache/rms/ui/ocmm/impl/MerlinOcmmFactory.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,397 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.ocmm.impl ;
+
+
+import java.util.HashMap ;
+
+import org.apache.avalon.framework.configuration.Configurable ;
+import org.apache.avalon.framework.configuration.Configuration ;
+import org.apache.avalon.framework.configuration.ConfigurationException ;
+
+import org.apache.avalon.framework.logger.AbstractLogEnabled ;
+
+import org.apache.rms.ui.ocmm.Action ;
+import org.apache.rms.ui.ocmm.Container ;
+import org.apache.rms.ui.ocmm.IconUsage ;
+import org.apache.rms.ui.ocmm.DefaultAction ;
+import org.apache.rms.ui.ocmm.ContainmentModel ;
+import org.apache.rms.ui.ocmm.DefaultContainer ;
+import org.apache.rms.ui.ocmm.DefaultIconUsage ;
+import org.apache.rms.ui.ocmm.ContainmentMetadata ;
+import org.apache.rms.ui.ocmm.DefaultContainmentModel ;
+import org.apache.rms.ui.ocmm.DefaultContainmentMetadata ;
+import org.apache.rms.ui.ocmm.spi.ContainmentModelFactory ;
+
+
+/**
+ * A Merlin based object containment meta model factory.
+ *
+ * @avalon.component name="ocmm-factory" lifestyle="singleton"
+ * @avalon.service type="org.apache.rms.ui.ocmm.spi.ContainmentModelFactory" version="1.0"
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class MerlinOcmmFactory extends AbstractLogEnabled
+ implements ContainmentModelFactory,
+ Configurable
+{
+ private ContainmentModel m_model ;
+
+
+ /* (non-Javadoc)
+ * @see org.apache.rms.ui.ocmm.spi.ContainmentModelFactory#getContainmentModel()
+ */
+ public ContainmentModel getContainmentModel()
+ {
+ return m_model ;
+ }
+
+
+ public void configure( Configuration a_config )
+ throws ConfigurationException
+ {
+ ContainmentMetadata l_metadata = null ;
+ Configuration[] l_types = a_config.getChildren( "type" ) ;
+ HashMap l_map = new HashMap( l_types.length ) ;
+
+ for ( int ii = 0; ii < l_types.length; ii++ )
+ {
+ l_metadata = new DefaultContainmentMetadata(
+ getClass( l_types[ii] ),
+ getContainers( l_types[ii] ),
+ getScalars( l_types[ii] ),
+ getKeyedBy( l_types[ii] ),
+ getActions( l_types[ii] ),
+ getIcons( l_types[ii] ),
+ isKeyedByProperty( l_types[ii] )
+ ) ;
+
+ l_map.put( l_metadata.getTypeClass(), l_metadata ) ;
+ }
+
+ m_model = new DefaultContainmentModel( l_map ) ;
+ }
+
+
+ /**
+ * Gets the set of containers nodes of this type will display.
+ *
+ * @param a_type the top configuration node for a meta model type
+ * @return an array of Containers
+ * @throws ConfigurationException if there is a problem while accessing
+ * configuration data
+ */
+ private Container[] getContainers( Configuration a_type )
+ throws ConfigurationException
+ {
+ Configuration[] l_nodes = a_type
+ .getChild( "contains" ).getChildren() ;
+ Container[] l_containers = new Container[ l_nodes.length ] ;
+
+ for ( int ii = 0; ii < l_containers.length; ii++ )
+ {
+ l_containers[ii] = new DefaultContainer(
+ getContainerName( l_nodes[ii] ),
+ getContainedClass( l_nodes[ii] ),
+ getIterationProperty( l_nodes[ii] ),
+ getActions( l_nodes[ii] ),
+ getIcon( l_nodes[ii].getChild( "icon" ) )
+ ) ;
+ }
+
+ return l_containers ;
+ }
+
+
+ /**
+ * Gets the [] tag value for a container node.
+ *
+ * @param a_container a container configuration node for a meta model type
+ * @return the [] tag value for a container node
+ * @throws ConfigurationException if there is a problem while accessing the
+ * configuration data
+ */
+ private String getContainerName( Configuration a_container )
+ throws ConfigurationException
+ {
+ return a_container.getChild( "name" ).getValue() ;
+ }
+
+
+ /**
+ * Gets the [] tag value for a container node.
+ *
+ * @param a_container a container configuration node for a meta model type
+ * @return the [] tag value for a container node
+ * @throws ConfigurationException if there is a problem while accessing the
+ * configuration data
+ */
+ private Class getContainedClass( Configuration a_container )
+ throws ConfigurationException
+ {
+ String l_className = null ;
+
+ try
+ {
+ ClassLoader l_cl = Thread.currentThread().getContextClassLoader() ;
+ l_className = a_container.getChild( "contents" ).getValue() ;
+ return l_cl.loadClass( l_className ) ;
+ }
+ catch ( ClassNotFoundException e )
+ {
+ throw new ConfigurationException( "Failed to load Class used "
+ + "in the containment meta model by a container named "
+ + a_container.getChild( "name" ).getValue()
+ + " containing values of type : " + l_className ) ;
+ }
+ }
+
+
+ /**
+ * Gets the [] tag value for a container node.
+ *
+ * @param a_container a container configuration node for a meta model type
+ * @return the [] tag value for a container node
+ * @throws ConfigurationException if there is a problem while accessing the
+ * configuration data
+ */
+ private String getIterationProperty( Configuration a_container )
+ throws ConfigurationException
+ {
+ return a_container.getChild( "iterationProperty" ).getValue() ;
+ }
+
+
+ /**
+ * Gets the set of scalar properties nodes of this type contain.
+ *
+ * @param a_type the top configuration node for a meta model type
+ * @return an array of scalar properties
+ * @throws ConfigurationException if there is a problem while accessing
+ * configuration data
+ */
+ private String[] getScalars( Configuration a_type )
+ throws ConfigurationException
+ {
+ Configuration[] l_nodes = a_type
+ .getChild( "scalar-properties" ).getChildren() ;
+ String[] l_scalars = new String[ l_nodes.length ] ;
+
+ for ( int ii = 0; ii < l_scalars.length; ii++ )
+ {
+ if ( l_nodes[ii].getName().equals( "property" ) )
+ {
+ l_scalars[ii] = l_nodes[ii].getValue() ;
+ }
+ else
+ {
+ throw new ConfigurationException( "Expect on <property> tags "
+ + "only within the <scalar-properties> tag NOT <"
+ + l_nodes[ii].getName() + "> nodes" ) ;
+ }
+ }
+
+ return l_scalars ;
+ }
+
+
+ /**
+ * Gets the name of the keyedBy property for nodes of this type or a
+ * constant label for all node instances of this type.
+ *
+ * @param a_type the top configuration node for a meta model type
+ * @return the name of a property or a constant label
+ * @throws ConfigurationException if there is a problem while accessing
+ * configuration data
+ */
+ private String getKeyedBy( Configuration a_type )
+ throws ConfigurationException
+ {
+ Configuration l_node = a_type.getChild( "keyed-by" ).getChildren()[0] ;
+ return l_node.getValue() ;
+ }
+
+
+ /**
+ * Tests to see if a property name or a constant is used for the keyedBy
+ * value.
+ *
+ * @param a_type the top configuration node for a meta model type
+ * @return true if the keyedBy string is a property name or false if it is
+ * a constant label
+ */
+ private boolean isKeyedByProperty( Configuration a_type )
+ {
+ Configuration l_node = a_type.getChild( "keyed-by" ).getChildren()[0] ;
+ return l_node.getName().equals( "property" ) ;
+ }
+
+
+ /**
+ * Gets the Class associated with a type used in the meta model.
+ *
+ * @param a_type the top configuration node for a meta model type
+ * @return the Class for the type
+ * @throws ConfigurationException if the class for the type cannot be found
+ */
+ private Class getClass( Configuration a_type ) throws ConfigurationException
+ {
+ try
+ {
+ ClassLoader l_cl = Thread.currentThread().getContextClassLoader() ;
+ return l_cl.loadClass( a_type.getChild( "class" ).getValue() ) ;
+ }
+ catch( ClassNotFoundException e )
+ {
+ throw new ConfigurationException( "Failed to load Class used "
+ + "in the containment meta model: "
+ + a_type.getChild( "class" ).getValue() ) ;
+ }
+ }
+
+
+ /**
+ * Gets the set of Icon descriptor beans for a node that contains an
+ * <icons> tag.
+ *
+ * @param a_iconsConfig a configuration node that contains an icons node
+ * @return the array of the contained Icon descriptor beans
+ * @throws ConfigurationException if there is a configuration error
+ */
+ private IconUsage[] getIcons( Configuration a_iconsConfig )
+ throws ConfigurationException
+ {
+ Configuration[] l_nodes = a_iconsConfig
+ .getChild( "icons" ).getChildren() ;
+ IconUsage[] l_beans = new IconUsage[ l_nodes.length ] ;
+
+ for ( int ii = 0; ii < l_beans.length; ii++ )
+ {
+ l_beans[ii] = getIcon( l_nodes[ii] ) ;
+ }
+
+ return l_beans ;
+ }
+
+
+ /**
+ * Gets the Icon descriptor bean for an <icon> configuration node.
+ *
+ * @param a_iconConfig a configuration node for an Icon descriptor
+ * @return the Icon descriptor bean for an <icon> configuration node
+ * @throws ConfigurationException if there is a configuration error
+ */
+ private IconUsage getIcon( Configuration a_iconConfig )
+ throws ConfigurationException
+ {
+ String[] l_contexts = null ;
+ Configuration[] l_nodes = a_iconConfig.getChildren( "context" ) ;
+
+ if ( l_nodes == null || l_nodes.length == 0 )
+ {
+ l_contexts = IconUsage.ALL_CONTEXTS ;
+ }
+ else
+ {
+ l_contexts = new String[ l_nodes.length ] ;
+ for ( int ii = 0; ii < l_contexts.length; ii++ )
+ {
+ l_contexts[ii] = l_nodes[ii].getValue() ;
+ }
+ }
+
+ return new DefaultIconUsage(
+ a_iconConfig.getChild( "baseDir" ).getValue(),
+ a_iconConfig.getChild( "fileName" ).getValue(),
+ a_iconConfig.getChild( "category" ).getValue(),
+ l_contexts
+ ) ;
+ }
+
+
+ /**
+ * Gets the set of Action beans for a node that contains an <actions>
+ * tag.
+ *
+ * @param a_hasActions a configuration node that contains an actions node
+ * @return the array of Action beans
+ * @throws ConfigurationException if there is a configuration error
+ */
+ private Action[] getActions( Configuration a_hasActions )
+ throws ConfigurationException
+ {
+ Configuration[] l_nodes = a_hasActions
+ .getChild( "actions" ).getChildren() ;
+ Action[] l_beans = new Action[ l_nodes.length ] ;
+
+ for ( int ii = 0; ii < l_beans.length; ii++ )
+ {
+ l_beans[ii] = getAction( l_nodes[ii] ) ;
+ }
+
+ return l_beans ;
+ }
+
+
+ /**
+ * Gets the Action bean for an <action> configuration node.
+ *
+ * @param a_action a configuration node for an Action
+ * @return the Action bean for an <action> configuration node
+ * @throws ConfigurationException if there is a configuration error
+ */
+ private Action getAction( Configuration a_action )
+ throws ConfigurationException
+ {
+ String[] l_contexts = null ;
+ Configuration[] l_nodes = a_action.getChildren( "context" ) ;
+
+ if ( l_nodes == null || l_nodes.length == 0 )
+ {
+ l_contexts = DefaultAction.ALL_CONTEXTS ;
+ }
+ else
+ {
+ l_contexts = new String[ l_nodes.length ] ;
+ for ( int ii = 0; ii < l_contexts.length; ii++ )
+ {
+ l_contexts[ii] = l_nodes[ii].getValue() ;
+ }
+ }
+
+ Configuration l_iconChild = a_action.getChild( "icon", false ) ;
+ IconUsage l_icon = null ;
+ if ( l_iconChild == null )
+ {
+ l_icon = null ;
+ }
+ else
+ {
+ l_icon = getIcon( l_iconChild ) ;
+ }
+
+ return new DefaultAction(
+ a_action.getChild( "name" ).getValue(),
+ a_action.getChild( "command" ).getValue(),
+ l_contexts,
+ a_action.getChild( "description" ).getValue(),
+ l_icon
+ ) ;
+ }
+}
Added: incubator/directory/rms/trunk/gui/ocmm/impl/src/java/org/apache/rms/ui/ocmm/impl/MerlinOcmmFactory.xconfig
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/ocmm/impl/src/java/org/apache/rms/ui/ocmm/impl/MerlinOcmmFactory.xconfig Wed Apr 7 18:57:22 2004
@@ -0,0 +1,891 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+ -->
+
+<config>
+ <!--
+ Actions and Types
+ =================
+
+ Actions are associated with types. An action can be an operation on
+ an instance of the type or an operation on a factory to create or destroy
+ an instance of a type et. cetera.
+
+ We do not try to distinguish between the mechanism used to achieve the
+ action at the present time.
+
+
+ Action Contexts
+ ===============
+
+ An instance of a type can be located within the navigation tree in several
+ different places. For example a permission may be seen under the Grants
+ container of a Role as well as under an Application's Permissions container.
+
+ Some actions should be available within the containers of objects of these
+ types and some should not. Some actions on objects of a type should also
+ be available on instances of other containing types.
+
+ To control the visibility of actions on objects of a type we specify
+ contexts in which actions apply. An action is hence valid for the contexts
+ it is specified for. A context is a simple path specification. So for
+ example the permission under the Grants container of a Roles object is
+ in a different context from the permission within the Permissions container
+ of an Application instance.
+
+ Hence a type supports a set of actions defined for certain contexts. The
+ current context is determined by the current selection path in the
+ navigation tree. Hence where we are in the navigation determines which
+ actions are available. A path notation is used to specify the action
+ context. The following path component names can be used:
+
+ * root - the root of the tree whatever it may be
+ * bean - a bean of a type
+
+ The names of containers within the type can be used as path components as
+ well. Here's a few examples of some path components and the contexts they
+ connotate:
+
+ root when root is selected
+ root/Applications when Applications container under root
+ root/Users/bean/Grants
+ when the Grants container of any user bean is
+ selected
+ -->
+
+ <!--
+ R M S T O P L E V E L
+ =========================
+ -->
+
+ <type>
+ <class>org.apache.rms.Rms</class>
+ <keyed-by>
+ <name>RmsRoot</name>
+ </keyed-by>
+
+ <icons>
+ <icon>
+ <baseDir>images</baseDir>
+ <fileName>earth_lock.png</fileName>
+ <category>24x24/plain</category>
+ </icon>
+ </icons>
+
+ <actions>
+ <action>
+ <name>CreateUser</name>
+ <command>CreateUser</command>
+ <description>Create a new user</description>
+ <!--icon>
+ <baseDir>images</baseDir>
+ <fileName>user1_add.png</fileName>
+ <category>16x16/plain</category>
+ </icon-->
+ </action>
+ <action>
+ <name>CreateApplication</name>
+ <command>CreateApplication</command>
+ <description>Create a new application</description>
+ <!--icon>
+ <baseDir>images</baseDir>
+ <fileName>application_add.png</fileName>
+ <category>16x16/plain</category>
+ </icon-->
+ </action>
+ </actions>
+
+ <contains>
+ <container>
+ <name>Applications</name>
+ <contents>org.apache.rms.Application</contents>
+ <iterationProperty>applications</iterationProperty>
+
+ <icon>
+ <baseDir>images</baseDir>
+ <fileName>application_server.png</fileName>
+ <category>24x24/plain</category>
+ </icon>
+
+ <actions>
+ <action>
+ <name>Create</name>
+ <command>CreateApplication</command>
+ <description>Create a new application</description>
+ <!--icon>
+ <baseDir>images</baseDir>
+ <fileName>application_add.png</fileName>
+ <category>16x16/plain</category>
+ </icon-->
+ </action>
+ </actions>
+ </container>
+
+ <container>
+ <name>Users</name>
+ <contents>org.apache.rms.User</contents>
+ <iterationProperty>users</iterationProperty>
+ <icon>
+ <baseDir>images</baseDir>
+ <fileName>users1.png</fileName>
+ <category>24x24/plain</category>
+ </icon>
+ <actions>
+ <action>
+ <name>Create</name>
+ <command>CreateUser</command>
+ <description>Create a new user</description>
+ <!--icon>
+ <baseDir>images</baseDir>
+ <fileName>user1_add.png</fileName>
+ <category>16x16/plain</category>
+ </icon-->
+ </action>
+ </actions>
+ </container>
+ </contains>
+ </type>
+
+ <!--
+ =================================================
+ U S E R M E T A D A T A D E F I N I T I O N S
+ =================================================
+ -->
+
+ <type>
+ <class>org.apache.rms.User</class>
+ <keyed-by>
+ <property>name</property>
+ </keyed-by>
+ <scalar-properties>
+ <property>name</property>
+ </scalar-properties>
+
+ <icons>
+ <icon>
+ <baseDir>images</baseDir>
+ <fileName>user1.png</fileName>
+ <category>24x24/plain</category>
+ </icon>
+ </icons>
+
+ <actions>
+ <action>
+ <name>Rename</name>
+ <command>RenameUser</command>
+ <description>Rename a user</description>
+ <!--icon>
+ <baseDir>images</baseDir>
+ <fileName>replace2.png</fileName>
+ <category>16x16/plain</category>
+ </icon-->
+ </action>
+ <action>
+ <name>Delete</name>
+ <command>DeleteUser</command>
+ <description>Delete a user</description>
+ <!--icon>
+ <baseDir>images</baseDir>
+ <fileName>delete2.png</fileName>
+ <category>16x16/plain</category>
+ </icon-->
+ </action>
+ <action>
+ <name>CreateProfile</name>
+ <command>CreateProfileForUser</command>
+ <description>Create an application profile for a user</description>
+ <!--icon>
+ <baseDir>images</baseDir>
+ <fileName>add2.png</fileName>
+ <category>16x16/plain</category>
+ </icon-->
+ </action>
+ </actions>
+
+ <contains>
+ <container>
+ <name>Profiles</name>
+ <contents>org.apache.rms.Profile</contents>
+ <iterationProperty>profiles</iterationProperty>
+ <icon>
+ <baseDir>images</baseDir>
+ <fileName>users3_preferences.png</fileName>
+ <category>24x24/plain</category>
+ </icon>
+ <actions>
+ <action>
+ <name>Create</name>
+ <command>CreateProfileForUser</command>
+ <description>Create an application profile for a user</description>
+ <!--icon>
+ <baseDir>images</baseDir>
+ <fileName>add2.png</fileName>
+ <category>16x16/plain</category>
+ </icon-->
+ </action>
+ </actions>
+ </container>
+ </contains>
+ </type>
+
+ <!--
+ ===============================================================
+ A P P L I C A T I O N M E T A D A T A D E F I N I T I O N S
+ ===============================================================
+ -->
+
+ <type>
+ <class>org.apache.rms.Application</class>
+ <keyed-by>
+ <property>name</property>
+ </keyed-by>
+ <scalar-properties>
+ <property>name</property>
+ </scalar-properties>
+
+ <icons>
+ <icon>
+ <baseDir>images</baseDir>
+ <fileName>application.png</fileName>
+ <category>24x24/plain</category>
+ </icon>
+ </icons>
+
+ <actions>
+ <action>
+ <name>Rename</name>
+ <command>RenameApplication</command>
+ <description>Rename an Application</description>
+ <!--icon>
+ <baseDir>images</baseDir>
+ <fileName>replace2.png</fileName>
+ <category>16x16/plain</category>
+ </icon-->
+ </action>
+ <action>
+ <name>Delete</name>
+ <command>DeleteApplication</command>
+ <description>Delete an Application</description>
+ <!--icon>
+ <baseDir>images</baseDir>
+ <fileName>delete2.png</fileName>
+ <category>16x16/plain</category>
+ </icon-->
+ </action>
+ <action>
+ <name>CreateRole</name>
+ <command>CreateRoleForApplication</command>
+ <description>Create a Role for an Application</description>
+ <!--icon>
+ <baseDir>images</baseDir>
+ <fileName>add2.png</fileName>
+ <category>16x16/plain</category>
+ </icon-->
+ </action>
+ <action>
+ <name>AddPermission</name>
+ <command>AddPermissionToApplication</command>
+ <description>Add a Permission to an Application</description>
+ <!--icon>
+ <baseDir>images</baseDir>
+ <fileName>add2.png</fileName>
+ <category>16x16/plain</category>
+ </icon-->
+ </action>
+ </actions>
+
+ <contains>
+ <container>
+ <name>Roles</name>
+ <contents>org.apache.rms.Role</contents>
+ <iterationProperty>roles</iterationProperty>
+ <icon>
+ <baseDir>images</baseDir>
+ <fileName>users_family.png</fileName>
+ <category>24x24/plain</category>
+ </icon>
+ <actions>
+ <action>
+ <name>Create</name>
+ <command>CreateRoleForApplication</command>
+ <description>Create a Role for an Application</description>
+ <!--icon>
+ <baseDir>images</baseDir>
+ <fileName>add2.png</fileName>
+ <category>16x16/plain</category>
+ </icon-->
+ </action>
+ </actions>
+ </container>
+ <container>
+ <name>Permissions</name>
+ <contents>org.apache.rms.BitPermission</contents>
+ <iterationProperty>permissions</iterationProperty>
+ <icon>
+ <baseDir>images</baseDir>
+ <fileName>keys.png</fileName>
+ <category>24x24/plain</category>
+ </icon>
+ <actions>
+ <action>
+ <name>Add</name>
+ <command>AddPermissionToApplication</command>
+ <description>Add a Permission to an Application</description>
+ <!--icon>
+ <baseDir>images</baseDir>
+ <fileName>add2.png</fileName>
+ <category>16x16/plain</category>
+ </icon-->
+ </action>
+ </actions>
+ </container>
+ </contains>
+ </type>
+
+
+ <!--
+ =================================================
+ R O L E M E T A D A T A D E F I N I T I O N S
+ =================================================
+ -->
+
+
+ <type>
+ <class>org.apache.rms.Role</class>
+ <keyed-by>
+ <property>name</property>
+ </keyed-by>
+ <scalar-properties>
+ <property>name</property>
+ </scalar-properties>
+
+ <!--
+ A Role is visible in two contexts:
+ 1). Defined under an Application's Roles container here:
+ root/Applications/bean/Roles/bean
+
+ 2). Referred to by a Profile under its Roles container here:
+ root/User/bean/Profiles/bean/Roles/bean
+ -->
+
+ <icons>
+ <icon>
+ <baseDir>images</baseDir>
+ <fileName>users3.png</fileName>
+ <category>24x24/plain</category>
+ </icon>
+ </icons>
+
+ <actions>
+ <action>
+ <name>Rename</name>
+ <command>RenameRole</command>
+ <description>Rename a Role</description>
+ <context>root/Applications/bean/Roles/bean</context>
+ <!--icon>
+ <baseDir>images</baseDir>
+ <fileName>replace2.png</fileName>
+ <category>16x16/plain</category>
+ </icon-->
+ </action>
+ <action>
+ <name>Delete</name>
+ <command>DeleteRoleFromApplication</command>
+ <description>Delete a Role from an Application</description>
+ <context>root/Applications/bean/Roles/bean</context>
+ <!--icon>
+ <baseDir>images</baseDir>
+ <fileName>delete2.png</fileName>
+ <category>16x16/plain</category>
+ </icon-->
+ </action>
+ <action>
+ <name>Revoke</name>
+ <command>RevokeRoleFromProfile</command>
+ <description>Revokes a Role from a User's Profile</description>
+ <context>root/User/bean/Profiles/bean/Roles/bean</context>
+ <!--icon>
+ <baseDir>images</baseDir>
+ <fileName>delete2.png</fileName>
+ <category>16x16/plain</category>
+ </icon-->
+ </action>
+ <action>
+ <name>GrantPermission</name>
+ <command>GrantPermissionToRole</command>
+ <description>Grants a Permission to a Role</description>
+ <context>root/Applications/bean/Roles/bean</context>
+ <!--icon>
+ <baseDir>images</baseDir>
+ <fileName>add2.png</fileName>
+ <category>16x16/plain</category>
+ </icon-->
+ </action>
+ <action>
+ <name>RevokePermission</name>
+ <command>RevokePermissionFromRole</command>
+ <description>Revokes a Permission from a Role</description>
+ <context>root/Applications/bean/Roles/bean</context>
+ <!--icon>
+ <baseDir>images</baseDir>
+ <fileName>delete2.png</fileName>
+ <category>16x16/plain</category>
+ </icon-->
+ </action>
+ <action>
+ <name>Remove</name>
+ <command>RemoveRoleFromProfile</command>
+ <description>Remove a Role from a user's profile</description>
+ <context>root/Users/bean/Profiles/bean/Roles/bean</context>
+ <!--icon>
+ <baseDir>images</baseDir>
+ <fileName>delete2.png</fileName>
+ <category>16x16/plain</category>
+ </icon-->
+ </action>
+ </actions>
+
+ <contains>
+ <container>
+ <name>Grants</name>
+ <contents>org.apache.rms.BitPermission</contents>
+ <iterationProperty>grants</iterationProperty>
+
+ <icon>
+ <baseDir>images</baseDir>
+ <fileName>keys.png</fileName>
+ <category>24x24/plain</category>
+ </icon>
+ <actions>
+ <action>
+ <name>Grant</name>
+ <command>GrantPermissionToRole</command>
+ <description>Grants a Permission to a Role</description>
+ <context>root/Applications/bean/Roles/bean/Grants</context>
+ <!--icon>
+ <baseDir>images</baseDir>
+ <fileName>add2.png</fileName>
+ <category>16x16/plain</category>
+ </icon-->
+ </action>
+ <action>
+ <name>Revoke</name>
+ <command>RevokePermissionFromRole</command>
+ <description>Grants a Permission to a Role</description>
+ <context>root/Applications/bean/Roles/bean/Grants</context>
+ <!--icon>
+ <baseDir>images</baseDir>
+ <fileName>delete2.png</fileName>
+ <category>16x16/plain</category>
+ </icon-->
+ </action>
+ </actions>
+ </container>
+ </contains>
+ </type>
+
+ <!--
+ =====================================================================
+ B I T P E R M I S S I O N M E T A D A T A D E F I N I T I O N S
+ =====================================================================
+ -->
+
+ <type>
+ <class>org.apache.rms.BitPermission</class>
+ <keyed-by>
+ <property>name</property>
+ </keyed-by>
+ <scalar-properties>
+ <property>name</property>
+ <property>index</property>
+ <property>application</property>
+ </scalar-properties>
+
+ <icons>
+ <icon>
+ <baseDir>images</baseDir>
+ <fileName>key1_preferences.png</fileName>
+ <category>24x24/plain</category>
+ <context>
+ root/Users/bean/Profiles/bean/Permissions/bean
+ </context>
+ </icon>
+
+ <icon>
+ <baseDir>images</baseDir>
+ <fileName>key1.png</fileName>
+ <category>24x24/plain</category>
+ <context>
+ root/Applications/bean/Permissions/bean
+ </context>
+ </icon>
+
+ <icon>
+ <baseDir>images</baseDir>
+ <fileName>key1_add.png</fileName>
+ <category>24x24/plain</category>
+ <context>root/Applications/bean/Roles/bean/Grants/bean</context>
+ <context>root/Users/bean/Profiles/bean/Roles/bean/Grants/bean</context>
+ </icon>
+
+ <icon>
+ <baseDir>images</baseDir>
+ <fileName>key1_add.png</fileName>
+ <category>24x24/plain</category>
+ <context>root/Users/bean/Profiles/bean/Grants/bean</context>
+ </icon>
+
+ <icon>
+ <baseDir>images</baseDir>
+ <fileName>key1_delete.png</fileName>
+ <category>24x24/plain</category>
+ <context>root/Users/bean/Profiles/bean/Denials/bean</context>
+ </icon>
+
+ </icons>
+
+ <!--
+ A BitPermission is visible in 5 contexts:
+ 1). Defined under an Application's Permissions container here:
+ root/Applications/bean/Permissions/bean
+
+ 2). Referred to by a Role in its Grants container here:
+ root/Applications/bean/Roles/bean/Grants/bean
+
+ 3). Referred to by a Profile in its Grants container here:
+ root/Users/bean/Profiles/bean/Grants/bean
+
+ 4). Referred to by a Profile in its Denials container here:
+ root/Users/bean/Profiles/bean/Denials/bean
+
+ 5). Referred to by a Profile in its Grants container here:
+ root/Users/bean/Profiles/bean/Permissions/bean
+ -->
+
+ <actions>
+ <action>
+ <name>Rename</name>
+ <command>RenamePermission</command>
+ <description>Renames a Permission</description>
+ <context>root/Applications/bean/Permissions/bean</context>
+ <!--icon>
+ <baseDir>images</baseDir>
+ <fileName>replace2.png</fileName>
+ <category>16x16/plain</category>
+ </icon-->
+ </action>
+ <action>
+ <name>Delete</name>
+ <command>DeletePermissionFromApplication</command>
+ <description>Deletes a Permission from an Application</description>
+ <context>root/Applications/bean/Permissions/bean</context>
+ <!--icon>
+ <baseDir>images</baseDir>
+ <fileName>delete2.png</fileName>
+ <category>16x16/plain</category>
+ </icon-->
+ </action>
+ <action>
+ <name>Revoke</name>
+ <command>RevokePermissionFromRole</command>
+ <description>Revokes a Permission from a Role</description>
+ <context>root/Applications/bean/Roles/bean/Grants/bean</context>
+ <!--icon>
+ <baseDir>images</baseDir>
+ <fileName>delete2.png</fileName>
+ <category>16x16/plain</category>
+ </icon-->
+ </action>
+ <action>
+ <name>Revoke</name>
+ <command>RevokeGrantFromProfile</command>
+ <description>Revokes a Permission grant from a Profile</description>
+ <context>root/Users/bean/Profiles/bean/Grants/bean</context>
+ <!--icon>
+ <baseDir>images</baseDir>
+ <fileName>delete2.png</fileName>
+ <category>16x16/plain</category>
+ </icon-->
+ </action>
+ <action>
+ <name>Revoke</name>
+ <command>RevokeDenialFromProfile</command>
+ <description>Revokes a Permission denial from a Profile</description>
+ <context>root/Users/bean/Profiles/bean/Denials/bean</context>
+ <!--icon>
+ <baseDir>images</baseDir>
+ <fileName>delete2.png</fileName>
+ <category>16x16/plain</category>
+ </icon-->
+ </action>
+ <action>
+ <name>Trace</name>
+ <command>TraceEffectivePermission</command>
+ <description>
+ Traces the sources causing the grant of the Permission
+ </description>
+ <context>root/Users/bean/Profiles/bean/Permissions/bean</context>
+ </action>
+ </actions>
+ </type>
+
+
+ <!--
+ =======================================================
+ P R O F I L E M E T A D A T A D E F I N I T I O N S
+ =======================================================
+ -->
+
+ <type>
+ <class>org.apache.rms.Profile</class>
+ <keyed-by>
+ <property>applicationName</property>
+ </keyed-by>
+ <scalar-properties>
+ <property>userName</property>
+ <property>applicationName</property>
+ </scalar-properties>
+
+ <icons>
+ <icon>
+ <baseDir>images</baseDir>
+ <fileName>user1_preferences.png</fileName>
+ <category>24x24/plain</category>
+ </icon>
+ </icons>
+
+ <actions>
+ <action>
+ <name>Delete</name>
+ <command>DeleteProfileFromUser</command>
+ <description>Deletes a profile from a user</description>
+ <context>root/Users/bean/Profiles/bean</context>
+ <!--icon>
+ <baseDir>images</baseDir>
+ <fileName>delete2.png</fileName>
+ <category>16x16/plain</category>
+ </icon-->
+ </action>
+
+ <action>
+ <name>Grant</name>
+ <command>GrantPermissionToProfile</command>
+ <description>Grants a permission to a user profile</description>
+ <context>root/Users/bean/Profiles/bean</context>
+ <!--icon>
+ <baseDir>images</baseDir>
+ <fileName>add2.png</fileName>
+ <category>16x16/plain</category>
+ </icon-->
+ </action>
+ <action>
+ <name>RevokeGrant</name>
+ <command>RevokeGrantFromProfile</command>
+ <description>Revokes a permission grant to a user profile</description>
+ <context>root/Users/bean/Profiles/bean</context>
+ <!--icon>
+ <baseDir>images</baseDir>
+ <fileName>delete2.png</fileName>
+ <category>16x16/plain</category>
+ </icon-->
+ </action>
+
+ <action>
+ <name>Deny</name>
+ <command>DenyPermissionForProfile</command>
+ <description>Denies a permission for a user profile</description>
+ <context>root/Users/bean/Profiles/bean</context>
+ <!--icon>
+ <baseDir>images</baseDir>
+ <fileName>delete2.png</fileName>
+ <category>16x16/plain</category>
+ </icon-->
+ </action>
+ <action>
+ <name>RevokeDenial</name>
+ <command>RevokeDenialFromProfile</command>
+ <description>
+ Revokes a permission denial from a user profile
+ </description>
+ <context>root/Users/bean/Profiles/bean</context>
+ <!--icon>
+ <baseDir>images</baseDir>
+ <fileName>delete2.png</fileName>
+ <category>16x16/plain</category>
+ </icon-->
+ </action>
+
+ <action>
+ <name>AddRole</name>
+ <command>AddRoleToProfile</command>
+ <description>Adds a role to a user profile</description>
+ <context>root/Users/bean/Profiles/bean</context>
+ <!--icon>
+ <baseDir>images</baseDir>
+ <fileName>add2.png</fileName>
+ <category>16x16/plain</category>
+ </icon-->
+ </action>
+ <action>
+ <name>RemoveRole</name>
+ <command>RemoveRoleFromProfile</command>
+ <description>Removes a role from a user profile</description>
+ <context>root/Users/bean/Profiles/bean</context>
+ <!--icon>
+ <baseDir>images</baseDir>
+ <fileName>delete2.png</fileName>
+ <category>16x16/plain</category>
+ </icon-->
+ </action>
+ </actions>
+
+ <contains>
+
+ <container>
+ <name>Grants</name>
+ <contents>org.apache.rms.BitPermission</contents>
+ <iterationProperty>grants</iterationProperty>
+
+ <icon>
+ <baseDir>images</baseDir>
+ <fileName>keys.png</fileName>
+ <category>24x24/plain</category>
+ </icon>
+ <actions>
+ <action>
+ <name>Grant</name>
+ <command>GrantPermissionToProfile</command>
+ <description>Grants a permission to a user profile</description>
+ <context>root/Users/bean/Profiles/bean/Grants</context>
+ <!--icon>
+ <baseDir>images</baseDir>
+ <fileName>add2.png</fileName>
+ <category>16x16/plain</category>
+ </icon-->
+ </action>
+ <action>
+ <name>Revoke</name>
+ <command>RevokeGrantFromProfile</command>
+ <description>Revokes granted perm from user profile</description>
+ <context>root/Users/bean/Profiles/bean/Grants</context>
+ <!--icon>
+ <baseDir>images</baseDir>
+ <fileName>delete2.png</fileName>
+ <category>16x16/plain</category>
+ </icon-->
+ </action>
+ </actions>
+ </container>
+
+ <container>
+ <name>Denials</name>
+ <contents>org.apache.rms.BitPermission</contents>
+ <iterationProperty>denials</iterationProperty>
+
+ <icon>
+ <baseDir>images</baseDir>
+ <fileName>keys.png</fileName>
+ <category>24x24/plain</category>
+ </icon>
+ <actions>
+ <action>
+ <name>Deny</name>
+ <command>DenyPermissionForProfile</command>
+ <description>Denies a permission for a user profile</description>
+ <context>root/Users/bean/Profiles/bean/Denials</context>
+ <!--icon>
+ <baseDir>images</baseDir>
+ <fileName>add2.png</fileName>
+ <category>16x16/plain</category>
+ </icon-->
+ </action>
+ <action>
+ <name>Revoke</name>
+ <command>RevokeDenialFromProfile</command>
+ <description>Revokes denied perm from user profile</description>
+ <context>root/Users/bean/Profiles/bean/Denials</context>
+ <!--icon>
+ <baseDir>images</baseDir>
+ <fileName>delete2.png</fileName>
+ <category>16x16/plain</category>
+ </icon-->
+ </action>
+ </actions>
+
+ </container>
+
+ <container>
+ <name>Permissions</name>
+ <contents>org.apache.rms.BitPermission</contents>
+ <iterationProperty>permissions</iterationProperty>
+
+ <icon>
+ <baseDir>images</baseDir>
+ <fileName>keys.png</fileName>
+ <category>24x24/plain</category>
+ </icon>
+ <actions>
+ <action>
+ <name>Trace</name>
+ <command>TracePermissionForProfile</command>
+ <description>Traces how a profile gained the permission</description>
+ <context>root/Users/bean/Profiles/bean/Permissions</context>
+ </action>
+ </actions>
+ </container>
+
+ <container>
+ <name>Roles</name>
+ <contents>org.apache.rms.Role</contents>
+ <iterationProperty>roles</iterationProperty>
+
+ <icon>
+ <baseDir>images</baseDir>
+ <fileName>users_family.png</fileName>
+ <category>24x24/plain</category>
+ </icon>
+ <actions>
+ <action>
+ <name>Add</name>
+ <command>AddRoleToProfile</command>
+ <description>Adds a role to a user profile</description>
+ <context>root/Users/bean/Profiles/bean/Roles</context>
+ <!--icon>
+ <baseDir>images</baseDir>
+ <fileName>add2.png</fileName>
+ <category>16x16/plain</category>
+ </icon-->
+ </action>
+ <action>
+ <name>Remove</name>
+ <command>RemoveRoleFromProfile</command>
+ <description>Removes a role from user profile</description>
+ <context>root/Users/bean/Profiles/bean/Roles</context>
+ <!--icon>
+ <baseDir>images</baseDir>
+ <fileName>delete2.png</fileName>
+ <category>16x16/plain</category>
+ </icon-->
+ </action>
+ </actions>
+ </container>
+ </contains>
+ </type>
+</config>
\ No newline at end of file
Added: incubator/directory/rms/trunk/gui/ocmm/impl/src/test/org/apache/rms/ui/ocmm/test/MerlinOcmmFactoryTest.java
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/ocmm/impl/src/test/org/apache/rms/ui/ocmm/test/MerlinOcmmFactoryTest.java Wed Apr 7 18:57:22 2004
@@ -0,0 +1,67 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.rms.ui.ocmm.test ;
+
+
+import org.apache.rms.ui.ocmm.ContainmentModel ;
+import org.apache.rms.ui.ocmm.spi.ContainmentModelFactory ;
+import org.apache.avalon.merlin.unit.AbstractMerlinTestCase ;
+
+
+/**
+ * Ocmm factory merlin implememtation based test case.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 27 $
+ */
+public class MerlinOcmmFactoryTest extends AbstractMerlinTestCase
+{
+
+ // --------------------------------------------------------
+ // constructors
+ // --------------------------------------------------------
+
+ /**
+ * @param name the name of the test case
+ */
+ public MerlinOcmmFactoryTest( String name )
+ {
+ super( name );
+ }
+
+
+ // --------------------------------------------------------
+ // unit testcases
+ // --------------------------------------------------------
+
+
+ /**
+ * Tests for service resolution.
+ *
+ * @throws Exception if there are failures when starting the container
+ */
+ public void testServiceResolution() throws Exception
+ {
+ ContainmentModelFactory l_factory = ( ContainmentModelFactory )
+ resolve( "/rmc/ocmm-factory" ) ;
+ assertNotNull( "factory is null", l_factory ) ;
+
+ ContainmentModel l_model = l_factory.getContainmentModel() ;
+ assertNotNull( "l_model is null", l_model ) ;
+ }
+}
+
Added: incubator/directory/rms/trunk/gui/ocmm/maven.log
==============================================================================
--- (empty file)
+++ incubator/directory/rms/trunk/gui/ocmm/maven.log Wed Apr 7 18:57:22 2004
@@ -0,0 +1,1038 @@
+2004-04-06 23:56:27,838 INFO org.apache.maven.plugin.PluginManager - Initializing Plugins!
+2004-04-06 23:56:27,869 INFO org.apache.maven.plugin.PluginManager - Unpacking plugins from directory --> j:\apache\maven\maven-1.0-beta-10\plugins
+2004-04-06 23:56:27,963 INFO org.apache.maven.plugin.PluginManager - Processing unpacked plugins in C:\Documents and Settings\akarasulu\.maven\plugins
+2004-04-06 23:56:27,963 INFO org.apache.maven.plugin.PluginManager - Processing Plugin: maven-deploy-plugin-1.1
+2004-04-06 23:56:28,135 INFO org.apache.maven.plugin.PluginManager - Processing Plugin: maven-plexus-plugin-0.2
+2004-04-06 23:56:28,166 INFO org.apache.maven.plugin.PluginManager - Processing Plugin: maven-runner-plugin-0.2
+2004-04-06 23:56:28,166 INFO org.apache.maven.plugin.PluginManager - Processing Plugin: maven-sea-plugin-1.0
+2004-04-06 23:56:28,182 INFO org.apache.maven.plugin.PluginManager - Processing Plugin: maven-vdoclet-plugin-1.0
+2004-04-06 23:56:28,182 INFO org.apache.maven.plugin.PluginCacheManager - Saving caches to C:\Documents and Settings\akarasulu\.maven\plugins
+2004-04-06 23:56:28,245 INFO org.apache.maven.plugin.PluginManager - Finished initializing Plugins!
+2004-04-06 23:56:32,043 WARN org.apache.commons.jelly.expression.jexl.JexlExpression - Caught exception evaluating: org.apache.commons.jexl.ExpressionImpl@4cd580. Reason: java.lang.NumberFormatException: For input string: "includes"
+java.lang.NumberFormatException: For input string: "includes"
+ at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
+ at java.lang.Integer.parseInt(Integer.java:468)
+ at java.lang.Integer.valueOf(Integer.java:574)
+ at org.apache.commons.jexl.util.Coercion.coerceInteger(Coercion.java:95)
+ at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:177)
+ at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:104)
+ at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:106)
+ at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:88)
+ at org.apache.commons.jexl.parser.ASTNotNode.value(ASTNotNode.java:88)
+ at org.apache.commons.jexl.parser.ASTExpression.value(ASTExpression.java:85)
+ at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:123)
+ at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:115)
+ at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$ExpressionSupportLocal.evaluate(JexlExpressionFactory.java:168)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:106)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsBoolean(ExpressionSupport.java:116)
+ at org.apache.commons.jelly.tags.core.WhenTag.doTag(WhenTag.java:90)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.ChooseTag.doTag(ChooseTag.java:84)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.ProjectTag.doTag(ProjectTag.java:112)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:112)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:139)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:734)
+ at org.apache.maven.plugin.PluginManager.prepDynamicTagLib(PluginManager.java:611)
+ at org.apache.maven.plugin.PluginManager.prepDynaTagLibs(PluginManager.java:586)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:686)
+ at org.apache.maven.plugin.PluginManager.loadPlugins(PluginManager.java:766)
+ at org.apache.maven.plugin.PluginManager.prepForCallbacks(PluginManager.java:554)
+ at org.apache.maven.plugin.PluginManager.prepForGoal(PluginManager.java:525)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:415)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:360)
+ at org.apache.maven.jelly.tags.maven.ReactorTag.doTag(ReactorTag.java:374)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.GoalTag$1.performAction(GoalTag.java:128)
+ at com.werken.werkz.Goal.fire(Goal.java:639)
+ at com.werken.werkz.Goal.attain(Goal.java:575)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:434)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:348)
+ at org.apache.maven.cli.App.doMain(App.java:525)
+ at org.apache.maven.cli.App.main(App.java:1088)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:324)
+ at com.werken.forehead.Forehead.run(Forehead.java:543)
+ at com.werken.forehead.Forehead.main(Forehead.java:573)
+2004-04-06 23:56:32,043 WARN org.apache.commons.jelly.expression.jexl.JexlExpression - Caught exception evaluating: org.apache.commons.jexl.ExpressionImpl@92b1a1. Reason: java.lang.NumberFormatException: For input string: "excludes"
+java.lang.NumberFormatException: For input string: "excludes"
+ at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
+ at java.lang.Integer.parseInt(Integer.java:468)
+ at java.lang.Integer.valueOf(Integer.java:574)
+ at org.apache.commons.jexl.util.Coercion.coerceInteger(Coercion.java:95)
+ at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:177)
+ at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:104)
+ at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:106)
+ at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:88)
+ at org.apache.commons.jexl.parser.ASTNotNode.value(ASTNotNode.java:88)
+ at org.apache.commons.jexl.parser.ASTExpression.value(ASTExpression.java:85)
+ at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:123)
+ at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:115)
+ at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$ExpressionSupportLocal.evaluate(JexlExpressionFactory.java:168)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:106)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsBoolean(ExpressionSupport.java:116)
+ at org.apache.commons.jelly.tags.core.WhenTag.doTag(WhenTag.java:90)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.ChooseTag.doTag(ChooseTag.java:84)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.ProjectTag.doTag(ProjectTag.java:112)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:112)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:139)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:734)
+ at org.apache.maven.plugin.PluginManager.prepDynamicTagLib(PluginManager.java:611)
+ at org.apache.maven.plugin.PluginManager.prepDynaTagLibs(PluginManager.java:586)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:686)
+ at org.apache.maven.plugin.PluginManager.loadPlugins(PluginManager.java:766)
+ at org.apache.maven.plugin.PluginManager.prepForCallbacks(PluginManager.java:554)
+ at org.apache.maven.plugin.PluginManager.prepForGoal(PluginManager.java:525)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:415)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:360)
+ at org.apache.maven.jelly.tags.maven.ReactorTag.doTag(ReactorTag.java:374)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.GoalTag$1.performAction(GoalTag.java:128)
+ at com.werken.werkz.Goal.fire(Goal.java:639)
+ at com.werken.werkz.Goal.attain(Goal.java:575)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:434)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:348)
+ at org.apache.maven.cli.App.doMain(App.java:525)
+ at org.apache.maven.cli.App.main(App.java:1088)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:324)
+ at com.werken.forehead.Forehead.run(Forehead.java:543)
+ at com.werken.forehead.Forehead.main(Forehead.java:573)
+2004-04-06 23:56:32,058 WARN org.apache.commons.jelly.expression.jexl.JexlExpression - Caught exception evaluating: org.apache.commons.jexl.ExpressionImpl@1a5db4b. Reason: java.lang.NumberFormatException: For input string: "includes"
+java.lang.NumberFormatException: For input string: "includes"
+ at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
+ at java.lang.Integer.parseInt(Integer.java:468)
+ at java.lang.Integer.valueOf(Integer.java:574)
+ at org.apache.commons.jexl.util.Coercion.coerceInteger(Coercion.java:95)
+ at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:177)
+ at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:104)
+ at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:106)
+ at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:88)
+ at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:123)
+ at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:115)
+ at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$ExpressionSupportLocal.evaluate(JexlExpressionFactory.java:168)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:106)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsIterator(ExpressionSupport.java:146)
+ at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:127)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:267)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.ProjectTag.doTag(ProjectTag.java:112)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:112)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:139)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:734)
+ at org.apache.maven.plugin.PluginManager.prepDynamicTagLib(PluginManager.java:611)
+ at org.apache.maven.plugin.PluginManager.prepDynaTagLibs(PluginManager.java:586)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:686)
+ at org.apache.maven.plugin.PluginManager.loadPlugins(PluginManager.java:766)
+ at org.apache.maven.plugin.PluginManager.prepForCallbacks(PluginManager.java:554)
+ at org.apache.maven.plugin.PluginManager.prepForGoal(PluginManager.java:525)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:415)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:360)
+ at org.apache.maven.jelly.tags.maven.ReactorTag.doTag(ReactorTag.java:374)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.GoalTag$1.performAction(GoalTag.java:128)
+ at com.werken.werkz.Goal.fire(Goal.java:639)
+ at com.werken.werkz.Goal.attain(Goal.java:575)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:434)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:348)
+ at org.apache.maven.cli.App.doMain(App.java:525)
+ at org.apache.maven.cli.App.main(App.java:1088)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:324)
+ at com.werken.forehead.Forehead.run(Forehead.java:543)
+ at com.werken.forehead.Forehead.main(Forehead.java:573)
+2004-04-06 23:56:32,058 WARN org.apache.commons.jelly.expression.jexl.JexlExpression - Caught exception evaluating: org.apache.commons.jexl.ExpressionImpl@1e0512a. Reason: java.lang.NumberFormatException: For input string: "excludes"
+java.lang.NumberFormatException: For input string: "excludes"
+ at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
+ at java.lang.Integer.parseInt(Integer.java:468)
+ at java.lang.Integer.valueOf(Integer.java:574)
+ at org.apache.commons.jexl.util.Coercion.coerceInteger(Coercion.java:95)
+ at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:177)
+ at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:104)
+ at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:106)
+ at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:88)
+ at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:123)
+ at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:115)
+ at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$ExpressionSupportLocal.evaluate(JexlExpressionFactory.java:168)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:106)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsIterator(ExpressionSupport.java:146)
+ at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:127)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:267)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.ProjectTag.doTag(ProjectTag.java:112)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:112)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:139)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:734)
+ at org.apache.maven.plugin.PluginManager.prepDynamicTagLib(PluginManager.java:611)
+ at org.apache.maven.plugin.PluginManager.prepDynaTagLibs(PluginManager.java:586)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:686)
+ at org.apache.maven.plugin.PluginManager.loadPlugins(PluginManager.java:766)
+ at org.apache.maven.plugin.PluginManager.prepForCallbacks(PluginManager.java:554)
+ at org.apache.maven.plugin.PluginManager.prepForGoal(PluginManager.java:525)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:415)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:360)
+ at org.apache.maven.jelly.tags.maven.ReactorTag.doTag(ReactorTag.java:374)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.GoalTag$1.performAction(GoalTag.java:128)
+ at com.werken.werkz.Goal.fire(Goal.java:639)
+ at com.werken.werkz.Goal.attain(Goal.java:575)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:434)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:348)
+ at org.apache.maven.cli.App.doMain(App.java:525)
+ at org.apache.maven.cli.App.main(App.java:1088)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:324)
+ at com.werken.forehead.Forehead.run(Forehead.java:543)
+ at com.werken.forehead.Forehead.main(Forehead.java:573)
+2004-04-06 23:56:33,527 WARN org.apache.commons.jelly.expression.jexl.JexlExpression - Caught exception evaluating: org.apache.commons.jexl.ExpressionImpl@82d210. Reason: java.lang.NumberFormatException: For input string: "includes"
+java.lang.NumberFormatException: For input string: "includes"
+ at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
+ at java.lang.Integer.parseInt(Integer.java:468)
+ at java.lang.Integer.valueOf(Integer.java:574)
+ at org.apache.commons.jexl.util.Coercion.coerceInteger(Coercion.java:95)
+ at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:177)
+ at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:104)
+ at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:106)
+ at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:88)
+ at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:123)
+ at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:115)
+ at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$ExpressionSupportLocal.evaluate(JexlExpressionFactory.java:168)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:106)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsBoolean(ExpressionSupport.java:116)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:87)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:267)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:205)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:145)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.impl.DynamicTag.doTag(DynamicTag.java:125)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.GoalTag$1.performAction(GoalTag.java:128)
+ at com.werken.werkz.Goal.fire(Goal.java:639)
+ at com.werken.werkz.Goal.attain(Goal.java:575)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:434)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:360)
+ at org.apache.maven.jelly.tags.maven.ReactorTag.doTag(ReactorTag.java:374)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.GoalTag$1.performAction(GoalTag.java:128)
+ at com.werken.werkz.Goal.fire(Goal.java:639)
+ at com.werken.werkz.Goal.attain(Goal.java:575)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:434)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:348)
+ at org.apache.maven.cli.App.doMain(App.java:525)
+ at org.apache.maven.cli.App.main(App.java:1088)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:324)
+ at com.werken.forehead.Forehead.run(Forehead.java:543)
+ at com.werken.forehead.Forehead.main(Forehead.java:573)
+2004-04-06 23:56:34,793 WARN org.apache.commons.jelly.expression.jexl.JexlExpression - Caught exception evaluating: org.apache.commons.jexl.ExpressionImpl@a8e586. Reason: java.lang.NumberFormatException: For input string: "includes"
+java.lang.NumberFormatException: For input string: "includes"
+ at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
+ at java.lang.Integer.parseInt(Integer.java:468)
+ at java.lang.Integer.valueOf(Integer.java:574)
+ at org.apache.commons.jexl.util.Coercion.coerceInteger(Coercion.java:95)
+ at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:177)
+ at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:104)
+ at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:106)
+ at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:88)
+ at org.apache.commons.jexl.parser.ASTNotNode.value(ASTNotNode.java:88)
+ at org.apache.commons.jexl.parser.ASTExpression.value(ASTExpression.java:85)
+ at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:123)
+ at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:115)
+ at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$ExpressionSupportLocal.evaluate(JexlExpressionFactory.java:168)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:106)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsBoolean(ExpressionSupport.java:116)
+ at org.apache.commons.jelly.tags.core.WhenTag.doTag(WhenTag.java:90)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.ChooseTag.doTag(ChooseTag.java:84)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.ProjectTag.doTag(ProjectTag.java:112)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:112)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:139)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:734)
+ at org.apache.maven.plugin.PluginManager.prepDynamicTagLib(PluginManager.java:611)
+ at org.apache.maven.plugin.PluginManager.prepDynaTagLibs(PluginManager.java:586)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:686)
+ at org.apache.maven.plugin.PluginManager.loadPlugins(PluginManager.java:766)
+ at org.apache.maven.plugin.PluginManager.prepForCallbacks(PluginManager.java:554)
+ at org.apache.maven.plugin.PluginManager.prepForGoal(PluginManager.java:525)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:415)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:360)
+ at org.apache.maven.jelly.tags.maven.ReactorTag.doTag(ReactorTag.java:374)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.GoalTag$1.performAction(GoalTag.java:128)
+ at com.werken.werkz.Goal.fire(Goal.java:639)
+ at com.werken.werkz.Goal.attain(Goal.java:575)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:434)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:348)
+ at org.apache.maven.cli.App.doMain(App.java:525)
+ at org.apache.maven.cli.App.main(App.java:1088)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:324)
+ at com.werken.forehead.Forehead.run(Forehead.java:543)
+ at com.werken.forehead.Forehead.main(Forehead.java:573)
+2004-04-06 23:56:34,793 WARN org.apache.commons.jelly.expression.jexl.JexlExpression - Caught exception evaluating: org.apache.commons.jexl.ExpressionImpl@74cb02. Reason: java.lang.NumberFormatException: For input string: "excludes"
+java.lang.NumberFormatException: For input string: "excludes"
+ at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
+ at java.lang.Integer.parseInt(Integer.java:468)
+ at java.lang.Integer.valueOf(Integer.java:574)
+ at org.apache.commons.jexl.util.Coercion.coerceInteger(Coercion.java:95)
+ at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:177)
+ at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:104)
+ at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:106)
+ at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:88)
+ at org.apache.commons.jexl.parser.ASTNotNode.value(ASTNotNode.java:88)
+ at org.apache.commons.jexl.parser.ASTExpression.value(ASTExpression.java:85)
+ at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:123)
+ at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:115)
+ at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$ExpressionSupportLocal.evaluate(JexlExpressionFactory.java:168)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:106)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsBoolean(ExpressionSupport.java:116)
+ at org.apache.commons.jelly.tags.core.WhenTag.doTag(WhenTag.java:90)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.ChooseTag.doTag(ChooseTag.java:84)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.ProjectTag.doTag(ProjectTag.java:112)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:112)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:139)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:734)
+ at org.apache.maven.plugin.PluginManager.prepDynamicTagLib(PluginManager.java:611)
+ at org.apache.maven.plugin.PluginManager.prepDynaTagLibs(PluginManager.java:586)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:686)
+ at org.apache.maven.plugin.PluginManager.loadPlugins(PluginManager.java:766)
+ at org.apache.maven.plugin.PluginManager.prepForCallbacks(PluginManager.java:554)
+ at org.apache.maven.plugin.PluginManager.prepForGoal(PluginManager.java:525)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:415)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:360)
+ at org.apache.maven.jelly.tags.maven.ReactorTag.doTag(ReactorTag.java:374)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.GoalTag$1.performAction(GoalTag.java:128)
+ at com.werken.werkz.Goal.fire(Goal.java:639)
+ at com.werken.werkz.Goal.attain(Goal.java:575)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:434)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:348)
+ at org.apache.maven.cli.App.doMain(App.java:525)
+ at org.apache.maven.cli.App.main(App.java:1088)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:324)
+ at com.werken.forehead.Forehead.run(Forehead.java:543)
+ at com.werken.forehead.Forehead.main(Forehead.java:573)
+2004-04-06 23:56:34,793 WARN org.apache.commons.jelly.expression.jexl.JexlExpression - Caught exception evaluating: org.apache.commons.jexl.ExpressionImpl@1bc1fb9. Reason: java.lang.NumberFormatException: For input string: "includes"
+java.lang.NumberFormatException: For input string: "includes"
+ at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
+ at java.lang.Integer.parseInt(Integer.java:468)
+ at java.lang.Integer.valueOf(Integer.java:574)
+ at org.apache.commons.jexl.util.Coercion.coerceInteger(Coercion.java:95)
+ at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:177)
+ at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:104)
+ at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:106)
+ at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:88)
+ at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:123)
+ at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:115)
+ at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$ExpressionSupportLocal.evaluate(JexlExpressionFactory.java:168)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:106)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsIterator(ExpressionSupport.java:146)
+ at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:127)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:267)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.ProjectTag.doTag(ProjectTag.java:112)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:112)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:139)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:734)
+ at org.apache.maven.plugin.PluginManager.prepDynamicTagLib(PluginManager.java:611)
+ at org.apache.maven.plugin.PluginManager.prepDynaTagLibs(PluginManager.java:586)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:686)
+ at org.apache.maven.plugin.PluginManager.loadPlugins(PluginManager.java:766)
+ at org.apache.maven.plugin.PluginManager.prepForCallbacks(PluginManager.java:554)
+ at org.apache.maven.plugin.PluginManager.prepForGoal(PluginManager.java:525)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:415)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:360)
+ at org.apache.maven.jelly.tags.maven.ReactorTag.doTag(ReactorTag.java:374)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.GoalTag$1.performAction(GoalTag.java:128)
+ at com.werken.werkz.Goal.fire(Goal.java:639)
+ at com.werken.werkz.Goal.attain(Goal.java:575)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:434)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:348)
+ at org.apache.maven.cli.App.doMain(App.java:525)
+ at org.apache.maven.cli.App.main(App.java:1088)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:324)
+ at com.werken.forehead.Forehead.run(Forehead.java:543)
+ at com.werken.forehead.Forehead.main(Forehead.java:573)
+2004-04-06 23:56:34,809 WARN org.apache.commons.jelly.expression.jexl.JexlExpression - Caught exception evaluating: org.apache.commons.jexl.ExpressionImpl@1c6e818. Reason: java.lang.NumberFormatException: For input string: "excludes"
+java.lang.NumberFormatException: For input string: "excludes"
+ at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
+ at java.lang.Integer.parseInt(Integer.java:468)
+ at java.lang.Integer.valueOf(Integer.java:574)
+ at org.apache.commons.jexl.util.Coercion.coerceInteger(Coercion.java:95)
+ at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:177)
+ at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:104)
+ at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:106)
+ at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:88)
+ at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:123)
+ at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:115)
+ at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$ExpressionSupportLocal.evaluate(JexlExpressionFactory.java:168)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:106)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsIterator(ExpressionSupport.java:146)
+ at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:127)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:267)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.ProjectTag.doTag(ProjectTag.java:112)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:112)
+ at org.apache.maven.jelly.JellyUtils.runScript(JellyUtils.java:139)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:734)
+ at org.apache.maven.plugin.PluginManager.prepDynamicTagLib(PluginManager.java:611)
+ at org.apache.maven.plugin.PluginManager.prepDynaTagLibs(PluginManager.java:586)
+ at org.apache.maven.plugin.PluginManager.loadPlugin(PluginManager.java:686)
+ at org.apache.maven.plugin.PluginManager.loadPlugins(PluginManager.java:766)
+ at org.apache.maven.plugin.PluginManager.prepForCallbacks(PluginManager.java:554)
+ at org.apache.maven.plugin.PluginManager.prepForGoal(PluginManager.java:525)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:415)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:360)
+ at org.apache.maven.jelly.tags.maven.ReactorTag.doTag(ReactorTag.java:374)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.GoalTag$1.performAction(GoalTag.java:128)
+ at com.werken.werkz.Goal.fire(Goal.java:639)
+ at com.werken.werkz.Goal.attain(Goal.java:575)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:434)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:348)
+ at org.apache.maven.cli.App.doMain(App.java:525)
+ at org.apache.maven.cli.App.main(App.java:1088)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:324)
+ at com.werken.forehead.Forehead.run(Forehead.java:543)
+ at com.werken.forehead.Forehead.main(Forehead.java:573)
+2004-04-06 23:56:36,091 WARN org.apache.commons.jelly.expression.jexl.JexlExpression - Caught exception evaluating: org.apache.commons.jexl.ExpressionImpl@82d210. Reason: java.lang.NumberFormatException: For input string: "includes"
+java.lang.NumberFormatException: For input string: "includes"
+ at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
+ at java.lang.Integer.parseInt(Integer.java:468)
+ at java.lang.Integer.valueOf(Integer.java:574)
+ at org.apache.commons.jexl.util.Coercion.coerceInteger(Coercion.java:95)
+ at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:177)
+ at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:104)
+ at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:106)
+ at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:88)
+ at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:123)
+ at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:115)
+ at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$ExpressionSupportLocal.evaluate(JexlExpressionFactory.java:168)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:106)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsBoolean(ExpressionSupport.java:116)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:87)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:267)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:205)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:145)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.impl.DynamicTag.doTag(DynamicTag.java:125)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.GoalTag$1.performAction(GoalTag.java:128)
+ at com.werken.werkz.Goal.fire(Goal.java:639)
+ at com.werken.werkz.Goal.attain(Goal.java:575)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:434)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:360)
+ at org.apache.maven.jelly.tags.maven.ReactorTag.doTag(ReactorTag.java:374)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.GoalTag$1.performAction(GoalTag.java:128)
+ at com.werken.werkz.Goal.fire(Goal.java:639)
+ at com.werken.werkz.Goal.attain(Goal.java:575)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:434)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:348)
+ at org.apache.maven.cli.App.doMain(App.java:525)
+ at org.apache.maven.cli.App.main(App.java:1088)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:324)
+ at com.werken.forehead.Forehead.run(Forehead.java:543)
+ at com.werken.forehead.Forehead.main(Forehead.java:573)
+2004-04-06 23:56:36,122 WARN org.apache.commons.jelly.expression.jexl.JexlExpression - Caught exception evaluating: org.apache.commons.jexl.ExpressionImpl@82d210. Reason: java.lang.NumberFormatException: For input string: "includes"
+java.lang.NumberFormatException: For input string: "includes"
+ at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
+ at java.lang.Integer.parseInt(Integer.java:468)
+ at java.lang.Integer.valueOf(Integer.java:574)
+ at org.apache.commons.jexl.util.Coercion.coerceInteger(Coercion.java:95)
+ at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:177)
+ at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:104)
+ at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:106)
+ at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:88)
+ at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:123)
+ at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:115)
+ at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$ExpressionSupportLocal.evaluate(JexlExpressionFactory.java:168)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:106)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsBoolean(ExpressionSupport.java:116)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:87)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:267)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:205)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:145)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.impl.DynamicTag.doTag(DynamicTag.java:125)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.GoalTag$1.performAction(GoalTag.java:128)
+ at com.werken.werkz.Goal.fire(Goal.java:639)
+ at com.werken.werkz.Goal.attain(Goal.java:575)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:434)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:360)
+ at org.apache.maven.jelly.tags.maven.ReactorTag.doTag(ReactorTag.java:374)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.GoalTag$1.performAction(GoalTag.java:128)
+ at com.werken.werkz.Goal.fire(Goal.java:639)
+ at com.werken.werkz.Goal.attain(Goal.java:575)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:434)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:348)
+ at org.apache.maven.cli.App.doMain(App.java:525)
+ at org.apache.maven.cli.App.main(App.java:1088)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:324)
+ at com.werken.forehead.Forehead.run(Forehead.java:543)
+ at com.werken.forehead.Forehead.main(Forehead.java:573)
+2004-04-06 23:56:36,137 WARN org.apache.commons.jelly.expression.jexl.JexlExpression - Caught exception evaluating: org.apache.commons.jexl.ExpressionImpl@82d210. Reason: java.lang.NumberFormatException: For input string: "includes"
+java.lang.NumberFormatException: For input string: "includes"
+ at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
+ at java.lang.Integer.parseInt(Integer.java:468)
+ at java.lang.Integer.valueOf(Integer.java:574)
+ at org.apache.commons.jexl.util.Coercion.coerceInteger(Coercion.java:95)
+ at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:177)
+ at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:104)
+ at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:106)
+ at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:88)
+ at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:123)
+ at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:115)
+ at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$ExpressionSupportLocal.evaluate(JexlExpressionFactory.java:168)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:106)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsBoolean(ExpressionSupport.java:116)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:87)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:267)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:271)
+ at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:205)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:145)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.impl.DynamicTag.doTag(DynamicTag.java:125)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.GoalTag$1.performAction(GoalTag.java:128)
+ at com.werken.werkz.Goal.fire(Goal.java:639)
+ at com.werken.werkz.Goal.attain(Goal.java:575)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
+ at com.werken.werkz.Goal.attain(Goal.java:573)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:434)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:360)
+ at org.apache.maven.jelly.tags.maven.ReactorTag.doTag(ReactorTag.java:374)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.GoalTag$1.performAction(GoalTag.java:128)
+ at com.werken.werkz.Goal.fire(Goal.java:639)
+ at com.werken.werkz.Goal.attain(Goal.java:575)
+ at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:434)
+ at org.apache.maven.MavenSession.attainGoals(MavenSession.java:348)
+ at org.apache.maven.cli.App.doMain(App.java:525)
+ at org.apache.maven.cli.App.main(App.java:1088)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:324)
+ at com.werken.forehead.Forehead.run(Forehead.java:543)
+ at com.werken.forehead.Forehead.main(Forehead.java:573)
+2004-04-06 23:56:37,794 WARN org.apache.commons.jelly.expression.jexl.JexlExpression - Caught exception evaluating: org.apache.commons.jexl.ExpressionImpl@fa5ff3. Reason: java.lang.NumberFormatException: For input string: "includes"
+java.lang.NumberFormatException: For input string: "includes"
+ at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
+ at java.lang.Integer.parseInt(Integer.java:468)
+ at java.lang.Integer.valueOf(Integer.java:574)
+ at org.apache.commons.jexl.util.Coercion.coerceInteger(Coercion.java:95)
+ at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:177)
+ at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:104)
+ at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:106)
+ at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:88)
+ at org.apache.commons.jexl.parser.ASTNotNode.value(ASTNotNode.java:88)
+ at org.apache.commons.jexl.parser.ASTExpression.value(ASTExpression.java:85)
+ at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:123)
+ at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:115)
+ at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$ExpressionSupportLocal.evaluate(JexlExpressionFactory.java:168)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:106)
+ at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsBoolean(ExpressionSupport.java:116)
+ at org.apache.commons.jelly.tags.core.WhenTag.doTag(WhenTag.java:90)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at org.apache.commons.jelly.tags.core.ChooseTag.doTag(ChooseTag.java:84)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
+ at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
+ at com.werken.werkz.jelly.ProjectTag.doTag(ProjectTag.java:112)
+ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
+ at org.apache.maven.jelly. |