services.jsp revision e8721886dbfd32e88cc7077cbee4b6bb1b44b443
f8d2de6bd2421da1926f3daa456d161670decdf7jchu<%--
f8d2de6bd2421da1926f3daa456d161670decdf7jchu DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
f8d2de6bd2421da1926f3daa456d161670decdf7jchu
f8d2de6bd2421da1926f3daa456d161670decdf7jchu Copyright (c) 2011 ForgeRock AS. All Rights Reserved
0168954460bd77d83497a4a6aa9c3f34c55dba25jchu
0168954460bd77d83497a4a6aa9c3f34c55dba25jchu The contents of this file are subject to the terms
f8d2de6bd2421da1926f3daa456d161670decdf7jchu of the Common Development and Distribution License
f8d2de6bd2421da1926f3daa456d161670decdf7jchu (the License). You may not use this file except in
f8d2de6bd2421da1926f3daa456d161670decdf7jchu compliance with the License.
f8d2de6bd2421da1926f3daa456d161670decdf7jchu
f8d2de6bd2421da1926f3daa456d161670decdf7jchu You can obtain a copy of the License at
f8d2de6bd2421da1926f3daa456d161670decdf7jchu http://forgerock.org/license/CDDLv1.0.html
f8d2de6bd2421da1926f3daa456d161670decdf7jchu See the License for the specific language governing
f8d2de6bd2421da1926f3daa456d161670decdf7jchu permission and limitations under the License.
f8d2de6bd2421da1926f3daa456d161670decdf7jchu
f8d2de6bd2421da1926f3daa456d161670decdf7jchu When distributing Covered Code, include this CDDL
f8d2de6bd2421da1926f3daa456d161670decdf7jchu Header Notice in each file and include the License file
f8d2de6bd2421da1926f3daa456d161670decdf7jchu at http://forgerock.org/license/CDDLv1.0.html
f8d2de6bd2421da1926f3daa456d161670decdf7jchu If applicable, add the following below the CDDL Header,
f8d2de6bd2421da1926f3daa456d161670decdf7jchu with the fields enclosed by brackets [] replaced by
f8d2de6bd2421da1926f3daa456d161670decdf7jchu your own identifying information:
0168954460bd77d83497a4a6aa9c3f34c55dba25jchu "Portions Copyrighted [year] [name of copyright owner]"
f8d2de6bd2421da1926f3daa456d161670decdf7jchu
f8d2de6bd2421da1926f3daa456d161670decdf7jchu--%>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu
f8d2de6bd2421da1926f3daa456d161670decdf7jchu<%@ page language="java"
f8d2de6bd2421da1926f3daa456d161670decdf7jchu import="java.security.AccessController,
f8d2de6bd2421da1926f3daa456d161670decdf7jchu com.sun.identity.security.AdminTokenAction,
f8d2de6bd2421da1926f3daa456d161670decdf7jchu com.iplanet.sso.SSOTokenManager,
f8d2de6bd2421da1926f3daa456d161670decdf7jchu com.iplanet.sso.SSOException,
f8d2de6bd2421da1926f3daa456d161670decdf7jchu com.iplanet.sso.SSOToken"
f8d2de6bd2421da1926f3daa456d161670decdf7jchu %>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu<%@ page import="com.sun.identity.sm.*" %>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu<%@ page import="java.util.*" %>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu
f8d2de6bd2421da1926f3daa456d161670decdf7jchu<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
f8d2de6bd2421da1926f3daa456d161670decdf7jchu<html xmlns="http://www.w3.org/1999/xhtml">
f8d2de6bd2421da1926f3daa456d161670decdf7jchu<head>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu <title>OpenAM</title>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu <link rel="stylesheet" type="text/css" href="com_sun_web_ui/css/css_ns6up.css"/>
e51949e6deb4cb79dcb0772d225868626ae52517dduvall <link rel="shortcut icon" href="com_sun_web_ui/images/favicon/favicon.ico" type="image/x-icon"/>
e51949e6deb4cb79dcb0772d225868626ae52517dduvall
f8d2de6bd2421da1926f3daa456d161670decdf7jchu <style type="text/css">
f8d2de6bd2421da1926f3daa456d161670decdf7jchu
e51949e6deb4cb79dcb0772d225868626ae52517dduvall .attribute {
e51949e6deb4cb79dcb0772d225868626ae52517dduvall color: red;
e51949e6deb4cb79dcb0772d225868626ae52517dduvall width: 550px;
e51949e6deb4cb79dcb0772d225868626ae52517dduvall padding: 0px;
e51949e6deb4cb79dcb0772d225868626ae52517dduvall /*background-color: #eeeeee;*/
e51949e6deb4cb79dcb0772d225868626ae52517dduvall }
f8d2de6bd2421da1926f3daa456d161670decdf7jchu
f8d2de6bd2421da1926f3daa456d161670decdf7jchu .attributeRowA {
f8d2de6bd2421da1926f3daa456d161670decdf7jchu width: 100%;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu background-color: #eeeeee;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu padding: 6px;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu }
f8d2de6bd2421da1926f3daa456d161670decdf7jchu
f8d2de6bd2421da1926f3daa456d161670decdf7jchu .attributeRowB {
f8d2de6bd2421da1926f3daa456d161670decdf7jchu width: 100%;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu background-color: #dddddd;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu padding: 6px;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu }
e51949e6deb4cb79dcb0772d225868626ae52517dduvall
f8d2de6bd2421da1926f3daa456d161670decdf7jchu .attribute .name {
f8d2de6bd2421da1926f3daa456d161670decdf7jchu color: blue;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu font-size: 12px;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu font-family: courier;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu /*background-color: #00008b;*/
f8d2de6bd2421da1926f3daa456d161670decdf7jchu }
f8d2de6bd2421da1926f3daa456d161670decdf7jchu
f8d2de6bd2421da1926f3daa456d161670decdf7jchu .attribute .description {
f8d2de6bd2421da1926f3daa456d161670decdf7jchu color: black;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu font-size: 15px;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu /*background-color: #b8860b;*/
f8d2de6bd2421da1926f3daa456d161670decdf7jchu }
f8d2de6bd2421da1926f3daa456d161670decdf7jchu
f8d2de6bd2421da1926f3daa456d161670decdf7jchu .attribute .descriptionMissing {
f8d2de6bd2421da1926f3daa456d161670decdf7jchu color: #666666;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu font-size: 15px;
e51949e6deb4cb79dcb0772d225868626ae52517dduvall }
f8d2de6bd2421da1926f3daa456d161670decdf7jchu
f8d2de6bd2421da1926f3daa456d161670decdf7jchu .attribute .help {
f8d2de6bd2421da1926f3daa456d161670decdf7jchu color: green;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu font-size: 12px;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu /*background-color: #006400;*/
f8d2de6bd2421da1926f3daa456d161670decdf7jchu }
e51949e6deb4cb79dcb0772d225868626ae52517dduvall
f8d2de6bd2421da1926f3daa456d161670decdf7jchu .schemaType {
f8d2de6bd2421da1926f3daa456d161670decdf7jchu position: relative;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu float: left;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu clear: left;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu padding: 2px;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu width: 750px;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu font-family: arial, helvetica;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu }
f8d2de6bd2421da1926f3daa456d161670decdf7jchu
e51949e6deb4cb79dcb0772d225868626ae52517dduvall .schemaBlock {
e51949e6deb4cb79dcb0772d225868626ae52517dduvall position: relative;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu float: left;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu width: 630px;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu display: block;
e51949e6deb4cb79dcb0772d225868626ae52517dduvall font-family: arial, helvetica;
e51949e6deb4cb79dcb0772d225868626ae52517dduvall }
f8d2de6bd2421da1926f3daa456d161670decdf7jchu
e51949e6deb4cb79dcb0772d225868626ae52517dduvall .schemaTitle {
f8d2de6bd2421da1926f3daa456d161670decdf7jchu width: 120px;
3d9c56a157784839d32b49e03a3468a72c53f2dcet float: left;
e51949e6deb4cb79dcb0772d225868626ae52517dduvall font-size: 12px;
3d9c56a157784839d32b49e03a3468a72c53f2dcet }
3d9c56a157784839d32b49e03a3468a72c53f2dcet
3d9c56a157784839d32b49e03a3468a72c53f2dcet .service {
e51949e6deb4cb79dcb0772d225868626ae52517dduvall position: relative;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu float: left;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu padding-top: 10px;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu width: 800px;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu font-family: arial, helvetica;
e51949e6deb4cb79dcb0772d225868626ae52517dduvall }
e51949e6deb4cb79dcb0772d225868626ae52517dduvall
f8d2de6bd2421da1926f3daa456d161670decdf7jchu .serviceName {
f8d2de6bd2421da1926f3daa456d161670decdf7jchu position: relative;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu float: left;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu font-weight: bold;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu font-size: 16px;
e51949e6deb4cb79dcb0772d225868626ae52517dduvall /*background-color: #bbbbcc;*/
f8d2de6bd2421da1926f3daa456d161670decdf7jchu padding: 2px;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu width: 796px;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu }
e51949e6deb4cb79dcb0772d225868626ae52517dduvall
f8d2de6bd2421da1926f3daa456d161670decdf7jchu .serviceBlock {
f8d2de6bd2421da1926f3daa456d161670decdf7jchu position: relative;
0168954460bd77d83497a4a6aa9c3f34c55dba25jchu float: left;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu clear: left;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu left: 10px;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu width: 790px;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu display: block;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu }
f8d2de6bd2421da1926f3daa456d161670decdf7jchu
f8d2de6bd2421da1926f3daa456d161670decdf7jchu
f8d2de6bd2421da1926f3daa456d161670decdf7jchu </style>
e51949e6deb4cb79dcb0772d225868626ae52517dduvall
f8d2de6bd2421da1926f3daa456d161670decdf7jchu <script src="js/jquery.js"></script>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu
e51949e6deb4cb79dcb0772d225868626ae52517dduvall <script type="text/javascript">
f8d2de6bd2421da1926f3daa456d161670decdf7jchu
e51949e6deb4cb79dcb0772d225868626ae52517dduvall $(document).ready(function () {
e51949e6deb4cb79dcb0772d225868626ae52517dduvall $(".schemaTitle").click(function () {
f8d2de6bd2421da1926f3daa456d161670decdf7jchu $(this).parent().children(".schemaBlock").toggle("fast");
f8d2de6bd2421da1926f3daa456d161670decdf7jchu });
f8d2de6bd2421da1926f3daa456d161670decdf7jchu $(".serviceName").click(function () {
f8d2de6bd2421da1926f3daa456d161670decdf7jchu $(this).parent().children(".serviceBlock").toggle("fast");
0168954460bd77d83497a4a6aa9c3f34c55dba25jchu });
f8d2de6bd2421da1926f3daa456d161670decdf7jchu });
f8d2de6bd2421da1926f3daa456d161670decdf7jchu
f8d2de6bd2421da1926f3daa456d161670decdf7jchu </script>
0168954460bd77d83497a4a6aa9c3f34c55dba25jchu
f8d2de6bd2421da1926f3daa456d161670decdf7jchu</head>
e51949e6deb4cb79dcb0772d225868626ae52517dduvall
e51949e6deb4cb79dcb0772d225868626ae52517dduvall
f8d2de6bd2421da1926f3daa456d161670decdf7jchu<body class="DefBdy">
f8d2de6bd2421da1926f3daa456d161670decdf7jchu<div class="SkpMedGry1"><a href="#SkipAnchor3860"><img src="com_sun_web_ui/images/other/dot.gif" alt="Jump to End of Masthead" border="0" height="1" width="1"/></a></div>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu<div class="MstDiv">
f8d2de6bd2421da1926f3daa456d161670decdf7jchu <table class="MstTblBot" title="" border="0" cellpadding="0" cellspacing="0" width="100%">
f8d2de6bd2421da1926f3daa456d161670decdf7jchu <tr>
e51949e6deb4cb79dcb0772d225868626ae52517dduvall <td class="MstTdTtl" width="99%">
f8d2de6bd2421da1926f3daa456d161670decdf7jchu <div class="MstDivTtl"><img name="AMConfig.configurator.ProdName" src="console/images/PrimaryProductName.png" alt="OpenSSO" border="0"/></div>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu </td>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu <td class="MstTdLogo" width="1%"><img name="AMConfig.configurator.BrandLogo" src="com_sun_web_ui/images/other/javalogo.gif" alt="Java(TM) Logo" border="0" height="55" width="31"/></td>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu </tr>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu </table>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu <table class="MstTblEnd" border="0" cellpadding="0" cellspacing="0" width="100%">
f8d2de6bd2421da1926f3daa456d161670decdf7jchu <tr>
e51949e6deb4cb79dcb0772d225868626ae52517dduvall <td><img name="RMRealm.mhCommon.EndorserLogo" src="com_sun_web_ui/images/masthead/masthead-sunname.gif" alt="Sun(TM) Microsystems, Inc." align="right" border="0" height="10" width="108"/></td>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu </tr>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu </table>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu</div>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu<table class="SkpMedGry1" border="0" cellpadding="5" cellspacing="0" width="100%">
f8d2de6bd2421da1926f3daa456d161670decdf7jchu <tr>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu <td><img src="com_sun_web_ui/images/other/dot.gif" alt="Jump to End of Masthead" border="0" height="1" width="1"/></a></td>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu </tr>
e51949e6deb4cb79dcb0772d225868626ae52517dduvall</table>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu<table border="0" cellpadding="10" cellspacing="0" width="100%">
f8d2de6bd2421da1926f3daa456d161670decdf7jchu <tr>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu <td></td>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu </tr>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu</table>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu
f8d2de6bd2421da1926f3daa456d161670decdf7jchu<table cellpadding=15>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu <tr>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu <td>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu
f8d2de6bd2421da1926f3daa456d161670decdf7jchu
f8d2de6bd2421da1926f3daa456d161670decdf7jchu <div id="doc" style="max-width: 800px; display: block;">
f8d2de6bd2421da1926f3daa456d161670decdf7jchu
f8d2de6bd2421da1926f3daa456d161670decdf7jchu <p><strong>OpenAM Service Attributes</strong></p>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu
f8d2de6bd2421da1926f3daa456d161670decdf7jchu <p>In order to translate configuration changes made in OpenAM console to
f8d2de6bd2421da1926f3daa456d161670decdf7jchu <code>ssoadm</code> commands, you must first match the GUI settings to
f8d2de6bd2421da1926f3daa456d161670decdf7jchu service attributes used by <code>ssoadm</code>. This page lists
f8d2de6bd2421da1926f3daa456d161670decdf7jchu available service attributes, including their labels and online help from
e51949e6deb4cb79dcb0772d225868626ae52517dduvall OpenAM console where available. Service attributes apply according to their type:</p>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu
f8d2de6bd2421da1926f3daa456d161670decdf7jchu <dl>
e51949e6deb4cb79dcb0772d225868626ae52517dduvall <dt>Dynamic</dt>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu <dd>Applies to a role or a realm</dd>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu
e51949e6deb4cb79dcb0772d225868626ae52517dduvall <dt>Global</dt>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu <dd>Applies to the entire OpenAM server</dd>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu
e51949e6deb4cb79dcb0772d225868626ae52517dduvall <dt>Organization</dt>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu <dd>Applies to a realm</dd>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu </dl>
e51949e6deb4cb79dcb0772d225868626ae52517dduvall
f8d2de6bd2421da1926f3daa456d161670decdf7jchu <p>To find the service attribute that corresponds to a particular GUI
f8d2de6bd2421da1926f3daa456d161670decdf7jchu setting, click Expand below, and then search for the label of the GUI
f8d2de6bd2421da1926f3daa456d161670decdf7jchu setting within this page.</p>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu
f8d2de6bd2421da1926f3daa456d161670decdf7jchu <p>For example, suppose you changed <code>Maximum Session Time</code> in
f8d2de6bd2421da1926f3daa456d161670decdf7jchu the OpenAM console to 240 seconds. You search this page for
e51949e6deb4cb79dcb0772d225868626ae52517dduvall <code>Maximum Session Time</code> and find the dynamic attribute
e51949e6deb4cb79dcb0772d225868626ae52517dduvall <code>iplanet-am-session-max-session-time</code> on the
e51949e6deb4cb79dcb0772d225868626ae52517dduvall <code>iPlanetAMSessionService</code> service. To set maximum session
f8d2de6bd2421da1926f3daa456d161670decdf7jchu time to 240 seconds by script, you use the following command.</p>
e51949e6deb4cb79dcb0772d225868626ae52517dduvall
e51949e6deb4cb79dcb0772d225868626ae52517dduvall<pre>ssoadm set-attr-defs -u amadmin -f /tmp/pwd.txt -s iPlanetAMSessionService \
e51949e6deb4cb79dcb0772d225868626ae52517dduvall -t dynamic -a "iplanet-am-session-max-session-time=240"</pre>
e51949e6deb4cb79dcb0772d225868626ae52517dduvall
e51949e6deb4cb79dcb0772d225868626ae52517dduvall <hr>
e51949e6deb4cb79dcb0772d225868626ae52517dduvall
e51949e6deb4cb79dcb0772d225868626ae52517dduvall </div>
e51949e6deb4cb79dcb0772d225868626ae52517dduvall
e51949e6deb4cb79dcb0772d225868626ae52517dduvall <br/>
e51949e6deb4cb79dcb0772d225868626ae52517dduvall <div>
e51949e6deb4cb79dcb0772d225868626ae52517dduvall <div style="font-size: 12px; display: inline; text-color: #666666; text-decoration: underline;"
e51949e6deb4cb79dcb0772d225868626ae52517dduvall onclick="$(document).find('.serviceBlock').show(); $(document).find('.schemaBlock').show();">Expand all
e51949e6deb4cb79dcb0772d225868626ae52517dduvall </div>
e51949e6deb4cb79dcb0772d225868626ae52517dduvall &nbsp;|&nbsp;
e51949e6deb4cb79dcb0772d225868626ae52517dduvall <div style="font-size: 12px; display: inline; text-color: #666666; text-decoration: underline;"
e51949e6deb4cb79dcb0772d225868626ae52517dduvall onclick="$(document).find('.serviceBlock').hide(); $(document).find('.schemaBlock').hide();">Collapse all
e51949e6deb4cb79dcb0772d225868626ae52517dduvall </div>
e51949e6deb4cb79dcb0772d225868626ae52517dduvall </div>
e51949e6deb4cb79dcb0772d225868626ae52517dduvall <br/>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu
e51949e6deb4cb79dcb0772d225868626ae52517dduvall <%
e51949e6deb4cb79dcb0772d225868626ae52517dduvall
e51949e6deb4cb79dcb0772d225868626ae52517dduvall // Get valid SSOToken (must be logged in as amadmin)
e51949e6deb4cb79dcb0772d225868626ae52517dduvall SSOTokenManager sMgr;
e51949e6deb4cb79dcb0772d225868626ae52517dduvall SSOToken token;
3d9c56a157784839d32b49e03a3468a72c53f2dcet try {
e51949e6deb4cb79dcb0772d225868626ae52517dduvall sMgr = SSOTokenManager.getInstance();
e51949e6deb4cb79dcb0772d225868626ae52517dduvall token = sMgr.createSSOToken(request);
e51949e6deb4cb79dcb0772d225868626ae52517dduvall } catch (SSOException e) {
3d9c56a157784839d32b49e03a3468a72c53f2dcet response.sendRedirect("UI/Login?goto=../services.jsp");
e51949e6deb4cb79dcb0772d225868626ae52517dduvall return;
e51949e6deb4cb79dcb0772d225868626ae52517dduvall }
e51949e6deb4cb79dcb0772d225868626ae52517dduvall
e51949e6deb4cb79dcb0772d225868626ae52517dduvall ServiceManager sm = new ServiceManager(token);
e51949e6deb4cb79dcb0772d225868626ae52517dduvall Set serviceNames = sm.getServiceNames();
e51949e6deb4cb79dcb0772d225868626ae52517dduvall
e51949e6deb4cb79dcb0772d225868626ae52517dduvall for (Object o : serviceNames) {
e51949e6deb4cb79dcb0772d225868626ae52517dduvall String serviceName = o.toString();
e51949e6deb4cb79dcb0772d225868626ae52517dduvall
e51949e6deb4cb79dcb0772d225868626ae52517dduvall out.println("<div class='service' name='" + o + "'>");
e51949e6deb4cb79dcb0772d225868626ae52517dduvall out.println("<div class='serviceName'>" + serviceName + "</div>");
e51949e6deb4cb79dcb0772d225868626ae52517dduvall out.println("<div class='serviceBlock'>");
e51949e6deb4cb79dcb0772d225868626ae52517dduvall
e51949e6deb4cb79dcb0772d225868626ae52517dduvall // Assume version 1.0 (as of 2012-06 all services are version 1.0)
e51949e6deb4cb79dcb0772d225868626ae52517dduvall ServiceConfigManager scm = sm.getConfigManager(serviceName, "1.0");
e51949e6deb4cb79dcb0772d225868626ae52517dduvall Set<String> instances = scm.getInstanceNames();
e51949e6deb4cb79dcb0772d225868626ae52517dduvall
e51949e6deb4cb79dcb0772d225868626ae52517dduvall // To list instances
e51949e6deb4cb79dcb0772d225868626ae52517dduvall// for (String instance : instances) {
e51949e6deb4cb79dcb0772d225868626ae52517dduvall// out.println("Instance: " + instance + "");
e51949e6deb4cb79dcb0772d225868626ae52517dduvall// }
e51949e6deb4cb79dcb0772d225868626ae52517dduvall
e51949e6deb4cb79dcb0772d225868626ae52517dduvall
e51949e6deb4cb79dcb0772d225868626ae52517dduvall ServiceSchemaManager ssm = sm.getSchemaManager(serviceName, "1.0");
e51949e6deb4cb79dcb0772d225868626ae52517dduvall
e51949e6deb4cb79dcb0772d225868626ae52517dduvall if (ssm != null) {
e51949e6deb4cb79dcb0772d225868626ae52517dduvall
e51949e6deb4cb79dcb0772d225868626ae52517dduvall Map<String, ServiceSchema> serviceSchemaList = new HashMap<String, ServiceSchema>();
e51949e6deb4cb79dcb0772d225868626ae52517dduvall ServiceSchema dynamic = ssm.getDynamicSchema();
e51949e6deb4cb79dcb0772d225868626ae52517dduvall if (dynamic != null) {
e51949e6deb4cb79dcb0772d225868626ae52517dduvall serviceSchemaList.put("Dynamic", dynamic);
e51949e6deb4cb79dcb0772d225868626ae52517dduvall }
e51949e6deb4cb79dcb0772d225868626ae52517dduvall ServiceSchema global = ssm.getGlobalSchema();
e51949e6deb4cb79dcb0772d225868626ae52517dduvall if (global != null) {
e51949e6deb4cb79dcb0772d225868626ae52517dduvall serviceSchemaList.put("Global", global);
e51949e6deb4cb79dcb0772d225868626ae52517dduvall }
3d9c56a157784839d32b49e03a3468a72c53f2dcet ServiceSchema org = ssm.getOrganizationSchema();
e51949e6deb4cb79dcb0772d225868626ae52517dduvall if (org != null) {
e51949e6deb4cb79dcb0772d225868626ae52517dduvall serviceSchemaList.put("Organization", org);
e51949e6deb4cb79dcb0772d225868626ae52517dduvall }
e51949e6deb4cb79dcb0772d225868626ae52517dduvall
e51949e6deb4cb79dcb0772d225868626ae52517dduvall for (String schemaType : serviceSchemaList.keySet()) {
e51949e6deb4cb79dcb0772d225868626ae52517dduvall
f8d2de6bd2421da1926f3daa456d161670decdf7jchu ServiceSchema ss = serviceSchemaList.get(schemaType);
f8d2de6bd2421da1926f3daa456d161670decdf7jchu String i18nFilename = ss.getI18NFileName();
e51949e6deb4cb79dcb0772d225868626ae52517dduvall ResourceBundle bundle = ResourceBundle.getBundle(i18nFilename);
e51949e6deb4cb79dcb0772d225868626ae52517dduvall
e51949e6deb4cb79dcb0772d225868626ae52517dduvall if (ss != null) {
f8d2de6bd2421da1926f3daa456d161670decdf7jchu Set<String> serviceAttributeNames = ss.getServiceAttributeNames();
e51949e6deb4cb79dcb0772d225868626ae52517dduvall
e51949e6deb4cb79dcb0772d225868626ae52517dduvall // Ignore this schema if it is empty
e51949e6deb4cb79dcb0772d225868626ae52517dduvall if (serviceAttributeNames == null || serviceAttributeNames.isEmpty()) {
f8d2de6bd2421da1926f3daa456d161670decdf7jchu continue;
e51949e6deb4cb79dcb0772d225868626ae52517dduvall }
f8d2de6bd2421da1926f3daa456d161670decdf7jchu
f8d2de6bd2421da1926f3daa456d161670decdf7jchu out.println("<div class='schemaType'><div class='schemaTitle'>" + schemaType + "</div>");
e51949e6deb4cb79dcb0772d225868626ae52517dduvall out.println("<div class='schemaBlock'>");
e51949e6deb4cb79dcb0772d225868626ae52517dduvall
f8d2de6bd2421da1926f3daa456d161670decdf7jchu boolean rowAlternator = true;
e51949e6deb4cb79dcb0772d225868626ae52517dduvall for (String s : serviceAttributeNames) {
e51949e6deb4cb79dcb0772d225868626ae52517dduvall // Alternating row backgrounds
e51949e6deb4cb79dcb0772d225868626ae52517dduvall rowAlternator = !rowAlternator;
e51949e6deb4cb79dcb0772d225868626ae52517dduvall
e51949e6deb4cb79dcb0772d225868626ae52517dduvall AttributeSchema as = ss.getAttributeSchema(s);
e51949e6deb4cb79dcb0772d225868626ae52517dduvall out.println("<div class='attribute'>");
f8d2de6bd2421da1926f3daa456d161670decdf7jchu
e51949e6deb4cb79dcb0772d225868626ae52517dduvall if (rowAlternator)
e51949e6deb4cb79dcb0772d225868626ae52517dduvall out.println("<div class='attributeRowA'>");
e51949e6deb4cb79dcb0772d225868626ae52517dduvall else
e51949e6deb4cb79dcb0772d225868626ae52517dduvall out.println("<div class='attributeRowB'>");
e51949e6deb4cb79dcb0772d225868626ae52517dduvall
e51949e6deb4cb79dcb0772d225868626ae52517dduvall out.println("<div class='name'>" + s + "</div>");
e51949e6deb4cb79dcb0772d225868626ae52517dduvall try {
e51949e6deb4cb79dcb0772d225868626ae52517dduvall if (as.getI18NKey() != null)
e51949e6deb4cb79dcb0772d225868626ae52517dduvall out.println("<div class='description'>" + bundle.getString(as.getI18NKey()) + "</div>");
3d9c56a157784839d32b49e03a3468a72c53f2dcet } catch (MissingResourceException mre) {
f8d2de6bd2421da1926f3daa456d161670decdf7jchu out.println("<div class='descriptionMissing'>" + s + " (missing description)</div>");
e51949e6deb4cb79dcb0772d225868626ae52517dduvall }
e51949e6deb4cb79dcb0772d225868626ae52517dduvall try {
e51949e6deb4cb79dcb0772d225868626ae52517dduvall if (as.getI18NKey() != null)
e51949e6deb4cb79dcb0772d225868626ae52517dduvall out.println("<div class='help'>" + bundle.getString(as.getI18NKey().concat(".help")) + "</div>");
e51949e6deb4cb79dcb0772d225868626ae52517dduvall } catch (MissingResourceException mre) {
e51949e6deb4cb79dcb0772d225868626ae52517dduvall }
e51949e6deb4cb79dcb0772d225868626ae52517dduvall out.println("</div>");
e51949e6deb4cb79dcb0772d225868626ae52517dduvall out.println("</div>");
e51949e6deb4cb79dcb0772d225868626ae52517dduvall }
e51949e6deb4cb79dcb0772d225868626ae52517dduvall out.println("</div>");
e51949e6deb4cb79dcb0772d225868626ae52517dduvall out.println("</div>");
f8d2de6bd2421da1926f3daa456d161670decdf7jchu }
f8d2de6bd2421da1926f3daa456d161670decdf7jchu }
e51949e6deb4cb79dcb0772d225868626ae52517dduvall }
f8d2de6bd2421da1926f3daa456d161670decdf7jchu
e51949e6deb4cb79dcb0772d225868626ae52517dduvall out.println("</div></div>");
e51949e6deb4cb79dcb0772d225868626ae52517dduvall }
f8d2de6bd2421da1926f3daa456d161670decdf7jchu
e51949e6deb4cb79dcb0772d225868626ae52517dduvall %>
e51949e6deb4cb79dcb0772d225868626ae52517dduvall
f8d2de6bd2421da1926f3daa456d161670decdf7jchu
e51949e6deb4cb79dcb0772d225868626ae52517dduvall </td>
e51949e6deb4cb79dcb0772d225868626ae52517dduvall </tr>
e51949e6deb4cb79dcb0772d225868626ae52517dduvall</table>
e51949e6deb4cb79dcb0772d225868626ae52517dduvall</body>
e51949e6deb4cb79dcb0772d225868626ae52517dduvall</html>
e51949e6deb4cb79dcb0772d225868626ae52517dduvall
e51949e6deb4cb79dcb0772d225868626ae52517dduvall