You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openaz.apache.org by pd...@apache.org on 2016/03/17 02:13:13 UTC

[09/23] incubator-openaz git commit: Revert "Ported original att source to openaz"

http://git-wip-us.apache.org/repos/asf/incubator-openaz/blob/c68f98c5/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/components/LDAPPIPConfigurationComponent.java
----------------------------------------------------------------------
diff --git a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/components/LDAPPIPConfigurationComponent.java b/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/components/LDAPPIPConfigurationComponent.java
deleted file mode 100644
index 608b0ac..0000000
--- a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/components/LDAPPIPConfigurationComponent.java
+++ /dev/null
@@ -1,644 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you 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.openaz.xacml.admin.view.components;
-
-import java.util.HashSet;
-import java.util.Hashtable;
-import java.util.Set;
-
-import javax.naming.Context;
-import javax.naming.NamingException;
-import javax.naming.directory.DirContext;
-import javax.naming.directory.InitialDirContext;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import org.apache.openaz.xacml.admin.jpa.PIPConfigParam;
-import org.apache.openaz.xacml.admin.jpa.PIPConfiguration;
-import org.apache.openaz.xacml.admin.view.events.FormChangedEventListener;
-import org.apache.openaz.xacml.admin.view.events.FormChangedEventNotifier;
-import com.vaadin.addon.jpacontainer.EntityItem;
-import com.vaadin.annotations.AutoGenerated;
-import com.vaadin.data.Buffered.SourceException;
-import com.vaadin.data.Property.ValueChangeEvent;
-import com.vaadin.data.Property.ValueChangeListener;
-import com.vaadin.data.Validator.InvalidValueException;
-import com.vaadin.event.FieldEvents.TextChangeEvent;
-import com.vaadin.event.FieldEvents.TextChangeListener;
-import com.vaadin.server.Page;
-import com.vaadin.ui.Alignment;
-import com.vaadin.ui.Button;
-import com.vaadin.ui.Button.ClickEvent;
-import com.vaadin.ui.Button.ClickListener;
-import com.vaadin.ui.ComboBox;
-import com.vaadin.ui.CustomComponent;
-import com.vaadin.ui.Notification;
-import com.vaadin.ui.Notification.Type;
-import com.vaadin.ui.TextField;
-import com.vaadin.ui.VerticalLayout;
-
-public class LDAPPIPConfigurationComponent extends CustomComponent implements FormChangedEventNotifier {
-	
-	@AutoGenerated
-	private VerticalLayout mainLayout;
-
-	@AutoGenerated
-	private Button buttonTest;
-
-	@AutoGenerated
-	private TextField textFieldScope;
-
-	@AutoGenerated
-	private TextField textFieldCredentials;
-
-	@AutoGenerated
-	private TextField textFieldPrincipal;
-
-	@AutoGenerated
-	private ComboBox comboBoxAuthentication;
-
-	@AutoGenerated
-	private TextField textFieldProviderURL;
-
-	@AutoGenerated
-	private TextField textFieldFactory;
-
-	public static String CLASSNAME = "org.apache.openaz.xacml.std.pip.engines.ldap.LDAPEngine";
-	
-	public static String LDAP_CONTEXT = Context.INITIAL_CONTEXT_FACTORY;
-	public static String LDAP_URL = Context.PROVIDER_URL;
-	public static String LDAP_AUTH = "authentication";
-	public static String LDAP_PRINCIPAL = "principal";
-	public static String LDAP_CREDENTIALS = "credentials";
-	public static String LDAP_SCOPE = "scope";
-	
-	public static String LDAP_DEFAULT_CONTEXT = "com.sun.jndi.ldap.LdapCtxFactory";
-	
-	public static String LDAP_AUTH_ANONYMOUS = "anonymous";
-	public static String LDAP_AUTH_SIMPLE = "simple";
-	public static String LDAP_AUTH_SASL = "SASL";	//????
-
-	/*- VaadinEditorProperties={"grid":"RegularGrid,20","showGrid":true,"snapToGrid":true,"snapToObject":true,"movingGuides":false,"snappingDistance":10} */
-
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = 1L;
-	private static final Log logger	= LogFactory.getLog(LDAPPIPConfigurationComponent.class);
-	private final LDAPPIPConfigurationComponent self = this;
-	private final BasicNotifier notifier = new BasicNotifier();
-	private final EntityItem<PIPConfiguration> entity;
-	/**
-	 * The constructor should first build the main layout, set the
-	 * composition root and then do any custom initialization.
-	 *
-	 * The constructor will not be automatically regenerated by the
-	 * visual editor.
-	 * @param configParamField 
-	 */
-	public LDAPPIPConfigurationComponent(EntityItem<PIPConfiguration> entity) {
-		buildMainLayout();
-		setCompositionRoot(mainLayout);
-		//
-		// Save
-		//
-		this.entity = entity;
-		//
-		// Initialize
-		//
-		this.initialize();
-	}
-	
-	protected void initialize() {
-		if (logger.isDebugEnabled()) {
-			logger.debug("initializing " + this.entity.getEntity().toString());
-		}
-		//
-		// Iterate any existing values
-		//
-		Set<PIPConfigParam> unneeded = new HashSet<PIPConfigParam>();
-		for (PIPConfigParam param : this.entity.getEntity().getPipconfigParams()) {
-			if (param.getParamName().equals(LDAP_CONTEXT)) {
-				this.textFieldFactory.setData(param);
-			} else if (param.getParamName().equals(LDAP_URL)) {
-				this.textFieldProviderURL.setData(param);
-			} else if (param.getParamName().equals(LDAP_AUTH)) {
-				this.comboBoxAuthentication.setData(param);
-			} else if (param.getParamName().equals(LDAP_PRINCIPAL)) {
-				this.textFieldPrincipal.setData(param);
-			} else if (param.getParamName().equals(LDAP_CREDENTIALS)) {
-				this.textFieldCredentials.setData(param);
-			} else if (param.getParamName().equals(LDAP_SCOPE)) {
-				this.textFieldScope.setData(param);
-			} else {
-				unneeded.add(param);
-			}
-		}
-		//
-		// Get rid of unneeded parameters
-		//
-		if (unneeded.isEmpty() == false) {
-			this.entity.getEntity().getPipconfigParams().removeAll(unneeded);
-		}
-		//
-		// Initialize GUI
-		//
-		this.initializeEntity();
-		this.initializeCombo();
-		this.initializeText();
-		this.initializeButtons();
-	}
-	
-	protected void initializeEntity() {
-		//
-		// Initialize the entity
-		//
-		this.entity.getEntity().setClassname(CLASSNAME);
-		this.entity.getEntity().setRequiresResolvers(true);
-	}
-	
-	protected void initializeCombo() {
-		//
-		// GUI properties
-		//
-		this.comboBoxAuthentication.setImmediate(true);
-		this.comboBoxAuthentication.setNullSelectionAllowed(false);
-		this.comboBoxAuthentication.setRequired(true);
-		this.comboBoxAuthentication.setRequiredError("You must select an authentication mechanism");
-		//
-		// Initial set of items
-		//
-		this.comboBoxAuthentication.addItem(LDAP_AUTH_ANONYMOUS);
-		this.comboBoxAuthentication.addItem(LDAP_AUTH_SIMPLE);
-		this.comboBoxAuthentication.addItem(LDAP_AUTH_SASL);
-		//
-		// Ensure the authentication combo is selected to something.
-		//
-		PIPConfigParam param = (PIPConfigParam) this.comboBoxAuthentication.getData();
-		if (param == null) {
-			param = new PIPConfigParam(LDAP_AUTH, LDAP_AUTH_ANONYMOUS);
-			this.entity.getEntity().addPipconfigParam(param);
-			this.comboBoxAuthentication.setData(param);
-			this.comboBoxAuthentication.select(param.getParamValue());
-		} else {
-			//
-			// Is this custom?
-			//
-			this.comboBoxAuthentication.select(param.getParamValue());
-			if (this.comboBoxAuthentication.getValue().equals(param.getParamValue()) == false) {
-				this.comboBoxAuthentication.addItem(param.getParamValue());
-				this.comboBoxAuthentication.select(param.getParamValue());
-			}
-		}
-		//
-		// Respond to events
-		//
-		this.comboBoxAuthentication.addValueChangeListener(new ValueChangeListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void valueChange(ValueChangeEvent event) {
-				PIPConfigParam param = (PIPConfigParam) self.comboBoxAuthentication.getData();
-				if (param == null) {
-					param = new PIPConfigParam(LDAP_AUTH, self.comboBoxAuthentication.getValue().toString());
-					self.entity.getEntity().addPipconfigParam(param);
-					self.comboBoxAuthentication.setData(param);
-				}
-				param.setParamValue(self.comboBoxAuthentication.getValue().toString());
-				self.fireFormChangedEvent();
-			}		
-		});
-	}
-	
-	protected void initializeText() {
-		//
-		//
-		//
-		this.textFieldFactory.setImmediate(true);
-		this.textFieldFactory.setNullRepresentation("");
-		//
-		// We can initialize this if there is no value
-		//
-		PIPConfigParam param = (PIPConfigParam) this.textFieldFactory.getData();
-		if (param == null) {
-			param = new PIPConfigParam(LDAP_CONTEXT, LDAP_DEFAULT_CONTEXT);
-			this.entity.getEntity().addPipconfigParam(param);
-			this.textFieldFactory.setData(param);
-		}
-		this.textFieldFactory.setValue(param.getParamValue());
-		this.textFieldFactory.addTextChangeListener(new TextChangeListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void textChange(TextChangeEvent event) {
-				PIPConfigParam param = (PIPConfigParam) self.textFieldFactory.getData();
-				if (param == null) {
-					param = new PIPConfigParam(LDAP_CONTEXT);
-					self.entity.getEntity().addPipconfigParam(param);
-					self.textFieldFactory.setData(param);
-				}
-				param.setParamValue(self.textFieldFactory.getValue());
-				self.fireFormChangedEvent();
-			}
-		});
-		this.textFieldFactory.addValueChangeListener(new ValueChangeListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void valueChange(ValueChangeEvent event) {
-				PIPConfigParam param = (PIPConfigParam) self.textFieldFactory.getData();
-				if (param == null) {
-					param = new PIPConfigParam(LDAP_CONTEXT);
-					self.entity.getEntity().addPipconfigParam(param);
-					self.textFieldFactory.setData(param);
-				}
-				param.setParamValue(self.textFieldFactory.getValue());
-				self.fireFormChangedEvent();
-			}
-		});
-		//
-		//
-		//
-		this.textFieldProviderURL.setImmediate(true);
-		this.textFieldProviderURL.setNullRepresentation("");
-		param = (PIPConfigParam) this.textFieldProviderURL.getData();
-		if (param != null) {
-			this.textFieldProviderURL.setValue(param.getParamValue());
-		}		
-		this.textFieldProviderURL.addTextChangeListener(new TextChangeListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void textChange(TextChangeEvent event) {
-				PIPConfigParam param = (PIPConfigParam) self.textFieldProviderURL.getData();
-				if (param == null) {
-					param = new PIPConfigParam(LDAP_URL);
-					self.entity.getEntity().addPipconfigParam(param);
-					self.textFieldProviderURL.setData(param);
-				}
-				param.setParamValue(self.textFieldProviderURL.getValue());
-				self.fireFormChangedEvent();
-			}			
-		});
-		this.textFieldProviderURL.addValueChangeListener(new ValueChangeListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void valueChange(ValueChangeEvent event) {
-				PIPConfigParam param = (PIPConfigParam) self.textFieldProviderURL.getData();
-				if (param == null) {
-					param = new PIPConfigParam(LDAP_URL);
-					self.entity.getEntity().addPipconfigParam(param);
-					self.textFieldProviderURL.setData(param);
-				}
-				param.setParamValue(self.textFieldProviderURL.getValue());
-				self.fireFormChangedEvent();
-			}			
-		});
-		//
-		//
-		//
-		this.textFieldPrincipal.setImmediate(true);
-		this.textFieldPrincipal.setNullRepresentation("");
-		param = (PIPConfigParam) this.textFieldPrincipal.getData();
-		if (param != null) {
-			this.textFieldPrincipal.setValue(param.getParamValue());
-		}		
-		this.textFieldPrincipal.addTextChangeListener(new TextChangeListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void textChange(TextChangeEvent event) {
-				PIPConfigParam param = (PIPConfigParam) self.textFieldPrincipal.getData();
-				if (param == null) {
-					param = new PIPConfigParam(LDAP_PRINCIPAL);
-					self.entity.getEntity().addPipconfigParam(param);
-					self.textFieldPrincipal.setData(param);
-				}
-				param.setParamValue(self.textFieldPrincipal.getValue());
-				self.fireFormChangedEvent();
-			}			
-		});
-		this.textFieldPrincipal.addValueChangeListener(new ValueChangeListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void valueChange(ValueChangeEvent event) {
-				PIPConfigParam param = (PIPConfigParam) self.textFieldPrincipal.getData();
-				if (param == null) {
-					param = new PIPConfigParam(LDAP_PRINCIPAL);
-					self.entity.getEntity().addPipconfigParam(param);
-					self.textFieldPrincipal.setData(param);
-				}
-				param.setParamValue(self.textFieldPrincipal.getValue());
-				self.fireFormChangedEvent();
-			}			
-		});
-		//
-		//
-		//
-		this.textFieldCredentials.setNullRepresentation("");
-		param = (PIPConfigParam) this.textFieldCredentials.getData();
-		if (param != null) {
-			this.textFieldCredentials.setValue(param.getParamValue());
-		}		
-		this.textFieldCredentials.addTextChangeListener(new TextChangeListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void textChange(TextChangeEvent event) {
-				PIPConfigParam param = (PIPConfigParam) self.textFieldCredentials.getData();
-				if (param == null) {
-					param = new PIPConfigParam(LDAP_CREDENTIALS);
-					self.entity.getEntity().addPipconfigParam(param);
-					self.textFieldCredentials.setData(param);
-				}
-				param.setParamValue(self.textFieldCredentials.getValue());
-				self.fireFormChangedEvent();
-			}			
-		});
-		this.textFieldCredentials.addValueChangeListener(new ValueChangeListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void valueChange(ValueChangeEvent event) {
-				PIPConfigParam param = (PIPConfigParam) self.textFieldCredentials.getData();
-				if (param == null) {
-					param = new PIPConfigParam(LDAP_CREDENTIALS);
-					self.entity.getEntity().addPipconfigParam(param);
-					self.textFieldCredentials.setData(param);
-				}
-				param.setParamValue(self.textFieldCredentials.getValue());
-				self.fireFormChangedEvent();
-			}			
-		});
-		//
-		//
-		//
-		this.textFieldScope.setNullRepresentation("");
-		param = (PIPConfigParam) this.textFieldScope.getData();
-		if (param == null) {
-			param = new PIPConfigParam(LDAP_SCOPE, "subtree");
-			this.entity.getEntity().addPipconfigParam(param);
-			this.textFieldScope.setData(param);
-		}
-		this.textFieldScope.setValue(param.getParamValue());
-		this.textFieldScope.addTextChangeListener(new TextChangeListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void textChange(TextChangeEvent event) {
-				PIPConfigParam param = (PIPConfigParam) self.textFieldScope.getData();
-				if (param == null) {
-					param = new PIPConfigParam(LDAP_SCOPE);
-					self.entity.getEntity().addPipconfigParam(param);
-					self.textFieldScope.setData(param);
-				}
-				param.setParamValue(self.textFieldScope.getValue());
-				self.fireFormChangedEvent();
-			}			
-		});
-		this.textFieldScope.addValueChangeListener(new ValueChangeListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void valueChange(ValueChangeEvent event) {
-				PIPConfigParam param = (PIPConfigParam) self.textFieldScope.getData();
-				if (param == null) {
-					param = new PIPConfigParam(LDAP_SCOPE);
-					self.entity.getEntity().addPipconfigParam(param);
-					self.textFieldScope.setData(param);
-				}
-				param.setParamValue(self.textFieldScope.getValue());
-				self.fireFormChangedEvent();
-			}			
-		});
-	}
-	
-	protected void initializeButtons() {
-		this.buttonTest.setImmediate(true);
-		this.buttonTest.addClickListener(new ClickListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void buttonClick(ClickEvent event) {
-				self.testLDAPConnection();
-			}
-		});
-	}
-	
-	protected void testLDAPConnection() {
-		Hashtable<String, String> env = new Hashtable<String, String>();
-		env.put(Context.INITIAL_CONTEXT_FACTORY, this.textFieldFactory.getValue());
-		env.put(Context.PROVIDER_URL, this.textFieldProviderURL.getValue());
-		env.put(Context.SECURITY_PRINCIPAL, this.textFieldPrincipal.getValue());
-		env.put(Context.SECURITY_CREDENTIALS, this.textFieldCredentials.getValue());
-
-		String auth = this.comboBoxAuthentication.getValue().toString();
-		env.put(Context.SECURITY_AUTHENTICATION, auth);
-		//
-		// Do we need to do anything?
-		//
-		/*
-		if (auth.equals(LDAP_AUTH_ANONYMOUS)) {
-			
-		} else if (auth.equals(LDAP_AUTH_SIMPLE)) {
-			
-		} else if (auth.equals(LDAP_AUTH_SASL)) {
-			
-		}
-		*/
-
-		DirContext ctx = null;
-		try {
-		   ctx = new InitialDirContext(env);
-			new Notification("Success!",
-				    "Connection Established!",
-				    Type.HUMANIZED_MESSAGE, true)
-				    .show(Page.getCurrent());			
-		} catch (NamingException e) {
-		   logger.error(e);
-			new Notification("Connection Failed",
-				    "<br/>" + e.getLocalizedMessage(),
-				    Type.ERROR_MESSAGE, true)
-				    .show(Page.getCurrent());
-		} finally {
-			try {
-				if (ctx != null) {
-					ctx.close();
-				}
-			} catch (NamingException idontcare) { //NOPMD
-			}
-		}
-	}
-	
-	public void validate() throws InvalidValueException {
-		if (logger.isDebugEnabled()) {
-			logger.debug("validate");
-		}
-		this.comboBoxAuthentication.validate();
-		this.textFieldFactory.validate();
-		this.textFieldProviderURL.validate();
-		this.textFieldPrincipal.validate();
-		this.textFieldCredentials.validate();
-		this.textFieldScope.validate();
-	}
-
-	public void commit() throws SourceException, InvalidValueException {
-		if (logger.isDebugEnabled()) {
-			logger.debug("commit");
-		}
-		this.comboBoxAuthentication.commit();
-		this.textFieldFactory.commit();
-		this.textFieldProviderURL.commit();
-		this.textFieldPrincipal.commit();
-		this.textFieldCredentials.commit();
-		this.textFieldScope.commit();
-	}
-	
-	public void discard() throws SourceException {
-		if (logger.isDebugEnabled()) {
-			logger.debug("discard");
-		}
-		
-		this.textFieldFactory.discard();
-		this.textFieldProviderURL.discard();
-		this.textFieldPrincipal.discard();
-		this.textFieldCredentials.discard();
-		this.textFieldScope.discard();
-		/*
-		this.entity.getEntity().getPipconfigParams().remove(LDAP_CONTEXT);
-		this.entity.getEntity().getPipconfigParams().remove(LDAP_URL);
-		this.entity.getEntity().getPipconfigParams().remove(LDAP_AUTH);
-		this.entity.getEntity().getPipconfigParams().remove(LDAP_PRINCIPAL);
-		this.entity.getEntity().getPipconfigParams().remove(LDAP_CREDENTIALS);
-		this.entity.getEntity().getPipconfigParams().remove(LDAP_SCOPE);
-		*/
-	}
-
-	@Override
-	public boolean addListener(FormChangedEventListener listener) {
-		return this.notifier.addListener(listener);
-	}
-
-	@Override
-	public boolean removeListener(FormChangedEventListener listener) {
-		return this.notifier.removeListener(listener);
-	}
-
-	@Override
-	public void fireFormChangedEvent() {
-		this.notifier.fireFormChangedEvent();
-	}
-	
-	@AutoGenerated
-	private VerticalLayout buildMainLayout() {
-		// common part: create layout
-		mainLayout = new VerticalLayout();
-		mainLayout.setImmediate(false);
-		mainLayout.setWidth("-1px");
-		mainLayout.setHeight("-1px");
-		mainLayout.setMargin(true);
-		mainLayout.setSpacing(true);
-		
-		// top-level component properties
-		setWidth("-1px");
-		setHeight("-1px");
-		
-		// textFieldFactory
-		textFieldFactory = new TextField();
-		textFieldFactory.setCaption("Initial Context Factory");
-		textFieldFactory.setImmediate(false);
-		textFieldFactory.setWidth("-1px");
-		textFieldFactory.setHeight("-1px");
-		textFieldFactory.setInvalidAllowed(false);
-		textFieldFactory.setRequired(true);
-		textFieldFactory.setInputPrompt("com.sun.jndi.ldap.LdapCtxFactory");
-		mainLayout.addComponent(textFieldFactory);
-		mainLayout.setExpandRatio(textFieldFactory, 1.0f);
-		
-		// textFieldProviderURL
-		textFieldProviderURL = new TextField();
-		textFieldProviderURL.setCaption("Provider URL");
-		textFieldProviderURL.setImmediate(false);
-		textFieldProviderURL.setWidth("-1px");
-		textFieldProviderURL.setHeight("-1px");
-		textFieldProviderURL.setInvalidAllowed(false);
-		textFieldProviderURL.setRequired(true);
-		textFieldProviderURL
-				.setInputPrompt("Eg. ldap://localhost:389/o=JNDITutorial");
-		mainLayout.addComponent(textFieldProviderURL);
-		mainLayout.setExpandRatio(textFieldProviderURL, 1.0f);
-		
-		// comboBoxAuthentication
-		comboBoxAuthentication = new ComboBox();
-		comboBoxAuthentication.setCaption("Authentication");
-		comboBoxAuthentication.setImmediate(false);
-		comboBoxAuthentication.setWidth("-1px");
-		comboBoxAuthentication.setHeight("-1px");
-		comboBoxAuthentication.setRequired(true);
-		mainLayout.addComponent(comboBoxAuthentication);
-		mainLayout.setExpandRatio(comboBoxAuthentication, 1.0f);
-		
-		// textFieldPrincipal
-		textFieldPrincipal = new TextField();
-		textFieldPrincipal.setCaption("Principal");
-		textFieldPrincipal.setImmediate(false);
-		textFieldPrincipal.setWidth("-1px");
-		textFieldPrincipal.setHeight("-1px");
-		textFieldPrincipal.setNullSettingAllowed(true);
-		mainLayout.addComponent(textFieldPrincipal);
-		mainLayout.setExpandRatio(textFieldPrincipal, 1.0f);
-		
-		// textFieldCredentials
-		textFieldCredentials = new TextField();
-		textFieldCredentials.setCaption("Credentials");
-		textFieldCredentials.setImmediate(false);
-		textFieldCredentials.setWidth("-1px");
-		textFieldCredentials.setHeight("-1px");
-		textFieldCredentials.setNullSettingAllowed(true);
-		mainLayout.addComponent(textFieldCredentials);
-		mainLayout.setExpandRatio(textFieldCredentials, 1.0f);
-		
-		// textFieldScope
-		textFieldScope = new TextField();
-		textFieldScope.setCaption("Scope");
-		textFieldScope.setImmediate(false);
-		textFieldScope.setWidth("-1px");
-		textFieldScope.setHeight("-1px");
-		textFieldScope.setInvalidAllowed(false);
-		textFieldScope.setRequired(true);
-		textFieldScope.setInputPrompt("Eg. subtree");
-		mainLayout.addComponent(textFieldScope);
-		
-		// buttonTest
-		buttonTest = new Button();
-		buttonTest.setCaption("Test Connection");
-		buttonTest.setImmediate(true);
-		buttonTest.setWidth("-1px");
-		buttonTest.setHeight("-1px");
-		mainLayout.addComponent(buttonTest);
-		mainLayout.setComponentAlignment(buttonTest, new Alignment(48));
-		
-		return mainLayout;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-openaz/blob/c68f98c5/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/components/OaExpressionsEditorComponent.java
----------------------------------------------------------------------
diff --git a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/components/OaExpressionsEditorComponent.java b/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/components/OaExpressionsEditorComponent.java
deleted file mode 100644
index bcbeca8..0000000
--- a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/components/OaExpressionsEditorComponent.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you 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.openaz.xacml.admin.view.components;
-
-import org.apache.openaz.xacml.admin.jpa.Obadvice;
-import org.apache.openaz.xacml.admin.jpa.ObadviceExpression;
-import org.apache.openaz.xacml.admin.view.windows.ExpressionEditorWindow;
-import com.vaadin.addon.jpacontainer.EntityItem;
-import com.vaadin.addon.jpacontainer.JPAContainer;
-import com.vaadin.annotations.AutoGenerated;
-import com.vaadin.data.util.filter.Compare;
-import com.vaadin.event.ShortcutAction.KeyCode;
-import com.vaadin.ui.Button;
-import com.vaadin.ui.Button.ClickEvent;
-import com.vaadin.ui.Button.ClickListener;
-import com.vaadin.ui.CustomComponent;
-import com.vaadin.ui.HorizontalLayout;
-import com.vaadin.ui.Table;
-import com.vaadin.ui.UI;
-import com.vaadin.ui.VerticalLayout;
-
-public class OaExpressionsEditorComponent extends CustomComponent {
-
-	/*- VaadinEditorProperties={"grid":"RegularGrid,20","showGrid":true,"snapToGrid":true,"snapToObject":true,"movingGuides":false,"snappingDistance":10} */
-
-	@AutoGenerated
-	private VerticalLayout mainLayout;
-	@AutoGenerated
-	private HorizontalLayout horizontalLayout_1;
-	@AutoGenerated
-	private Button buttonRemove;
-	@AutoGenerated
-	private Button buttonadd;
-	@AutoGenerated
-	private Table tableExpressions;
-	private static final long serialVersionUID = 1L;
-	private final OaExpressionsEditorComponent self = this;
-	private final JPAContainer<ObadviceExpression> container;
-	private final EntityItem<Obadvice> oa;
-	
-	/**
-	 * The constructor should first build the main layout, set the
-	 * composition root and then do any custom initialization.
-	 *
-	 * The constructor will not be automatically regenerated by the
-	 * visual editor.
-	 */
-	public OaExpressionsEditorComponent(EntityItem<Obadvice> oa, JPAContainer<ObadviceExpression> container) {
-		buildMainLayout();
-		setCompositionRoot(mainLayout);
-		//
-		// Save
-		//
-		this.container = container;
-		this.oa = oa;
-		//
-		// Filter the container
-		//
-		this.container.removeAllContainerFilters();
-		this.container.addContainerFilter(new Compare.Equal("obadvice", this.oa.getEntity()));
-		//
-		// Initialize components
-		//
-		this.initializeTable();
-		this.initializeButtons();
-	}
-	
-	private void initializeTable() {
-		this.tableExpressions.setContainerDataSource(this.container);
-		this.tableExpressions.setVisibleColumns(new Object[] {"type"});
-		this.tableExpressions.setColumnHeaders(new String[] {"Expression Type"});
-		this.tableExpressions.setPageLength(this.container.size() + 1);
-	}
-	
-	private void initializeButtons() {
-		this.buttonadd.addClickListener(new ClickListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void buttonClick(ClickEvent event) {
-				ObadviceExpression expression = new ObadviceExpression();
-				// TODO - EntityItem is not used - does container.createEntityItem even need to be called?
-				// final EntityItem<ObadviceExpression> entity = self.container.createEntityItem(expression);
-				self.container.createEntityItem(expression); // See TODO
-
-				final ExpressionEditorWindow editor = new ExpressionEditorWindow();
-				editor.setCaption("Edit Attribute");
-				editor.setCloseShortcut(KeyCode.ESCAPE);
-				editor.setModal(true);
-				editor.center();
-				UI.getCurrent().addWindow(editor);
-			}
-			
-		});
-		this.buttonRemove.setEnabled(false);
-		this.buttonRemove.addClickListener(new ClickListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void buttonClick(ClickEvent event) {
-				self.tableExpressions.removeItem(self.tableExpressions.getValue());
-			}
-			
-		});
-
-	}
-
-	@AutoGenerated
-	private VerticalLayout buildMainLayout() {
-		// common part: create layout
-		mainLayout = new VerticalLayout();
-		mainLayout.setImmediate(false);
-		mainLayout.setWidth("-1px");
-		mainLayout.setHeight("-1px");
-		mainLayout.setMargin(false);
-		
-		// top-level component properties
-		setWidth("-1px");
-		setHeight("-1px");
-		
-		// tableExpressions
-		tableExpressions = new Table();
-		tableExpressions.setCaption("Expressions");
-		tableExpressions.setImmediate(false);
-		tableExpressions
-				.setDescription("The list of expressions for the obligation/advice object.");
-		tableExpressions.setWidth("-1px");
-		tableExpressions.setHeight("-1px");
-		mainLayout.addComponent(tableExpressions);
-		
-		// horizontalLayout_1
-		horizontalLayout_1 = buildHorizontalLayout_1();
-		mainLayout.addComponent(horizontalLayout_1);
-		
-		return mainLayout;
-	}
-
-	@AutoGenerated
-	private HorizontalLayout buildHorizontalLayout_1() {
-		// common part: create layout
-		horizontalLayout_1 = new HorizontalLayout();
-		horizontalLayout_1.setImmediate(false);
-		horizontalLayout_1.setWidth("-1px");
-		horizontalLayout_1.setHeight("-1px");
-		horizontalLayout_1.setMargin(false);
-		horizontalLayout_1.setSpacing(true);
-		
-		// buttonadd
-		buttonadd = new Button();
-		buttonadd.setCaption("Add");
-		buttonadd.setImmediate(true);
-		buttonadd.setWidth("-1px");
-		buttonadd.setHeight("-1px");
-		horizontalLayout_1.addComponent(buttonadd);
-		
-		// buttonRemove
-		buttonRemove = new Button();
-		buttonRemove.setCaption("Remove");
-		buttonRemove.setImmediate(true);
-		buttonRemove.setDescription("Remove selected expression(s).");
-		buttonRemove.setWidth("-1px");
-		buttonRemove.setHeight("-1px");
-		horizontalLayout_1.addComponent(buttonRemove);
-		
-		return horizontalLayout_1;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-openaz/blob/c68f98c5/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/components/PIPParameterComponent.java
----------------------------------------------------------------------
diff --git a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/components/PIPParameterComponent.java b/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/components/PIPParameterComponent.java
deleted file mode 100644
index 5a91ff2..0000000
--- a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/components/PIPParameterComponent.java
+++ /dev/null
@@ -1,453 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you 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.openaz.xacml.admin.view.components;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import org.apache.openaz.xacml.admin.jpa.PIPConfigParam;
-import org.apache.openaz.xacml.admin.jpa.PIPConfiguration;
-import org.apache.openaz.xacml.admin.jpa.PIPResolver;
-import org.apache.openaz.xacml.admin.jpa.PIPResolverParam;
-import org.apache.openaz.xacml.admin.view.events.FormChangedEventListener;
-import org.apache.openaz.xacml.admin.view.events.FormChangedEventNotifier;
-import org.apache.openaz.xacml.admin.view.windows.PIPParamEditorWindow;
-import com.vaadin.annotations.AutoGenerated;
-import com.vaadin.data.Item;
-import com.vaadin.data.Property.ValueChangeEvent;
-import com.vaadin.data.Property.ValueChangeListener;
-import com.vaadin.data.util.BeanItem;
-import com.vaadin.data.util.BeanItemContainer;
-import com.vaadin.event.Action;
-import com.vaadin.event.Action.Handler;
-import com.vaadin.event.ItemClickEvent;
-import com.vaadin.event.ItemClickEvent.ItemClickListener;
-import com.vaadin.ui.Button;
-import com.vaadin.ui.Button.ClickEvent;
-import com.vaadin.ui.Button.ClickListener;
-import com.vaadin.ui.CustomComponent;
-import com.vaadin.ui.HorizontalLayout;
-import com.vaadin.ui.Table;
-import com.vaadin.ui.UI;
-import com.vaadin.ui.VerticalLayout;
-import com.vaadin.ui.Window.CloseEvent;
-import com.vaadin.ui.Window.CloseListener;
-
-public class PIPParameterComponent extends CustomComponent implements FormChangedEventNotifier {
-
-	/*- VaadinEditorProperties={"grid":"RegularGrid,20","showGrid":true,"snapToGrid":true,"snapToObject":true,"movingGuides":false,"snappingDistance":10} */
-
-	@AutoGenerated
-	private VerticalLayout mainLayout;
-	@AutoGenerated
-	private Table tableParameters;
-	@AutoGenerated
-	private HorizontalLayout horizontalLayout_1;
-	@AutoGenerated
-	private Button buttonClear;
-	@AutoGenerated
-	private Button buttonClone;
-	@AutoGenerated
-	private Button buttonRemove;
-	@AutoGenerated
-	private Button buttonAdd;
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = 1L;
-	private static final Log logger	= LogFactory.getLog(PIPParameterComponent.class);
-	private final PIPParameterComponent self = this;
-	private final Object config;
-	private final BasicNotifier notifier = new BasicNotifier();
-	
-	private static final Action ADD_PARAM = 	new Action ("Add Parameter");
-	private static final Action EDIT_PARAM = 	new Action ("Edit Parameter");
-	private static final Action REMOVE_PARAM = 	new Action ("Remove Parameter");
-	private static final Action CLONE_PARAM = 	new Action ("Clone Parameter");
-
-	/**
-	 * The constructor should first build the main layout, set the
-	 * composition root and then do any custom initialization.
-	 *
-	 * The constructor will not be automatically regenerated by the
-	 * visual editor.
-	 */
-	public PIPParameterComponent(Object config) {
-		buildMainLayout();
-		setCompositionRoot(mainLayout);
-		//
-		// Save
-		//
-		this.config = config;
-		//
-		// Initialize
-		//
-		this.initializeTable();
-		this.initializeButtons();
-		//
-		// Initial button setup
-		//
-		this.setupButtons();
-	}
-	
-	protected void initializeTable() {
-		//
-		// Initialize GUI properties
-		//
-		this.tableParameters.setImmediate(true);
-		this.tableParameters.setSelectable(true);
-		//
-		// Add in the data
-		//
-		if (this.config instanceof PIPConfiguration) {
-			BeanItemContainer<PIPConfigParam> container = new BeanItemContainer<PIPConfigParam>(PIPConfigParam.class);
-			PIPConfiguration config = (PIPConfiguration) this.config;
-			for (PIPConfigParam param : config.getPipconfigParams()) {
-				container.addBean(param);
-			}
-			this.tableParameters.setContainerDataSource(container);
-		} else if (this.config instanceof PIPResolver) {
-			BeanItemContainer<PIPResolverParam> container = new BeanItemContainer<PIPResolverParam>(PIPResolverParam.class);
-			PIPResolver resolver = (PIPResolver) this.config;
-			for (PIPResolverParam param : resolver.getPipresolverParams()) {
-				container.addBean(param);
-			}
-			this.tableParameters.setContainerDataSource(container);
-		} else {
-			throw new IllegalArgumentException("Unsupported object");
-		}
-		//
-		// Finish more gui initialization
-		//
-		this.tableParameters.setPageLength(5);//this.tableParameters.getContainerDataSource().size() + 1);
-		this.tableParameters.setVisibleColumns(new Object[] {"paramName", "paramValue"});
-		this.tableParameters.setColumnHeaders(new String[] {"Name", "Value"});
-		this.tableParameters.setSizeFull();
-		//
-		// Action Handler
-		//
-		this.tableParameters.addActionHandler(new Handler() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public Action[] getActions(Object target, Object sender) {
-				if (target == null) {
-					return new Action[] {ADD_PARAM};
-				}
-				return new Action[] {EDIT_PARAM, REMOVE_PARAM, CLONE_PARAM};
-			}
-
-			@Override
-			public void handleAction(Action action, Object sender, Object target) {
-				if (action == ADD_PARAM) {
-					self.editParameter(null);
-					return;
-				}
-				if (action == EDIT_PARAM) {
-					self.editParameter(target);
-					return;
-				}
-				if (action == REMOVE_PARAM) {
-					self.removeParameter(target);
-					return;
-				}
-				if (action == CLONE_PARAM) {
-					self.cloneParameter(target);
-					return;
-				}
-			}
-		});
-		//
-		// Respond to events
-		//
-		this.tableParameters.addValueChangeListener(new ValueChangeListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void valueChange(ValueChangeEvent event) {
-				self.setupButtons();
-			}
-		});
-		//
-		// Double click
-		//
-		this.tableParameters.addItemClickListener(new ItemClickListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void itemClick(ItemClickEvent event) {
-				if (event.isDoubleClick()) {
-					self.editParameter(event.getItemId());
-				}
-			}
-		});
-	}
-	
-	protected void initializeButtons() {
-		this.buttonAdd.addClickListener(new ClickListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void buttonClick(ClickEvent event) {
-				self.editParameter(null);
-			}
-		});
-		this.buttonClone.addClickListener(new ClickListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void buttonClick(ClickEvent event) {
-				self.cloneParameter(self.tableParameters.getValue());
-			}
-		});
-		this.buttonRemove.addClickListener(new ClickListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void buttonClick(ClickEvent event) {
-				self.removeParameter(self.tableParameters.getValue());
-			}
-		});
-		this.buttonClear.addClickListener(new ClickListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void buttonClick(ClickEvent event) {
-				self.clearParameters();
-			}
-		});
-	}
-	
-	protected void setupButtons() {
-		if (this.tableParameters.getValue() != null) {
-			this.buttonClone.setEnabled(true);
-			this.buttonRemove.setEnabled(true);
-		} else {
-			this.buttonClone.setEnabled(false);
-			this.buttonRemove.setEnabled(false);
-		}
-	}
-
-	protected void editParameter(final Object source) {
-		//
-		// Make a copy
-		//
-		final Object target = source != null ? source : this.config instanceof PIPConfiguration ? new PIPConfigParam() : new PIPResolverParam();
-		final PIPParamEditorWindow window = new PIPParamEditorWindow(target);
-		window.setModal(true);
-		window.setCaption((source == null ? "Create New Parameter" : "Edit Parameter"));
-		window.center();
-		window.addCloseListener(new CloseListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void windowClose(CloseEvent e) {
-				//
-				// Did user save?
-				//
-				if (window.isSaved() == false) {
-					return;
-				}
-				//
-				// Yes - was it a brand new object?
-				//
-				if (source == null) {
-					//
-					// yes add it to the parent object
-					//
-					if (self.config instanceof PIPConfiguration) {
-						((PIPConfiguration) self.config).addPipconfigParam((PIPConfigParam) target);
-					} else {
-						((PIPResolver) self.config).addPipresolverParam((PIPResolverParam) target);
-					}
-					//
-					// add it to the table
-					//
-					Item item = self.tableParameters.addItem(target);
-					if (item == null) {
-						logger.error("Failed to add parameter: " + target);
-					} else {
-						self.tableParameters.select(target);
-					}
-				} else {
-					//
-					// Copy the parameters over
-					//
-					if (source instanceof PIPConfigParam) {
-						((PIPConfigParam) source).setParamName(((PIPConfigParam) target).getParamName());
-						((PIPConfigParam) source).setParamValue(((PIPConfigParam) target).getParamValue());
-					} else {
-						((PIPResolverParam) source).setParamName(((PIPResolverParam) target).getParamName());
-						((PIPResolverParam) source).setParamValue(((PIPResolverParam) target).getParamValue());
-					}
-					//
-					// Update the table
-					//
-					self.tableParameters.refreshRowCache();
-				}
-			}
-		});
-		UI.getCurrent().addWindow(window);
-	}
-
-	protected void cloneParameter(Object target) {
-		if (target == null) {
-			logger.error("null target sent to clone method");
-			return;
-		}
-		Item item;
-		if (target instanceof PIPConfigParam && this.config instanceof PIPConfiguration) {
-			PIPConfigParam param = new PIPConfigParam((PIPConfigParam) target);
-			((PIPConfiguration) this.config).addPipconfigParam(param);
-			item = this.tableParameters.addItem(new BeanItem<PIPConfigParam>(param));
-		} else if (target instanceof PIPResolverParam && this.config instanceof PIPResolver) {
-			PIPResolverParam param = new PIPResolverParam((PIPResolverParam) target);
-			((PIPResolver) this.config).addPipresolverParam(param);
-			item = this.tableParameters.addItem(new BeanItem<PIPResolverParam>(param));
-		} else {
-			throw new IllegalArgumentException("Unsupported param and config combination.");
-		}
-		if (item == null) {
-			logger.error("Failed to add parameter to table: " + target);
-		} else {
-			this.tableParameters.select(target);
-		}
-	}
-
-	protected void removeParameter(Object target) {
-		if (target == null) {
-			logger.error("null target sent to remove method");
-			return;
-		}
-		if (this.config instanceof PIPConfiguration) {
-			if (((PIPConfiguration)this.config).removePipconfigParam((PIPConfigParam) target) == null) {
-				logger.error("Failed to remove parameter from pip configuration");
-				return;
-			}
-		} else {
-			if (((PIPResolver) this.config).removePipresolverParam((PIPResolverParam) target) == null) {
-				logger.error("Failed to remove parameter from pip resolver");
-				return;
-			}
-		}
-		if (this.tableParameters.removeItem(target) == false) {
-			logger.error("Failed to remove parameter from table");
-		}
-	}
-	
-	protected void clearParameters() {
-		this.tableParameters.removeAllItems();
-		if (this.config instanceof PIPConfiguration) {
-			((PIPConfiguration) this.config).clearConfigParams();
-		} else {
-			((PIPResolver) this.config).clearParams();
-		}
-	}
-
-	@Override
-	public boolean addListener(FormChangedEventListener listener) {
-		return this.notifier.addListener(listener);
-	}
-
-	@Override
-	public boolean removeListener(FormChangedEventListener listener) {
-		return this.notifier.removeListener(listener);
-	}
-
-	@Override
-	public void fireFormChangedEvent() {
-		this.notifier.fireFormChangedEvent();
-	}
-
-	@AutoGenerated
-	private VerticalLayout buildMainLayout() {
-		// common part: create layout
-		mainLayout = new VerticalLayout();
-		mainLayout.setImmediate(false);
-		mainLayout.setWidth("-1px");
-		mainLayout.setHeight("-1px");
-		mainLayout.setMargin(false);
-		mainLayout.setSpacing(true);
-		
-		// top-level component properties
-		setWidth("-1px");
-		setHeight("-1px");
-		
-		// horizontalLayout_1
-		horizontalLayout_1 = buildHorizontalLayout_1();
-		mainLayout.addComponent(horizontalLayout_1);
-		
-		// tableParameters
-		tableParameters = new Table();
-		tableParameters.setCaption("Configuration Parameters");
-		tableParameters.setImmediate(false);
-		tableParameters.setWidth("-1px");
-		tableParameters.setHeight("-1px");
-		mainLayout.addComponent(tableParameters);
-		
-		return mainLayout;
-	}
-
-	@AutoGenerated
-	private HorizontalLayout buildHorizontalLayout_1() {
-		// common part: create layout
-		horizontalLayout_1 = new HorizontalLayout();
-		horizontalLayout_1.setImmediate(false);
-		horizontalLayout_1.setWidth("-1px");
-		horizontalLayout_1.setHeight("-1px");
-		horizontalLayout_1.setMargin(false);
-		horizontalLayout_1.setSpacing(true);
-		
-		// buttonAdd
-		buttonAdd = new Button();
-		buttonAdd.setCaption("Add");
-		buttonAdd.setImmediate(false);
-		buttonAdd.setWidth("-1px");
-		buttonAdd.setHeight("-1px");
-		horizontalLayout_1.addComponent(buttonAdd);
-		
-		// buttonRemove
-		buttonRemove = new Button();
-		buttonRemove.setCaption("Remove");
-		buttonRemove.setImmediate(false);
-		buttonRemove.setWidth("-1px");
-		buttonRemove.setHeight("-1px");
-		horizontalLayout_1.addComponent(buttonRemove);
-		
-		// buttonClone
-		buttonClone = new Button();
-		buttonClone.setCaption("Clone");
-		buttonClone.setImmediate(false);
-		buttonClone.setWidth("-1px");
-		buttonClone.setHeight("-1px");
-		horizontalLayout_1.addComponent(buttonClone);
-		
-		// buttonClear
-		buttonClear = new Button();
-		buttonClear.setCaption("Clear All");
-		buttonClear.setImmediate(false);
-		buttonClear.setWidth("-1px");
-		buttonClear.setHeight("-1px");
-		horizontalLayout_1.addComponent(buttonClear);
-		
-		return horizontalLayout_1;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-openaz/blob/c68f98c5/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/components/PIPResolverComponent.java
----------------------------------------------------------------------
diff --git a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/components/PIPResolverComponent.java b/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/components/PIPResolverComponent.java
deleted file mode 100644
index 7529e70..0000000
--- a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/components/PIPResolverComponent.java
+++ /dev/null
@@ -1,275 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you 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.openaz.xacml.admin.view.components;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.util.Properties;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import org.apache.openaz.xacml.admin.XacmlAdminUI;
-import org.apache.openaz.xacml.admin.jpa.PIPConfiguration;
-import org.apache.openaz.xacml.admin.jpa.PIPResolver;
-import org.apache.openaz.xacml.admin.view.windows.PIPResolverEditorWindow;
-import org.apache.openaz.xacml.std.pip.engines.csv.ConfigurableCSVResolver;
-import org.apache.openaz.xacml.std.pip.engines.jdbc.ConfigurableJDBCResolver;
-import org.apache.openaz.xacml.std.pip.engines.ldap.ConfigurableLDAPResolver;
-import com.vaadin.addon.jpacontainer.EntityItem;
-import com.vaadin.addon.jpacontainer.JPAContainer;
-import com.vaadin.addon.jpacontainer.provider.CachingMutableLocalEntityProvider;
-import com.vaadin.annotations.AutoGenerated;
-import com.vaadin.data.util.filter.Compare;
-import com.vaadin.event.Action;
-import com.vaadin.event.Action.Handler;
-import com.vaadin.event.ItemClickEvent;
-import com.vaadin.event.ItemClickEvent.ItemClickListener;
-import com.vaadin.ui.CustomComponent;
-import com.vaadin.ui.Table;
-import com.vaadin.ui.UI;
-import com.vaadin.ui.VerticalLayout;
-import com.vaadin.ui.Window.CloseEvent;
-import com.vaadin.ui.Window.CloseListener;
-
-public class PIPResolverComponent extends CustomComponent {
-	/*- VaadinEditorProperties={"grid":"RegularGrid,20","showGrid":true,"snapToGrid":true,"snapToObject":true,"movingGuides":false,"snappingDistance":10} */
-
-	@AutoGenerated
-	private VerticalLayout mainLayout;
-	@AutoGenerated
-	private Table tableResolvers;
-	
-	private final Action ADD_RESOLVER = new Action("Add Resolver");
-	private final Action EDIT_RESOLVER = new Action("Edit Resolver");
-	private final Action CLONE_RESOLVER = new Action("Clone Resolver");
-	private final Action REMOVE_RESOLVER = new Action("Remove Resolver");
-
-	private static final long serialVersionUID = 1L;
-	private static final Log logger	= LogFactory.getLog(PIPResolverComponent.class);
-	
-	private final PIPResolverComponent self = this;
-	private final PIPConfiguration config;
-	
-	private final JPAContainer<PIPResolver> resolverContainer = new JPAContainer<PIPResolver>(PIPResolver.class);
-
-	/**
-	 * The constructor should first build the main layout, set the
-	 * composition root and then do any custom initialization.
-	 *
-	 * The constructor will not be automatically regenerated by the
-	 * visual editor.
-	 */
-	public PIPResolverComponent(PIPConfiguration configuration) {
-		buildMainLayout();
-		setCompositionRoot(mainLayout);
-		//
-		// Save
-		//
-		this.config = configuration;
-		this.resolverContainer.setEntityProvider(new CachingMutableLocalEntityProvider<PIPResolver>(PIPResolver.class, ((XacmlAdminUI)UI.getCurrent()).getEntityManager()));
-		this.resolverContainer.addContainerFilter(new Compare.Equal("pipconfiguration", this.config));
-		//
-		// Initialize GUI
-		//
-		this.initializeTable();
-	}
-	
-	protected void initializeTable() {
-		//
-		// Setup the container datasource
-		//
-		this.tableResolvers.setContainerDataSource(this.resolverContainer);
-		//
-		// Set GUI properties
-		//
-		this.tableResolvers.setImmediate(true);
-		this.tableResolvers.setVisibleColumns(new Object[] {"name", "description", "issuer"});
-		this.tableResolvers.setColumnHeaders(new String[] {"Name", "Description", "Issuer"});
-		this.tableResolvers.setPageLength(this.config.getPipresolvers().size() + 1);
-		this.tableResolvers.setSizeFull();
-		this.tableResolvers.setSelectable(true);
-		//
-		// Add the actions
-		//
-		this.tableResolvers.addActionHandler(new Handler() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public Action[] getActions(Object target, Object sender) {
-				if (target == null) {
-					return new Action[] {ADD_RESOLVER};
-				}
-				return new Action[] {EDIT_RESOLVER, CLONE_RESOLVER, REMOVE_RESOLVER};
-			}
-
-			@Override
-			public void handleAction(Action action, Object sender, Object target) {
-				if (action == ADD_RESOLVER) {
-					PIPResolverComponent.addResolver(self.config, null);
-					return;
-				}
-				if (action == EDIT_RESOLVER) {
-					PIPResolverComponent.editResolver(self.resolverContainer.getItem(target));
-					return;
-				}
-				if (action == CLONE_RESOLVER) {
-					PIPResolverComponent.addResolver(self.config, self.resolverContainer.getItem(target).getEntity());
-					return;
-				}
-				if (action == REMOVE_RESOLVER) {
-					self.removeResolver(self.config, self.resolverContainer.getItem(target).getEntity());
-					return;
-				}
-			}
-		});
-		//
-		// Respond to events
-		//
-		this.tableResolvers.addItemClickListener(new ItemClickListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void itemClick(ItemClickEvent event) {
-				if (event.isDoubleClick()) {
-					Object id = event.getItemId();
-					if (id == null) {
-						return;
-					}
-					PIPResolverComponent.editResolver(self.resolverContainer.getItem(id));
-				}
-			}
-		});
-	}
-	
-	protected void removeResolver(PIPConfiguration config, PIPResolver resolver) {
-		config.removePipresolver(resolver);
-		this.tableResolvers.removeItem(resolver.getId());
-	}
-
-	public static void	addResolver(PIPConfiguration config, PIPResolver pipResolver) {
-		//
-		// Create the entity
-		//
-		PIPResolver resolver = null;
-		if (pipResolver != null) {
-			resolver = new PIPResolver(pipResolver);
-		} else {
-			resolver = new PIPResolver();
-		}
-		resolver.setCreatedBy(((XacmlAdminUI)UI.getCurrent()).getUserid());
-		resolver.setModifiedBy(((XacmlAdminUI)UI.getCurrent()).getUserid());
-		resolver.setPipconfiguration(config);
-		//
-		// Set its default class
-		//
-		if (config.getPiptype().isSQL()) {
-			resolver.setClassname(ConfigurableJDBCResolver.class.getCanonicalName());
-		} else if (config.getPiptype().isLDAP()) {
-			resolver.setClassname(ConfigurableLDAPResolver.class.getCanonicalName());
-		} else if (config.getPiptype().isCSV()) {
-			resolver.setClassname(ConfigurableCSVResolver.class.getCanonicalName());
-		} else if (config.getPiptype().isHyperCSV()) {
-			resolver.setClassname(ConfigurableJDBCResolver.class.getCanonicalName());
-		}
-		//
-		// Bring up the editor window
-		//
-		PIPResolverComponent.editResolver(((XacmlAdminUI)UI.getCurrent()).getPIPResolvers().createEntityItem(resolver));
-		
-	}
-	
-	public static void	editResolver(final EntityItem<PIPResolver> entity) {
-		
-		final PIPResolverEditorWindow window = new PIPResolverEditorWindow(entity);
-		window.setModal(true);
-		window.center();
-		if (entity.isPersistent()) {
-			window.setCaption("Edit Resolver");
-		} else {
-			window.setCaption("Create Resolver");
-		}
-		window.addCloseListener(new CloseListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void windowClose(CloseEvent e) {
-				//
-				// Did the user click "save"?
-				//
-				if (window.isSaved() == false) {
-					return;
-				}
-				//
-				// Adding a new entity?
-				//
-				if (entity.isPersistent() == false) {
-					//
-					// Yes - let's official add it
-					//
-					((XacmlAdminUI)UI.getCurrent()).getPIPResolvers().addEntity(entity.getEntity());
-					((XacmlAdminUI)UI.getCurrent()).refreshPIPConfiguration();
-				}
-			}
-		});
-		UI.getCurrent().addWindow(window);
-	}
-
-	public static void publishConfiguration(EntityItem<PIPConfiguration> config) {
-		Properties properties = config.getEntity().generateProperties(Integer.toString(config.getEntity().getId()));
-		
-		try {
-			ByteArrayOutputStream os = new ByteArrayOutputStream();
-			properties.store(os, "");
-			if (logger.isDebugEnabled()) {
-				logger.debug(os.toString());
-			}
-		} catch (IOException e) { //NOPMD
-			// TODO - Handle, Log or NOPMD
-			// TODO - Will vaadin display error?
-		}
-	}
-		
-	@AutoGenerated
-	private VerticalLayout buildMainLayout() {
-		// common part: create layout
-		mainLayout = new VerticalLayout();
-		mainLayout.setImmediate(false);
-		mainLayout.setWidth("-1px");
-		mainLayout.setHeight("-1px");
-		mainLayout.setMargin(false);
-		mainLayout.setSpacing(true);
-		
-		// top-level component properties
-		setWidth("-1px");
-		setHeight("-1px");
-		
-		// tableResolvers
-		tableResolvers = new Table();
-		tableResolvers.setCaption("Resolvers");
-		tableResolvers.setImmediate(false);
-		tableResolvers.setWidth("-1px");
-		tableResolvers.setHeight("-1px");
-		mainLayout.addComponent(tableResolvers);
-		
-		return mainLayout;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-openaz/blob/c68f98c5/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/components/RangeEditorComponent.java
----------------------------------------------------------------------
diff --git a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/components/RangeEditorComponent.java b/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/components/RangeEditorComponent.java
deleted file mode 100644
index d07aa34..0000000
--- a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/components/RangeEditorComponent.java
+++ /dev/null
@@ -1,599 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you 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.openaz.xacml.admin.view.components;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import org.apache.openaz.xacml.admin.jpa.Attribute;
-import org.apache.openaz.xacml.admin.jpa.ConstraintValue;
-import org.apache.openaz.xacml.admin.util.AdminNotification;
-import org.apache.openaz.xacml.api.Identifier;
-import org.apache.openaz.xacml.api.XACML3;
-import com.vaadin.annotations.AutoGenerated;
-import com.vaadin.data.Property.ValueChangeEvent;
-import com.vaadin.data.Property.ValueChangeListener;
-import com.vaadin.data.Validator;
-import com.vaadin.data.Validator.InvalidValueException;
-import com.vaadin.data.validator.DoubleRangeValidator;
-import com.vaadin.data.validator.IntegerRangeValidator;
-import com.vaadin.ui.Alignment;
-import com.vaadin.ui.Button;
-import com.vaadin.ui.Button.ClickEvent;
-import com.vaadin.ui.Button.ClickListener;
-import com.vaadin.ui.ComboBox;
-import com.vaadin.ui.CustomComponent;
-import com.vaadin.ui.HorizontalLayout;
-import com.vaadin.ui.Panel;
-import com.vaadin.ui.TextField;
-import com.vaadin.ui.VerticalLayout;
-
-public class RangeEditorComponent extends CustomComponent {
-	@AutoGenerated
-	private VerticalLayout mainLayout;
-	@AutoGenerated
-	private Panel panelTester;
-	@AutoGenerated
-	private VerticalLayout verticalLayout_2;
-	@AutoGenerated
-	private Button buttonValidate;
-	@AutoGenerated
-	private TextField textFieldTestInput;
-	@AutoGenerated
-	private HorizontalLayout horizontalLayout_2;
-	@AutoGenerated
-	private TextField textFieldMax;
-	@AutoGenerated
-	private ComboBox comboBoxMax;
-	@AutoGenerated
-	private HorizontalLayout horizontalLayout_1;
-	@AutoGenerated
-	private TextField textFieldMin;
-	@AutoGenerated
-	private ComboBox comboBoxMin;
-	private static final long serialVersionUID = -1L;
-	private static final Log logger	= LogFactory.getLog(RangeEditorComponent.class);
-	private final RangeEditorComponent self = this;
-	private final Attribute attribute;
-	private Identifier datatype;
-
-	/*- VaadinEditorProperties={"grid":"RegularGrid,20","showGrid":true,"snapToGrid":true,"snapToObject":true,"movingGuides":false,"snappingDistance":10} */
-
-	public RangeEditorComponent(Attribute attribute, Identifier datatype) {
-		buildMainLayout();
-		setCompositionRoot(mainLayout);
-		//
-		// Save our attribute
-		//
-		this.attribute = attribute;
-		this.datatype = datatype;
-		//
-		// Finish initialization
-		//
-		this.initializeCombos();	
-		this.initializeTextFields();
-		this.initializeTest();
-		this.setupDatatype(this.datatype);
-	}
-	
-	private void initializeCombos() {
-		//
-		// Add the 2 possible values into each combo box
-		//
-		this.comboBoxMin.setNullSelectionAllowed(true);
-		this.comboBoxMin.addItem("minInclusive");
-		this.comboBoxMin.addItem("minExclusive");		
-		this.comboBoxMax.addItem("maxInclusive");
-		this.comboBoxMax.addItem("maxExclusive");
-		//
-		// Find any current values
-		//
-		for (ConstraintValue value : this.attribute.getConstraintValues()) {
-			if (value.getProperty().equals("minInclusive") ||
-				value.getProperty().equals("minExclusive")) {
-				//
-				// If it hasn't been set yet
-				//
-				if (this.comboBoxMin.getData() == null) {
-					//
-					// Select the appropriate combo value
-					//
-					this.comboBoxMin.select(value.getProperty());
-					//
-					// Save the object
-					//
-					this.comboBoxMin.setData(value);
-					//
-					// Setup the text field
-					//
-					this.textFieldMin.setValue(value.getValue());
-				} else {
-					//
-					// Extra value in there, this shouldn't happen. But this
-					// is here just in case
-					//
-					logger.warn("Extra min value found: " + value.getProperty() + " " + value.getValue());
-				}
-			} else if (value.getProperty().equals("maxInclusive") ||
-					value.getProperty().equals("maxExclusive")) {
-				//
-				// Check if it hasn't been set yet
-				//
-				if (this.comboBoxMax.getData() == null) {
-					//
-					// Select the appropriate combo value
-					//
-					this.comboBoxMax.select(value.getProperty());
-					//
-					// Save the object
-					//
-					this.comboBoxMax.setData(value);
-					//
-					// Setup the text field
-					//
-					this.textFieldMax.setValue(value.getValue());
-				} else {
-					//
-					// Extra value in there, this shouldn't happen. But this
-					// is here just in case
-					//
-					logger.warn("Extra max value found: " + value.getProperty() + " " + value.getValue());
-				}
-			} else {
-				logger.warn("Non-range value found: " + value.getProperty() + " " + value.getValue());
-			}
-		}
-		//
-		// Were there values?
-		//
-		if (this.comboBoxMin.getData() == null) {
-			//
-			// Put a new empty value in there
-			//
-			ConstraintValue value = new ConstraintValue("minInclusive", null);
-			//
-			// Associate it with the attribute
-			//
-			value.setAttribute(this.attribute);
-			//
-			// Make sure the attribute has it in its list
-			//
-			this.attribute.addConstraintValue(value);
-			//
-			// Save it in the combo
-			//
-			this.comboBoxMin.setData(value);
-			//
-			// Disable text field
-			//
-			this.textFieldMin.setEnabled(false);
-		}
-		if (this.comboBoxMax.getData() == null) {
-			//
-			// Put a new empty value in there
-			//
-			ConstraintValue value = new ConstraintValue("maxInclusive", null);
-			//
-			// Associate it with the attribute
-			//
-			value.setAttribute(this.attribute);
-			//
-			// Make sure the attribute has it in its list
-			//
-			this.attribute.addConstraintValue(value);
-			//
-			// Save it in the combo
-			//
-			this.comboBoxMax.setData(value);
-			//
-			// Disable text field
-			//
-			this.textFieldMax.setEnabled(false);
-		}
-		//
-		// Respond to combo changes
-		//
-		this.setupComboText(this.comboBoxMin, this.textFieldMin);
-		this.setupComboText(this.comboBoxMax, this.textFieldMax);
-	}
-	
-	private void setupComboText(final ComboBox box, final TextField text) {
-		//
-		// Respond to combo changes
-		//
-		box.addValueChangeListener(new ValueChangeListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void valueChange(ValueChangeEvent event) {
-				//
-				// Get the new value
-				//
-				String property = (String) box.getValue();
-				//
-				// Get our constraint object
-				//
-				ConstraintValue value = (ConstraintValue) box.getData();
-				//
-				// Update our object
-				//
-				if (property == null) {
-					//
-					// Clear the text field and disable it
-					//
-					text.setEnabled(false);
-					text.setValue(null);
-				} else {
-					//
-					// Change the property name
-					//
-					value.setProperty(property);
-					//
-					// Focus to the text field and enable it
-					//
-					text.setEnabled(true);
-					text.focus();
-				}
-			}
-		});
-		
-	}
-	
-	private void initializeTextFields() {
-		this.textFieldMin.setNullRepresentation("");
-		this.textFieldMin.addValueChangeListener(new ValueChangeListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void valueChange(ValueChangeEvent event) {
-				//
-				// Get our min object
-				//
-				ConstraintValue value = (ConstraintValue) self.comboBoxMin.getData();
-				//
-				// Save its new value
-				//
-				value.setValue(self.textFieldMin.getValue());
-			}			
-		});
-		this.textFieldMax.setNullRepresentation("");
-		this.textFieldMax.addValueChangeListener(new ValueChangeListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void valueChange(ValueChangeEvent event) {
-				//
-				// Get our max object
-				//
-				ConstraintValue value = (ConstraintValue) self.comboBoxMax.getData();
-				//
-				// Save its new value
-				//
-				value.setValue(self.textFieldMax.getValue());
-			}
-			
-		});
-	}
-	
-	private void initializeTest() {
-		this.textFieldTestInput.setNullRepresentation("");
-		this.textFieldTestInput.addValueChangeListener(new ValueChangeListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void valueChange(ValueChangeEvent event) {
-				if (self.textFieldTestInput.getValue() != null && self.textFieldTestInput.getValue().length() > 0) {
-					self.buttonValidate.setEnabled(true);
-				} else {
-					self.buttonValidate.setEnabled(false);
-				}
-			}
-		});
-				
-		this.buttonValidate.addClickListener(new ClickListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void buttonClick(ClickEvent event) {
-				//
-				// Create our validator and add it into the text
-				//
-				Validator validator = self.setupValidator(self.datatype);
-				if (validator == null) {
-					logger.warn("Could not create a validator");
-					return;
-				}
-				self.textFieldTestInput.addValidator(validator);
-				//
-				// Initiate the validation
-				//
-				try {
-					self.textFieldTestInput.validate();
-					//
-					// If we get here, then it validated!
-					//
-					AdminNotification.info("Success! Value is in range");
-				} catch (InvalidValueException e) {
-					AdminNotification.warn("Failed, Value is NOT in range");
-				}
-				//
-				// Remove the validator
-				//
-				self.textFieldTestInput.removeValidator(validator);
-			}			
-		});
-	}
-	
-	private Validator setupValidator(Identifier id) {
-		if (logger.isTraceEnabled()) {
-			logger.trace("setupValidator: " + id);
-		}
-		//
-		// Get our min/max objects
-		//
-		ConstraintValue min = (ConstraintValue) self.comboBoxMin.getData();
-		ConstraintValue max = (ConstraintValue) self.comboBoxMax.getData();
-		Object minObject = self.comboBoxMin.getConvertedValue();
-		Object maxObject = self.comboBoxMax.getConvertedValue();
-		logger.debug("Converted values: " + minObject + " " + maxObject);
-		//
-		// Get our min/max values
-		//
-		String minValue = self.textFieldMin.getValue();
-		String maxValue = self.textFieldMax.getValue();
-		//
-		// What is our datatype?
-		//
-		if (id.equals(XACML3.ID_DATATYPE_INTEGER)) {
-			Integer minimum = null;
-			Integer maximum = null;
-			boolean minInclusive = true;
-			boolean maxInclusive = true;
-			if (min.getProperty() != null) {
-				if (minValue != null && minValue.length() > 0) {
-					minimum = Integer.parseInt(minValue);
-				}
-				if (min.getProperty().equals("minInclusive")) {
-					minInclusive = true;
-				} else if (min.getProperty().equals("minExclusive")) {
-					minInclusive = false;
-				}
-			}
-			if (max.getProperty() != null) {
-				if (maxValue != null && maxValue.length() > 0) {
-					maximum = Integer.parseInt(maxValue);
-				}
-				if (max.getProperty().equals("maxInclusive")) {
-					maxInclusive = true;
-				} else if (max.getProperty().equals("maxExclusive")) {
-					maxInclusive = false;
-				}
-			}
-			IntegerRangeValidator validator = new IntegerRangeValidator("The value is NOT within the range", minimum, maximum);
-			validator.setMinValueIncluded(minInclusive);
-			validator.setMaxValueIncluded(maxInclusive);
-			return validator;
-		}
-		if (id.equals(XACML3.ID_DATATYPE_DOUBLE)) {
-			Double minimum = null;
-			Double maximum = null;
-			boolean minInclusive = true;
-			boolean maxInclusive = true;
-			if (min.getProperty() != null) {
-				if (minValue != null && minValue.length() > 0) {
-					minimum = Double.parseDouble(minValue);
-				}
-				if (min.getProperty().equals("minInclusive")) {
-					minInclusive = true;
-				} else if (min.getProperty().equals("minExclusive")) {
-					minInclusive = false;
-				}
-			}
-			if (max.getProperty() != null) {
-				if (maxValue != null && maxValue.length() > 0) {
-					maximum = Double.parseDouble(maxValue);
-				}
-				if (max.getProperty().equals("maxInclusive")) {
-					maxInclusive = true;
-				} else if (max.getProperty().equals("maxExclusive")) {
-					maxInclusive = false;
-				}
-			}
-			DoubleRangeValidator validator = new DoubleRangeValidator("The value is NOT within the range", minimum, maximum);
-			validator.setMinValueIncluded(minInclusive);
-			validator.setMaxValueIncluded(maxInclusive);
-			return validator;
-		}
-		
-		return null;
-	}
-	
-	public void	setupDatatype(Identifier datatype) {
-		if (logger.isTraceEnabled()) {
-			logger.trace("setupDatatype: " + datatype);
-		}
-		this.datatype = datatype;
-		if (datatype.equals(XACML3.ID_DATATYPE_INTEGER)) {
-			this.textFieldMin.setConverter(Integer.class);
-			this.textFieldMax.setConverter(Integer.class);
-			this.textFieldTestInput.setConverter(Integer.class);
-			return;
-		}
-		if (datatype.equals(XACML3.ID_DATATYPE_DOUBLE)) {
-			this.textFieldMin.setConverter(Double.class);
-			this.textFieldMax.setConverter(Double.class);
-			this.textFieldTestInput.setConverter(Double.class);
-			return;
-		}
-	}
-
-	@AutoGenerated
-	private VerticalLayout buildMainLayout() {
-		// common part: create layout
-		mainLayout = new VerticalLayout();
-		mainLayout.setImmediate(false);
-		mainLayout.setWidth("-1px");
-		mainLayout.setHeight("-1px");
-		mainLayout.setMargin(true);
-		mainLayout.setSpacing(true);
-		
-		// top-level component properties
-		setWidth("-1px");
-		setHeight("-1px");
-		
-		// horizontalLayout_1
-		horizontalLayout_1 = buildHorizontalLayout_1();
-		mainLayout.addComponent(horizontalLayout_1);
-		mainLayout.setExpandRatio(horizontalLayout_1, 1.0f);
-		
-		// horizontalLayout_2
-		horizontalLayout_2 = buildHorizontalLayout_2();
-		mainLayout.addComponent(horizontalLayout_2);
-		mainLayout.setExpandRatio(horizontalLayout_2, 1.0f);
-		
-		// panelTester
-		panelTester = buildPanelTester();
-		mainLayout.addComponent(panelTester);
-		mainLayout.setExpandRatio(panelTester, 1.0f);
-		
-		return mainLayout;
-	}
-
-	@AutoGenerated
-	private HorizontalLayout buildHorizontalLayout_1() {
-		// common part: create layout
-		horizontalLayout_1 = new HorizontalLayout();
-		horizontalLayout_1.setImmediate(false);
-		horizontalLayout_1.setWidth("-1px");
-		horizontalLayout_1.setHeight("-1px");
-		horizontalLayout_1.setMargin(false);
-		horizontalLayout_1.setSpacing(true);
-		
-		// comboBoxMin
-		comboBoxMin = new ComboBox();
-		comboBoxMin.setCaption("Minimum Type");
-		comboBoxMin.setImmediate(true);
-		comboBoxMin.setDescription("Select the type for the minimum.");
-		comboBoxMin.setWidth("-1px");
-		comboBoxMin.setHeight("-1px");
-		horizontalLayout_1.addComponent(comboBoxMin);
-		
-		// textFieldMin
-		textFieldMin = new TextField();
-		textFieldMin.setCaption("Minimum Value");
-		textFieldMin.setImmediate(true);
-		textFieldMin.setDescription("Enter a value for the minimum.");
-		textFieldMin.setWidth("-1px");
-		textFieldMin.setHeight("-1px");
-		textFieldMin.setInvalidAllowed(false);
-		textFieldMin.setInputPrompt("eg. 1");
-		horizontalLayout_1.addComponent(textFieldMin);
-		horizontalLayout_1
-				.setComponentAlignment(textFieldMin, new Alignment(9));
-		
-		return horizontalLayout_1;
-	}
-
-	@AutoGenerated
-	private HorizontalLayout buildHorizontalLayout_2() {
-		// common part: create layout
-		horizontalLayout_2 = new HorizontalLayout();
-		horizontalLayout_2.setImmediate(false);
-		horizontalLayout_2.setWidth("-1px");
-		horizontalLayout_2.setHeight("-1px");
-		horizontalLayout_2.setMargin(false);
-		horizontalLayout_2.setSpacing(true);
-		
-		// comboBoxMax
-		comboBoxMax = new ComboBox();
-		comboBoxMax.setCaption("Maximum Type");
-		comboBoxMax.setImmediate(true);
-		comboBoxMax.setDescription("Select the type for the maximum.");
-		comboBoxMax.setWidth("-1px");
-		comboBoxMax.setHeight("-1px");
-		horizontalLayout_2.addComponent(comboBoxMax);
-		
-		// textFieldMax
-		textFieldMax = new TextField();
-		textFieldMax.setCaption("Maximum Value");
-		textFieldMax.setImmediate(true);
-		textFieldMax.setDescription("Enter a value for the maxmum.");
-		textFieldMax.setWidth("-1px");
-		textFieldMax.setHeight("-1px");
-		textFieldMax.setInvalidAllowed(false);
-		textFieldMax.setInputPrompt("eg. 100");
-		horizontalLayout_2.addComponent(textFieldMax);
-		
-		return horizontalLayout_2;
-	}
-
-	@AutoGenerated
-	private Panel buildPanelTester() {
-		// common part: create layout
-		panelTester = new Panel();
-		panelTester.setCaption("Test Range Values");
-		panelTester.setImmediate(true);
-		panelTester.setWidth("-1px");
-		panelTester.setHeight("-1px");
-		
-		// verticalLayout_2
-		verticalLayout_2 = buildVerticalLayout_2();
-		panelTester.setContent(verticalLayout_2);
-		
-		return panelTester;
-	}
-
-	@AutoGenerated
-	private VerticalLayout buildVerticalLayout_2() {
-		// common part: create layout
-		verticalLayout_2 = new VerticalLayout();
-		verticalLayout_2.setImmediate(false);
-		verticalLayout_2.setWidth("100.0%");
-		verticalLayout_2.setHeight("100.0%");
-		verticalLayout_2.setMargin(false);
-		verticalLayout_2.setSpacing(true);
-		
-		// textFieldTestInput
-		textFieldTestInput = new TextField();
-		textFieldTestInput.setCaption("Value");
-		textFieldTestInput.setImmediate(true);
-		textFieldTestInput.setDescription("Enter a value to test against.");
-		textFieldTestInput.setWidth("-1px");
-		textFieldTestInput.setHeight("-1px");
-		textFieldTestInput.setInputPrompt("eg. 50");
-		verticalLayout_2.addComponent(textFieldTestInput);
-		
-		// buttonValidate
-		buttonValidate = new Button();
-		buttonValidate.setCaption("Test");
-		buttonValidate.setImmediate(true);
-		buttonValidate
-				.setDescription("Click to test if value is within the range.");
-		buttonValidate.setWidth("-1px");
-		buttonValidate.setHeight("-1px");
-		verticalLayout_2.addComponent(buttonValidate);
-		verticalLayout_2.setComponentAlignment(buttonValidate,
-				new Alignment(48));
-		
-		return verticalLayout_2;
-	}
-	
-}

http://git-wip-us.apache.org/repos/asf/incubator-openaz/blob/c68f98c5/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/components/RegexpEditorComponent.java
----------------------------------------------------------------------
diff --git a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/components/RegexpEditorComponent.java b/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/components/RegexpEditorComponent.java
deleted file mode 100644
index 968719a..0000000
--- a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/components/RegexpEditorComponent.java
+++ /dev/null
@@ -1,246 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you 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.openaz.xacml.admin.view.components;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import org.apache.openaz.xacml.admin.jpa.Attribute;
-import org.apache.openaz.xacml.admin.jpa.ConstraintType;
-import org.apache.openaz.xacml.admin.jpa.ConstraintValue;
-import org.apache.openaz.xacml.admin.util.AdminNotification;
-import com.vaadin.annotations.AutoGenerated;
-import com.vaadin.data.Property.ValueChangeEvent;
-import com.vaadin.data.Property.ValueChangeListener;
-import com.vaadin.data.Validator;
-import com.vaadin.data.Validator.InvalidValueException;
-import com.vaadin.data.validator.RegexpValidator;
-import com.vaadin.ui.Alignment;
-import com.vaadin.ui.Button;
-import com.vaadin.ui.Button.ClickEvent;
-import com.vaadin.ui.Button.ClickListener;
-import com.vaadin.ui.CustomComponent;
-import com.vaadin.ui.Panel;
-import com.vaadin.ui.TextField;
-import com.vaadin.ui.VerticalLayout;
-
-public class RegexpEditorComponent extends CustomComponent {
-	@AutoGenerated
-	private VerticalLayout mainLayout;
-
-	@AutoGenerated
-	private Panel panelTester;
-
-	@AutoGenerated
-	private VerticalLayout verticalLayout_2;
-
-	@AutoGenerated
-	private Button buttonTest;
-
-	@AutoGenerated
-	private TextField textFieldTestValue;
-
-	@AutoGenerated
-	private TextField textFieldExpression;
-
-	private static final long serialVersionUID = -1L;
-	private static final Log logger	= LogFactory.getLog(RegexpEditorComponent.class);
-	private RegexpEditorComponent self = this;
-	private final Attribute attribute;
-	private ConstraintValue value = null;
-
-	/*- VaadinEditorProperties={"grid":"RegularGrid,20","showGrid":true,"snapToGrid":true,"snapToObject":true,"movingGuides":false,"snappingDistance":10} */
-
-	public RegexpEditorComponent(Attribute attribute) {
-		buildMainLayout();
-		setCompositionRoot(mainLayout);
-		
-		this.attribute = attribute;
-		
-		initializeTextField();
-		initializeTestPanel();
-	}
-	
-	private void initializeTextField() {
-		//
-		// Find our reg expression value if it exists
-		//
-		for (ConstraintValue value : this.attribute.getConstraintValues()) {
-			if (value.getProperty().equals(ConstraintType.REGEXP_TYPE)) {
-				if (this.value == null) {
-					this.textFieldExpression.setValue(value.getValue());
-					this.value = value;
-				} else {
-					logger.warn("Multiple regexp constraint values: " + value);
-					value.setAttribute(null);
-					this.attribute.removeConstraintValue(value);
-				}
-			} else {
-				value.setAttribute(null);
-				this.attribute.removeConstraintValue(value);
-			}
-		}
-		//
-		// Was something found?
-		//
-		if (this.value == null) {
-			ConstraintValue newValue = new ConstraintValue(ConstraintType.REGEXP_TYPE, "");
-			newValue.setAttribute(this.attribute);
-			this.attribute.addConstraintValue(newValue);
-			this.value = newValue;
-		}
-		//
-		// Save the values when they changes
-		//
-		this.textFieldExpression.addValueChangeListener(new ValueChangeListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void valueChange(ValueChangeEvent event) {
-				self.value.setValue(self.textFieldExpression.getValue());
-			}
-		});
-	}
-	
-	private void initializeTestPanel() {
-		this.textFieldTestValue.setNullRepresentation("");
-		
-		this.buttonTest.addClickListener(new ClickListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void buttonClick(ClickEvent event) {
-				String testValue = self.textFieldTestValue.getValue();
-				if (testValue == null || testValue.length() == 0) {
-					return;
-				}
-				String regExp = self.textFieldExpression.getValue();
-				if (regExp == null || regExp.length() == 0) {
-					return;
-				}
-				//
-				// Create a validator
-				//
-				Validator validator = new RegexpValidator(regExp, true, "Regular Expression does NOT match.");
-				//
-				// Add it
-				//
-				self.textFieldTestValue.addValidator(validator);
-				//
-				// Validate
-				//
-				try {
-					self.textFieldTestValue.validate();
-					AdminNotification.info("Success! Regular Expression Matches");
-				} catch (InvalidValueException e) {
-					AdminNotification.warn("Failed, Regular Expression does NOT match");
-				}
-				//
-				// Remove the validator
-				//
-				self.textFieldTestValue.removeValidator(validator);
-			}
-		});
-	}
-	
-	@AutoGenerated
-	private VerticalLayout buildMainLayout() {
-		// common part: create layout
-		mainLayout = new VerticalLayout();
-		mainLayout.setImmediate(false);
-		mainLayout.setWidth("-1px");
-		mainLayout.setHeight("-1px");
-		mainLayout.setMargin(true);
-		mainLayout.setSpacing(true);
-		
-		// top-level component properties
-		setWidth("-1px");
-		setHeight("-1px");
-		
-		// textFieldExpression
-		textFieldExpression = new TextField();
-		textFieldExpression.setCaption("Regular Expression");
-		textFieldExpression.setImmediate(true);
-		textFieldExpression
-				.setDescription("Create a regular expression used to constrain attribute values.");
-		textFieldExpression.setWidth("-1px");
-		textFieldExpression.setHeight("-1px");
-		textFieldExpression.setInvalidAllowed(false);
-		textFieldExpression.setInputPrompt("eg. [a-zA-Z0-9]");
-		mainLayout.addComponent(textFieldExpression);
-		mainLayout.setExpandRatio(textFieldExpression, 1.0f);
-		
-		// panelTester
-		panelTester = buildPanelTester();
-		mainLayout.addComponent(panelTester);
-		mainLayout.setExpandRatio(panelTester, 1.0f);
-		
-		return mainLayout;
-	}
-
-	@AutoGenerated
-	private Panel buildPanelTester() {
-		// common part: create layout
-		panelTester = new Panel();
-		panelTester.setCaption("Test The Expression");
-		panelTester.setImmediate(false);
-		panelTester.setWidth("-1px");
-		panelTester.setHeight("-1px");
-		
-		// verticalLayout_2
-		verticalLayout_2 = buildVerticalLayout_2();
-		panelTester.setContent(verticalLayout_2);
-		
-		return panelTester;
-	}
-
-	@AutoGenerated
-	private VerticalLayout buildVerticalLayout_2() {
-		// common part: create layout
-		verticalLayout_2 = new VerticalLayout();
-		verticalLayout_2.setImmediate(false);
-		verticalLayout_2.setWidth("100.0%");
-		verticalLayout_2.setHeight("100.0%");
-		verticalLayout_2.setMargin(false);
-		
-		// textFieldTestValue
-		textFieldTestValue = new TextField();
-		textFieldTestValue.setCaption("Test Value");
-		textFieldTestValue.setImmediate(true);
-		textFieldTestValue
-				.setDescription("Enter a value to match against the regular expression.");
-		textFieldTestValue.setWidth("-1px");
-		textFieldTestValue.setHeight("-1px");
-		textFieldTestValue.setInputPrompt("eg. example");
-		verticalLayout_2.addComponent(textFieldTestValue);
-		
-		// buttonTest
-		buttonTest = new Button();
-		buttonTest.setCaption("Test");
-		buttonTest.setImmediate(true);
-		buttonTest.setWidth("-1px");
-		buttonTest.setHeight("-1px");
-		verticalLayout_2.addComponent(buttonTest);
-		verticalLayout_2.setComponentAlignment(buttonTest, new Alignment(48));
-		
-		return verticalLayout_2;
-	}
-}