Sun Java System Portal Server 7.1 Developer's Guide

Implementing the RegistrationValidator Interface

ProcedureTo Develop the DefaultRegistrationValidator

  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.