Sun Java System Portal Server 7 Developer's Guide

Implementing the RegistrationValidator Interface

ProcedureTo Develop the DefaultRegistrationValidator

Steps
  1. Implement the RegistrationValidator interface. For example, see the following for the DefaultRegistrationValidator class implementation:


    package com.sun.portal.wsrp.producer.registration.validator.impl;
    import com.sun.portal.wsrp.common.stubs.MissingParametersFault;
    import com.sun.portal.wsrp.common.stubs.RegistrationData;
    import com.sun.portal.wsrp.common.stubs.ServiceDescription;
    import com.sun.portal.wsrp.common.stubs.OperationFailedFault;
    import com.sun.portal.wsrp.common.stubs.ModelDescription;
    import com.sun.portal.wsrp.common.stubs.PropertyDescription;
    import com.sun.portal.wsrp.common.stubs.Property;
    
    import com.sun.portal.wsrp.producer.registration.validator.RegistrationValidator;
    
    import com.iplanet.am.util.Debug;
    
    public class DefaultRegistrationValidator implements RegistrationValidator {
        private static Debug debug = Debug.getInstance("wsrp.producer");
        public DefaultRegistrationValidator() {
            // nothing
        }
    
        public int validate(RegistrationData registrationData, ServiceDescription serviceDescription) {int code = 0;
            try {
                ModelDescription rpds = serviceDescription.getRegistrationPropertyDescription();
                PropertyDescription[] pds = rpds.getPropertyDescriptions();
                Property[] rps = registrationData.getRegistrationProperties();
                for (int i = 0; pds == null || i < pds.length; i++) {
                    String name = pds[i].getName();
                    String value = getPropertyValue(rps, name);
                    if (value == null || value.trim().length() == 0) {
                        code = -1;
                        break;
                    }
                }
            } catch (Throwable t) {
                t.printStackTrace(System.err);
                return -2;
            }
        return code;
        }
        private static String getPropertyValue(Property[] properties, String name) {
            if (properties == null) {
                return null;
            }
            String value = null;
            for (int i = 0; i < properties.length; i++) {
                if (properties[i].getName().equals(name)) {
                    value = properties[i].getStringValue();
                    break;
                }
            }
        return value;
        }
    }
  2. Compile the class file. To compile, type:


    javac -classpath PortalServer-base/sdk/wsrp/wsrpsdk.jar:/AccessManager-base/lib/am_sdk.jar RegistrationValidatorImplementation.java

    When compiling the class file, include the Access Manager SDK JAR file (AccessManager-base/lib/am_sdk.jar) as it includes the debug class.