You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ace.apache.org by ma...@apache.org on 2012/11/22 00:11:33 UTC

svn commit: r1412355 [1/2] - in /ace/trunk: build/ org.apache.ace.useradmin.ui.itest/ org.apache.ace.useradmin.ui.itest/conf/ org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.connectionfactory/ org.apache.ace.useradmin.ui.itest/conf/org.apache.ace...

Author: marrs
Date: Wed Nov 21 23:11:26 2012
New Revision: 1412355

URL: http://svn.apache.org/viewvc?rev=1412355&view=rev
Log:
ACE-304 Added a UI and tests to manage users. Included it by default in the server run and distribution.

Added:
    ace/trunk/org.apache.ace.useradmin.ui/
    ace/trunk/org.apache.ace.useradmin.ui.itest/
    ace/trunk/org.apache.ace.useradmin.ui.itest/.classpath
    ace/trunk/org.apache.ace.useradmin.ui.itest/.project
    ace/trunk/org.apache.ace.useradmin.ui.itest/bnd.bnd
    ace/trunk/org.apache.ace.useradmin.ui.itest/build.xml
    ace/trunk/org.apache.ace.useradmin.ui.itest/conf/
    ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.activation.matcher.cfg
    ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.activation.servlet.cfg
    ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.client.automation.cfg
    ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.client.rest.cfg
    ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.configurator.useradmin.task.UpdateUserAdminTask.cfg
    ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.connectionfactory/
    ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.connectionfactory/auditlog.cfg
    ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.connectionfactory/client.cfg
    ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.connectionfactory/deployment.cfg
    ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.connectionfactory/obr.cfg
    ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.connectionfactory/replication.cfg
    ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.connectionfactory/repository.cfg
    ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.deployment.provider.filebased.cfg
    ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.deployment.provider.repositorybased.cfg
    ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.deployment.servlet.cfg
    ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.discovery.property.cfg
    ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.distribution.servlet.cfg
    ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.http.redirector.factory/
    ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.http.redirector.factory/root-to-ace.cfg
    ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.nodelauncher.amazon.cfg.example
    ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.obr.servlet.cfg
    ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.obr.storage.file.cfg
    ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.repository.servlet.RepositoryReplicationServlet.cfg
    ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.repository.servlet.RepositoryServlet.cfg
    ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.scheduler.cfg
    ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.activation.impl.cfg
    ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.log.servlet.factory/
    ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.log.servlet.factory/auditlog.cfg
    ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.log.store.factory/
    ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.log.store.factory/auditlog.cfg
    ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.repository.factory/
    ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.repository.factory/ace-activation.cfg
    ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.repository.factory/ace-activationinfo.cfg
    ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.repository.factory/ace-deployment.cfg
    ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.repository.factory/ace-shop.cfg
    ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.repository.factory/ace-target.cfg
    ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.repository.factory/ace-user.cfg
    ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.webui.vaadin.cfg
    ace/trunk/org.apache.ace.useradmin.ui.itest/src/
    ace/trunk/org.apache.ace.useradmin.ui.itest/src/org/
    ace/trunk/org.apache.ace.useradmin.ui.itest/src/org/apache/
    ace/trunk/org.apache.ace.useradmin.ui.itest/src/org/apache/ace/
    ace/trunk/org.apache.ace.useradmin.ui.itest/src/org/apache/ace/useradmin/
    ace/trunk/org.apache.ace.useradmin.ui.itest/src/org/apache/ace/useradmin/ui/
    ace/trunk/org.apache.ace.useradmin.ui.itest/src/org/apache/ace/useradmin/ui/test/
    ace/trunk/org.apache.ace.useradmin.ui.itest/src/org/apache/ace/useradmin/ui/test/UserEditorTest.java
    ace/trunk/org.apache.ace.useradmin.ui.itest/store/
    ace/trunk/org.apache.ace.useradmin.ui.itest/store/repository.xml
    ace/trunk/org.apache.ace.useradmin.ui/.classpath
    ace/trunk/org.apache.ace.useradmin.ui/.project
    ace/trunk/org.apache.ace.useradmin.ui/bnd.bnd
    ace/trunk/org.apache.ace.useradmin.ui/build.xml
    ace/trunk/org.apache.ace.useradmin.ui/src/
    ace/trunk/org.apache.ace.useradmin.ui/src/org/
    ace/trunk/org.apache.ace.useradmin.ui/src/org/apache/
    ace/trunk/org.apache.ace.useradmin.ui/src/org/apache/ace/
    ace/trunk/org.apache.ace.useradmin.ui/src/org/apache/ace/useradmin/
    ace/trunk/org.apache.ace.useradmin.ui/src/org/apache/ace/useradmin/ui/
    ace/trunk/org.apache.ace.useradmin.ui/src/org/apache/ace/useradmin/ui/editor/
    ace/trunk/org.apache.ace.useradmin.ui/src/org/apache/ace/useradmin/ui/editor/GroupNotFoundException.java
    ace/trunk/org.apache.ace.useradmin.ui/src/org/apache/ace/useradmin/ui/editor/UserAlreadyExistsException.java
    ace/trunk/org.apache.ace.useradmin.ui/src/org/apache/ace/useradmin/ui/editor/UserDTO.java
    ace/trunk/org.apache.ace.useradmin.ui/src/org/apache/ace/useradmin/ui/editor/UserEditor.java
    ace/trunk/org.apache.ace.useradmin.ui/src/org/apache/ace/useradmin/ui/editor/UserNotFoundException.java
    ace/trunk/org.apache.ace.useradmin.ui/src/org/apache/ace/useradmin/ui/editor/impl/
    ace/trunk/org.apache.ace.useradmin.ui/src/org/apache/ace/useradmin/ui/editor/impl/UserEditorImpl.java
    ace/trunk/org.apache.ace.useradmin.ui/src/org/apache/ace/useradmin/ui/osgi/
    ace/trunk/org.apache.ace.useradmin.ui/src/org/apache/ace/useradmin/ui/osgi/Activator.java
    ace/trunk/org.apache.ace.useradmin.ui/src/org/apache/ace/useradmin/ui/vaadin/
    ace/trunk/org.apache.ace.useradmin.ui/src/org/apache/ace/useradmin/ui/vaadin/UserAdminButton.java
    ace/trunk/org.apache.ace.useradmin.ui/src/org/apache/ace/useradmin/ui/vaadin/UserAdminWindow.java
Modified:
    ace/trunk/build/bin-build.xml
    ace/trunk/run-server/conf/org.apache.ace.server.repository.factory/ace-user.cfg
    ace/trunk/run-server/server.bndrun

Modified: ace/trunk/build/bin-build.xml
URL: http://svn.apache.org/viewvc/ace/trunk/build/bin-build.xml?rev=1412355&r1=1412354&r2=1412355&view=diff
==============================================================================
--- ace/trunk/build/bin-build.xml (original)
+++ ace/trunk/build/bin-build.xml Wed Nov 21 23:11:26 2012
@@ -87,6 +87,7 @@
 			<file file="../org.apache.ace.client.repository.helper.base/generated/org.apache.ace.client.repository.helper.base.jar" />
 			<file file="../org.apache.ace.authenticationprocessor.basicauth/generated/org.apache.ace.authenticationprocessor.basicauth.jar" />
 			<file file="../org.apache.ace.nodelauncher.ui/generated/org.apache.ace.nodelauncher.ui.jar" />
+			<file file="../org.apache.ace.useradmin.ui/generated/org.apache.ace.useradmin.ui.jar" />
 		</resources>
 		
 		<resources id="devserver-store">

Added: ace/trunk/org.apache.ace.useradmin.ui.itest/.classpath
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui.itest/.classpath?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui.itest/.classpath (added)
+++ ace/trunk/org.apache.ace.useradmin.ui.itest/.classpath Wed Nov 21 23:11:26 2012
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+	<classpathentry kind="con" path="aQute.bnd.classpath.container"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>

Added: ace/trunk/org.apache.ace.useradmin.ui.itest/.project
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui.itest/.project?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui.itest/.project (added)
+++ ace/trunk/org.apache.ace.useradmin.ui.itest/.project Wed Nov 21 23:11:26 2012
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.apache.ace.useradmin.ui.itest</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>bndtools.core.bndbuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>bndtools.core.bndnature</nature>
+	</natures>
+</projectDescription>

Added: ace/trunk/org.apache.ace.useradmin.ui.itest/bnd.bnd
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui.itest/bnd.bnd?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui.itest/bnd.bnd (added)
+++ ace/trunk/org.apache.ace.useradmin.ui.itest/bnd.bnd Wed Nov 21 23:11:26 2012
@@ -0,0 +1,76 @@
+Test-Cases: ${classes;CONCRETE;EXTENDS;org.apache.ace.it.IntegrationTestBase}
+Private-Package: org.apache.ace.useradmin.ui.test
+-runvm: -ea
+-runfw: org.apache.felix.framework
+-runbundles: org.apache.felix.dependencymanager;version='[3.1.0,3.1.1)',\
+	org.apache.felix.useradmin;version='[1.0.2,1.0.3)',\
+	org.apache.felix.useradmin.filestore;version='[1.0.1,1.0.2)',\
+	org.apache.felix.log;version='[1.0.1,1.0.2)',\
+	org.apache.felix.prefs;version='[1.0.4,1.0.5)',\
+	org.apache.felix.configadmin;version='[1.2.8,1.2.9)',\
+	org.apache.felix.eventadmin;version='[1.2.14,1.2.15)',\
+	org.apache.felix.gogo.runtime;version='[0.10.0,0.10.1)',\
+	org.apache.felix.gogo.shell;version='[0.10.0,0.10.1)',\
+	org.apache.felix.gogo.command;version='[0.12.0,0.12.1)',\
+	org.apache.felix.http.jetty;version='[2.2.0,2.2.1)',\
+	org.apache.felix.dependencymanager.shell;version='[3.0.1,3.0.2)',\
+	osgi.cmpn;version='[4.2.1,4.2.2)',\
+	com.vaadin;version='[6.8.4,6.8.5)',\
+	org.apache.ace.configurator.useradmin.task;version=latest,\
+	org.apache.ace.target.mgmt.ui;version=latest,\
+	org.apache.ace.log.servlet;version=latest,\
+	org.apache.ace.deployment.streamgenerator;version=latest,\
+	org.apache.ace.authentication.api;version=latest,\
+	org.apache.ace.client.repository.impl;version=latest,\
+	org.apache.ace.tageditor;version=latest,\
+	org.apache.ace.client.repository.helper.bundle;version=latest,\
+	org.apache.ace.discovery.api;version=latest,\
+	org.apache.ace.client.rest;version=latest,\
+	org.apache.ace.range.api;version=latest,\
+	org.apache.ace.log;version=latest,\
+	org.apache.ace.authenticationprocessor.password;version=latest,\
+	org.apache.ace.webui.vaadin;version=latest,\
+	org.apache.ace.resourceprocessor.useradmin;version=latest,\
+	org.apache.ace.server.log.ui;version=latest,\
+	org.apache.ace.deployment.verifier.ui;version=latest,\
+	org.apache.ace.repository.api;version=latest,\
+	org.apache.ace.server.log.store.api;version=latest,\
+	org.apache.ace.server.log.store.filelogstore;version=latest,\
+	org.apache.ace.client.repository.api;version=latest,\
+	org.apache.ace.repository.servlet;version=latest,\
+	org.apache.ace.obr.storage;version=latest,\
+	org.apache.ace.client.repository.helper.configuration;version=latest,\
+	org.apache.ace.consolelogger;version=latest,\
+	org.apache.ace.httplistener;version=latest,\
+	org.apache.ace.obr.servlet;version=latest,\
+	org.apache.ace.nodelauncher.api;version=latest,\
+	org.apache.ace.deployment.provider.api;version=latest,\
+	org.apache.ace.deployment.servlet;version=latest,\
+	org.apache.ace.scheduler;version=latest,\
+	org.apache.ace.obr.metadata;version=latest,\
+	org.apache.ace.configurator;version=latest,\
+	org.apache.ace.connectionfactory;version=latest,\
+	org.apache.ace.authentication;version=latest,\
+	org.apache.ace.nodelauncher.amazon;version=latest,\
+	org.apache.ace.configurator.serveruseradmin;version=latest,\
+	org.apache.ace.repository.impl;version=latest,\
+	org.apache.ace.deployment.provider.repositorybased;version=latest,\
+	org.apache.ace.deployment.verifier;version=latest,\
+	org.apache.ace.client.repository.helper.base;version=latest,\
+	org.apache.ace.authenticationprocessor.basicauth;version=latest,\
+	org.apache.ace.nodelauncher.ui;version=latest,\
+	org.apache.ace.useradmin.ui;version=latest,\
+	org.apache.ace.test;version=latest
+-buildpath: osgi.core;version='[4.1,5)',\
+	osgi.cmpn,\
+	junit.osgi,\
+	org.mockito.mockito-all,\
+	org.apache.felix.dependencymanager,\
+	org.apache.ace.useradmin.ui;version=latest
+-runsystempackages: sun.reflect
+-runproperties: org.apache.felix.log.storeDebug=true,\
+	org.apache.felix.eventadmin.Timeout=0,\
+	org.apache.ace.server.port=8080,\
+	org.osgi.service.http.port=8080,\
+	org.apache.felix.log.maxSize=1000
+-runee: JavaSE-1.6
\ No newline at end of file

Added: ace/trunk/org.apache.ace.useradmin.ui.itest/build.xml
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui.itest/build.xml?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui.itest/build.xml (added)
+++ ace/trunk/org.apache.ace.useradmin.ui.itest/build.xml Wed Nov 21 23:11:26 2012
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="project" default="build"> 
+	<import file="../cnf/build.xml"/>
+</project>

Added: ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.activation.matcher.cfg
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.activation.matcher.cfg?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.activation.matcher.cfg (added)
+++ ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.activation.matcher.cfg Wed Nov 21 23:11:26 2012
@@ -0,0 +1,3 @@
+activationRepository = activation
+customerName = apache
+repositoryURL = http://localhost:${org.apache.ace.server.port}/repository

Added: ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.activation.servlet.cfg
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.activation.servlet.cfg?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.activation.servlet.cfg (added)
+++ ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.activation.servlet.cfg Wed Nov 21 23:11:26 2012
@@ -0,0 +1 @@
+org.apache.ace.server.servlet.endpoint=/activation

Added: ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.client.automation.cfg
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.client.automation.cfg?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.client.automation.cfg (added)
+++ ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.client.automation.cfg Wed Nov 21 23:11:26 2012
@@ -0,0 +1,10 @@
+registerTargetFilter       = (id=*)
+approveTargetFilter        = (id=*)
+autoApproveTargetFilter    = (id=*)
+commitRepositories 		   = true
+targetRepository           = target
+deploymentRepository       = deployment
+storeRepository            = shop
+customerName               = apache
+hostName                   = http://localhost:${org.apache.ace.server.port}
+endpoint                   = /repository
\ No newline at end of file

Added: ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.client.rest.cfg
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.client.rest.cfg?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.client.rest.cfg (added)
+++ ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.client.rest.cfg Wed Nov 21 23:11:26 2012
@@ -0,0 +1,10 @@
+org.apache.ace.server.servlet.endpoint=/client
+repository.url=http://localhost:${org.apache.ace.server.port}/repository
+obr.url=http://localhost:${org.apache.ace.server.port}/obr/
+user.name=d
+authentication.enabled=false
+customer.name=apache
+store.repository.name=shop
+distribution.repository.name=target
+deployment.repository.name=deployment
+

Added: ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.configurator.useradmin.task.UpdateUserAdminTask.cfg
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.configurator.useradmin.task.UpdateUserAdminTask.cfg?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.configurator.useradmin.task.UpdateUserAdminTask.cfg (added)
+++ ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.configurator.useradmin.task.UpdateUserAdminTask.cfg Wed Nov 21 23:11:26 2012
@@ -0,0 +1,3 @@
+repositoryLocation = http://localhost:${org.apache.ace.server.port}/repository
+repositoryCustomer = apache
+repositoryName = user

Added: ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.connectionfactory/auditlog.cfg
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.connectionfactory/auditlog.cfg?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.connectionfactory/auditlog.cfg (added)
+++ ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.connectionfactory/auditlog.cfg Wed Nov 21 23:11:26 2012
@@ -0,0 +1,5 @@
+authentication.baseURL = http://localhost:${org.apache.ace.server.port}/auditlog/
+authentication.type = none
+#authentication.user.name = d
+#authentication.user.password = f
+

Added: ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.connectionfactory/client.cfg
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.connectionfactory/client.cfg?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.connectionfactory/client.cfg (added)
+++ ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.connectionfactory/client.cfg Wed Nov 21 23:11:26 2012
@@ -0,0 +1,5 @@
+authentication.baseURL = http://localhost:${org.apache.ace.server.port}/client/
+authentication.type = none
+#authentication.user.name = d
+#authentication.user.password = f
+

Added: ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.connectionfactory/deployment.cfg
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.connectionfactory/deployment.cfg?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.connectionfactory/deployment.cfg (added)
+++ ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.connectionfactory/deployment.cfg Wed Nov 21 23:11:26 2012
@@ -0,0 +1,5 @@
+authentication.baseURL = http://localhost:${org.apache.ace.server.port}/deployment/
+authentication.type = none
+#authentication.user.name = d
+#authentication.user.password = f
+

Added: ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.connectionfactory/obr.cfg
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.connectionfactory/obr.cfg?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.connectionfactory/obr.cfg (added)
+++ ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.connectionfactory/obr.cfg Wed Nov 21 23:11:26 2012
@@ -0,0 +1,5 @@
+authentication.baseURL = http://localhost:${org.apache.ace.server.port}/obr/
+authentication.type = none
+#authentication.user.name = d
+#authentication.user.password = f
+

Added: ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.connectionfactory/replication.cfg
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.connectionfactory/replication.cfg?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.connectionfactory/replication.cfg (added)
+++ ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.connectionfactory/replication.cfg Wed Nov 21 23:11:26 2012
@@ -0,0 +1,5 @@
+authentication.baseURL = http://localhost:${org.apache.ace.server.port}/replication/
+authentication.type = none
+#authentication.user.name = d
+#authentication.user.password = f
+

Added: ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.connectionfactory/repository.cfg
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.connectionfactory/repository.cfg?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.connectionfactory/repository.cfg (added)
+++ ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.connectionfactory/repository.cfg Wed Nov 21 23:11:26 2012
@@ -0,0 +1,5 @@
+authentication.baseURL = http://localhost:${org.apache.ace.server.port}/repository/
+authentication.type = none
+#authentication.user.name = d
+#authentication.user.password = f
+

Added: ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.deployment.provider.filebased.cfg
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.deployment.provider.filebased.cfg?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.deployment.provider.filebased.cfg (added)
+++ ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.deployment.provider.filebased.cfg Wed Nov 21 23:11:26 2012
@@ -0,0 +1 @@
+BaseDirectoryName=store

Added: ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.deployment.provider.repositorybased.cfg
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.deployment.provider.repositorybased.cfg?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.deployment.provider.repositorybased.cfg (added)
+++ ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.deployment.provider.repositorybased.cfg Wed Nov 21 23:11:26 2012
@@ -0,0 +1,3 @@
+url = http://localhost:${org.apache.ace.server.port}/repository
+name = deployment
+customer = apache

Added: ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.deployment.servlet.cfg
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.deployment.servlet.cfg?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.deployment.servlet.cfg (added)
+++ ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.deployment.servlet.cfg Wed Nov 21 23:11:26 2012
@@ -0,0 +1,2 @@
+org.apache.ace.server.servlet.endpoint=/deployment
+authentication.enabled = false

Added: ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.discovery.property.cfg
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.discovery.property.cfg?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.discovery.property.cfg (added)
+++ ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.discovery.property.cfg Wed Nov 21 23:11:26 2012
@@ -0,0 +1 @@
+serverURL = http://localhost:${org.apache.ace.server.port}
\ No newline at end of file

Added: ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.distribution.servlet.cfg
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.distribution.servlet.cfg?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.distribution.servlet.cfg (added)
+++ ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.distribution.servlet.cfg Wed Nov 21 23:11:26 2012
@@ -0,0 +1,5 @@
+targetRepository = target
+storeRepository = shop
+customerName = apache
+hostName = http://localhost:${org.apache.ace.server.port}/repository
+org.apache.ace.server.servlet.endpoint	= /distribution

Added: ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.http.redirector.factory/root-to-ace.cfg
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.http.redirector.factory/root-to-ace.cfg?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.http.redirector.factory/root-to-ace.cfg (added)
+++ ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.http.redirector.factory/root-to-ace.cfg Wed Nov 21 23:11:26 2012
@@ -0,0 +1,2 @@
+org.apache.ace.server.servlet.endpoint=/
+org.apache.ace.webui.vaadin.redirect=/ace/

Added: ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.nodelauncher.amazon.cfg.example
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.nodelauncher.amazon.cfg.example?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.nodelauncher.amazon.cfg.example (added)
+++ ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.nodelauncher.amazon.cfg.example Wed Nov 21 23:11:26 2012
@@ -0,0 +1,33 @@
+#
+# Sample configuration file. You need to rename the extension of the file
+# and change some of the placeholders for this configuration to work.
+#
+
+# Configure your server here
+server=http://localhost:${org.apache.ace.server.port}
+
+# Note that AMIs are specific to an Amazon availability zone
+amiId=ami-6a31041e
+location=eu-west-1
+
+# Your access key ID and secret access key (AWS console, top right menu "Security Credentials")
+accessKeyid=Your_access_key_here!
+secretAccessKey=Your_secret_key_here!
+
+# Tag prefix for instance names
+tagPrefix=default
+
+# Use this bootstrap to use a Sun VM instead of the OpenJDK one provided by Amazon
+nodeBootstrap=cd ~; wget -Ojava.bin http://javadl.sun.com/webapps/download/AutoDL?BundleId=43871 ;chmod +x java.bin;./java.bin /y; export PATH=`pwd`/jre1.6.0_23/bin:$PATH
+
+# Open up any extra ports (comma separated list)
+extraPorts=9090
+
+# Should we run the process as root? This only works if your account is in the sudoers file.
+runAsRoot=true
+
+# A comma separated list of extra artifacts that will be downloaded from the OBR (just list their filenames here)
+additionalObrDownloads=
+
+# A comma separated list of extra artifacts that will be downloaded from the specified URLs (list full URLs here)
+externalDownloadUrls=

Added: ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.obr.servlet.cfg
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.obr.servlet.cfg?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.obr.servlet.cfg (added)
+++ ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.obr.servlet.cfg Wed Nov 21 23:11:26 2012
@@ -0,0 +1,2 @@
+org.apache.ace.server.servlet.endpoint=/obr
+authentication.enabled = false

Added: ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.obr.storage.file.cfg
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.obr.storage.file.cfg?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.obr.storage.file.cfg (added)
+++ ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.obr.storage.file.cfg Wed Nov 21 23:11:26 2012
@@ -0,0 +1 @@
+fileLocation=store
\ No newline at end of file

Added: ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.repository.servlet.RepositoryReplicationServlet.cfg
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.repository.servlet.RepositoryReplicationServlet.cfg?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.repository.servlet.RepositoryReplicationServlet.cfg (added)
+++ ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.repository.servlet.RepositoryReplicationServlet.cfg Wed Nov 21 23:11:26 2012
@@ -0,0 +1,2 @@
+org.apache.ace.server.servlet.endpoint=/replication
+authentication.enabled = false

Added: ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.repository.servlet.RepositoryServlet.cfg
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.repository.servlet.RepositoryServlet.cfg?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.repository.servlet.RepositoryServlet.cfg (added)
+++ ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.repository.servlet.RepositoryServlet.cfg Wed Nov 21 23:11:26 2012
@@ -0,0 +1,2 @@
+org.apache.ace.server.servlet.endpoint=/repository
+authentication.enabled = false

Added: ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.scheduler.cfg
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.scheduler.cfg?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.scheduler.cfg (added)
+++ ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.scheduler.cfg Wed Nov 21 23:11:26 2012
@@ -0,0 +1,2 @@
+auditlog = 2000
+org.apache.ace.configurator.useradmin.task.UpdateUserAdminTask = 2000
\ No newline at end of file

Added: ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.activation.impl.cfg
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.activation.impl.cfg?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.activation.impl.cfg (added)
+++ ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.activation.impl.cfg Wed Nov 21 23:11:26 2012
@@ -0,0 +1,14 @@
+registerTargetFilter       = (id=*)
+approveTargetFilter        = (id=*)
+autoApproveTargetFilter    = (id=*)
+commitRepositories         = true
+targetRepository           = target
+deploymentRepository       = deployment
+storeRepository            = shop
+customerName               = apache
+hostName                   = http://localhost:${org.apache.ace.server.port}
+endpoint                   = /repository
+obrUrl                     = http://localhost:${org.apache.ace.server.port}/obr/
+activationInfoRepository   = activationinfo
+activationInfoTimeout      = 604800000
+checkoutInterval           = 5000

Added: ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.log.servlet.factory/auditlog.cfg
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.log.servlet.factory/auditlog.cfg?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.log.servlet.factory/auditlog.cfg (added)
+++ ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.log.servlet.factory/auditlog.cfg Wed Nov 21 23:11:26 2012
@@ -0,0 +1,3 @@
+org.apache.ace.server.servlet.endpoint=/auditlog
+name = auditlog
+authentication.enabled = false

Added: ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.log.store.factory/auditlog.cfg
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.log.store.factory/auditlog.cfg?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.log.store.factory/auditlog.cfg (added)
+++ ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.log.store.factory/auditlog.cfg Wed Nov 21 23:11:26 2012
@@ -0,0 +1 @@
+name=auditlog
\ No newline at end of file

Added: ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.repository.factory/ace-activation.cfg
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.repository.factory/ace-activation.cfg?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.repository.factory/ace-activation.cfg (added)
+++ ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.repository.factory/ace-activation.cfg Wed Nov 21 23:11:26 2012
@@ -0,0 +1,3 @@
+name=activation
+customer=apache
+master=true
\ No newline at end of file

Added: ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.repository.factory/ace-activationinfo.cfg
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.repository.factory/ace-activationinfo.cfg?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.repository.factory/ace-activationinfo.cfg (added)
+++ ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.repository.factory/ace-activationinfo.cfg Wed Nov 21 23:11:26 2012
@@ -0,0 +1,3 @@
+name=activationinfo
+customer=apache
+master=true
\ No newline at end of file

Added: ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.repository.factory/ace-deployment.cfg
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.repository.factory/ace-deployment.cfg?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.repository.factory/ace-deployment.cfg (added)
+++ ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.repository.factory/ace-deployment.cfg Wed Nov 21 23:11:26 2012
@@ -0,0 +1,3 @@
+name=deployment
+customer=apache
+master=true
\ No newline at end of file

Added: ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.repository.factory/ace-shop.cfg
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.repository.factory/ace-shop.cfg?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.repository.factory/ace-shop.cfg (added)
+++ ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.repository.factory/ace-shop.cfg Wed Nov 21 23:11:26 2012
@@ -0,0 +1,3 @@
+name=shop
+customer=apache
+master=true
\ No newline at end of file

Added: ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.repository.factory/ace-target.cfg
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.repository.factory/ace-target.cfg?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.repository.factory/ace-target.cfg (added)
+++ ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.repository.factory/ace-target.cfg Wed Nov 21 23:11:26 2012
@@ -0,0 +1,3 @@
+name=target
+customer=apache
+master=true
\ No newline at end of file

Added: ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.repository.factory/ace-user.cfg
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.repository.factory/ace-user.cfg?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.repository.factory/ace-user.cfg (added)
+++ ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.server.repository.factory/ace-user.cfg Wed Nov 21 23:11:26 2012
@@ -0,0 +1,309 @@
+name=user
+customer=apache
+master=true
+initial=<roles> \
+       <group name="createArtifact"> \
+           <properties> \
+               <type>permissionGroup</type> \
+           </properties> \
+       </group> \
+       <group name="updateArtifact"> \
+           <properties> \
+               <type>permissionGroup</type> \
+           </properties> \
+       </group> \
+       <group name="removeArtifact"> \
+           <properties> \
+               <type>permissionGroup</type> \
+           </properties> \
+       </group> \
+       <group name="viewArtifact"> \
+           <properties> \
+               <type>permissionGroup</type> \
+           </properties> \
+       </group> \
+       <group name="editArtifact"> \
+           <properties> \
+               <type>permissionGroup</type> \
+           </properties> \
+       </group> \
+       <group name="createFeature"> \
+           <properties> \
+               <type>permissionGroup</type> \
+           </properties> \
+       </group> \
+       <group name="removeFeature"> \
+           <properties> \
+               <type>permissionGroup</type> \
+           </properties> \
+       </group> \
+       <group name="associateArtifactToFeature"> \
+           <properties> \
+               <type>permissionGroup</type> \
+           </properties> \
+       </group> \
+       <group name="associateFeatureToDistribution"> \
+           <properties> \
+               <type>permissionGroup</type> \
+           </properties> \
+       </group> \
+       <group name="removeArtifactToFeatureAssociation"> \
+           <properties> \
+               <type>permissionGroup</type> \
+           </properties> \
+       </group> \
+       <group name="removeFeatureToDistributionAssociation"> \
+           <properties> \
+               <type>permissionGroup</type> \
+           </properties> \
+       </group> \
+       <group name="viewFeature"> \
+           <properties> \
+               <type>permissionGroup</type> \
+           </properties> \
+       </group> \
+       <group name="editFeature"> \
+           <properties> \
+               <type>permissionGroup</type> \
+           </properties> \
+       </group> \
+       <group name="viewDistribution"> \
+           <properties> \
+               <type>permissionGroup</type> \
+           </properties> \
+       </group> \
+       <group name="editDistribution"> \
+           <properties> \
+               <type>permissionGroup</type> \
+           </properties> \
+       </group> \
+       <group name="createDistribution"> \
+           <properties> \
+               <type>permissionGroup</type> \
+           </properties> \
+       </group> \
+       <group name="removeDistribution"> \
+           <properties> \
+               <type>permissionGroup</type> \
+           </properties> \
+       </group> \
+       <group name="associateDistributionToTarget"> \
+           <properties> \
+               <type>permissionGroup</type> \
+           </properties> \
+       </group> \
+       <group name="viewTarget"> \
+           <properties> \
+               <type>permissionGroup</type> \
+           </properties> \
+       </group> \
+       <group name="editTarget"> \
+           <properties> \
+               <type>permissionGroup</type> \
+           </properties> \
+       </group> \
+       <group name="createTarget"> \
+           <properties> \
+               <type>permissionGroup</type> \
+           </properties> \
+       </group> \
+       <group name="removeTarget"> \
+           <properties> \
+               <type>permissionGroup</type> \
+           </properties> \
+       </group> \
+       <group name="approveTarget"> \
+           <properties> \
+               <type>permissionGroup</type> \
+           </properties> \
+       </group> \
+       <group name="registerTarget"> \
+           <properties> \
+               <type>permissionGroup</type> \
+           </properties> \
+       </group> \
+       <group name="removeDistributionToTargetAssociation"> \
+           <properties> \
+               <type>permissionGroup</type> \
+           </properties> \
+       </group> \
+       <group name="mock"> \
+           <properties> \
+               <type>permissionGroup</type> \
+           </properties> \
+       </group> \
+       <group name="TestGroup"> \
+           <properties> \
+               <type>userGroup</type> \
+           </properties> \
+           <memberof>createArtifact</memberof> \
+           <memberof>updateArtifact</memberof> \
+           <memberof>removeArtifact</memberof> \
+           <memberof>viewArtifact</memberof> \
+           <memberof>editArtifact</memberof> \
+           <memberof>createFeature</memberof> \
+           <memberof>removeFeature</memberof> \
+           <memberof>associateArtifactToFeature</memberof> \
+           <memberof>associateFeatureToDistribution</memberof> \
+           <memberof>removeArtifactToFeatureAssociation</memberof> \
+           <memberof>removeFeatureToDistributionAssociation</memberof> \
+           <memberof>viewFeature</memberof> \
+           <memberof>editFeature</memberof> \
+           <memberof>viewDistribution</memberof> \
+           <memberof>editDistribution</memberof> \
+           <memberof>createDistribution</memberof> \
+           <memberof>removeDistribution</memberof> \
+           <memberof>associateDistributionToTarget</memberof> \
+           <memberof>viewTarget</memberof> \
+           <memberof>editTarget</memberof> \
+           <memberof>createTarget</memberof> \
+           <memberof>removeTarget</memberof> \
+           <memberof>approveTarget</memberof> \
+           <memberof>registerTarget</memberof> \
+           <memberof>removeDistributionToTargetAssociation</memberof> \
+           <memberof>mock</memberof> \
+					 <memberof>editUsers</memberof> \
+       </group> \
+       <group name="Target Operator"> \
+           <properties> \
+               <type>userGroup</type> \
+           </properties> \
+           <memberof>viewArtifact</memberof> \
+           <memberof>viewFeature</memberof> \
+           <memberof>viewDistribution</memberof> \
+           <memberof>viewTarget</memberof> \
+           <memberof>approveTarget</memberof> \
+       </group> \
+       <group name="Distribution Manager"> \
+           <properties> \
+               <type>userGroup</type> \
+           </properties> \
+           <memberof>viewArtifact</memberof> \
+           <memberof>viewFeature</memberof> \
+           <memberof>viewDistribution</memberof> \
+           <memberof>editDistribution</memberof> \
+           <memberof>createDistribution</memberof> \
+           <memberof>removeDistribution</memberof> \
+           <memberof>associateDistributionToTarget</memberof> \
+           <memberof>viewTarget</memberof> \
+           <memberof>removeDistributionToTargetAssociation</memberof> \
+       </group> \
+       <group name="Release Manager"> \
+           <properties> \
+               <type>userGroup</type> \
+           </properties> \
+           <memberof>createArtifact</memberof> \
+           <memberof>updateArtifact</memberof> \
+           <memberof>removeArtifact</memberof> \
+           <memberof>viewArtifact</memberof> \
+           <memberof>editArtifact</memberof> \
+           <memberof>createFeature</memberof> \
+           <memberof>removeFeature</memberof> \
+           <memberof>associateArtifactToFeature</memberof> \
+           <memberof>associateFeatureToDistribution</memberof> \
+           <memberof>removeArtifactToFeatureAssociation</memberof> \
+           <memberof>removeFeatureToDistributionAssociation</memberof> \
+           <memberof>viewFeature</memberof> \
+           <memberof>editFeature</memberof> \
+           <memberof>viewDistribution</memberof> \
+           <memberof>viewTarget</memberof> \
+       </group> \
+       <group name="Target Manager"> \
+           <properties> \
+               <type>userGroup</type> \
+           </properties> \
+           <memberof>viewArtifact</memberof> \
+           <memberof>viewFeature</memberof> \
+           <memberof>viewDistribution</memberof> \
+           <memberof>viewTarget</memberof> \
+           <memberof>editTarget</memberof> \
+           <memberof>createTarget</memberof> \
+           <memberof>removeTarget</memberof> \
+           <memberof>registerTarget</memberof> \
+       </group> \
+       <group name="External Distribution Manager"> \
+           <properties> \
+               <type>userGroup</type> \
+           </properties> \
+           <memberof>createArtifact</memberof> \
+           <memberof>updateArtifact</memberof> \
+           <memberof>removeArtifact</memberof> \
+           <memberof>viewArtifact</memberof> \
+           <memberof>editArtifact</memberof> \
+           <memberof>createFeature</memberof> \
+           <memberof>removeFeature</memberof> \
+           <memberof>associateArtifactToFeature</memberof> \
+           <memberof>associateFeatureToDistribution</memberof> \
+           <memberof>removeArtifactToFeatureAssociation</memberof> \
+           <memberof>removeFeatureToDistributionAssociation</memberof> \
+           <memberof>viewFeature</memberof> \
+           <memberof>editFeature</memberof> \
+           <memberof>viewDistribution</memberof> \
+           <memberof>editDistribution</memberof> \
+           <memberof>createDistribution</memberof> \
+           <memberof>removeDistribution</memberof> \
+           <memberof>associateDistributionToTarget</memberof> \
+           <memberof>viewTarget</memberof> \
+           <memberof>editTarget</memberof> \
+           <memberof>createTarget</memberof> \
+           <memberof>removeTarget</memberof> \
+           <memberof>approveTarget</memberof> \
+           <memberof>registerTarget</memberof> \
+           <memberof>removeDistributionToTargetAssociation</memberof> \
+           <memberof>mock</memberof> \
+       </group> \
+       <user name="d"> \
+           <properties> \
+               <username>d</username> \
+           </properties> \
+           <credentials> \
+               <password>f</password> \
+           </credentials> \
+           <memberof>TestGroup</memberof> \
+       </user> \
+       <user name="lm"> \
+           <properties> \
+               <username>lm</username> \
+           </properties> \
+           <credentials> \
+               <password>lm</password> \
+           </credentials> \
+           <memberof>Distribution Manager</memberof> \
+       </user> \
+       <user name="go"> \
+           <properties> \
+               <username>go</username> \
+           </properties> \
+           <credentials> \
+               <password>go</password> \
+           </credentials> \
+           <memberof>Target Operator</memberof> \
+       </user> \
+       <user name="rm"> \
+           <properties> \
+               <username>rm</username> \
+           </properties> \
+           <credentials> \
+               <password>rm</password> \
+           </credentials> \
+           <memberof>Release Manager</memberof> \
+       </user> \
+       <user name="gm"> \
+           <properties> \
+               <username>gm</username> \
+           </properties> \
+           <credentials> \
+               <password>gm</password> \
+           </credentials> \
+           <memberof>Target Manager</memberof> \
+       </user> \
+       <user name="elm"> \
+           <properties> \
+               <username>elm</username> \
+           </properties> \
+           <credentials> \
+               <password>elm</password> \
+           </credentials> \
+           <memberof>External Distribution Manager</memberof> \
+       </user> \
+</roles>

Added: ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.webui.vaadin.cfg
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.webui.vaadin.cfg?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.webui.vaadin.cfg (added)
+++ ace/trunk/org.apache.ace.useradmin.ui.itest/conf/org.apache.ace.webui.vaadin.cfg Wed Nov 21 23:11:26 2012
@@ -0,0 +1,10 @@
+# The endpoint of the Vaadin UI
+org.apache.ace.server.servlet.endpoint = /ace
+# Vaadin UI settings
+ui.authentication.enabled = true
+ui.authentication.user.name = dd
+ui.authentication.user.password = ff
+# ACE MS settings
+ace.host = http://localhost:${org.apache.ace.server.port}/
+# OBR settings
+obr.url = http://localhost:${org.apache.ace.server.port}/obr/

Added: ace/trunk/org.apache.ace.useradmin.ui.itest/src/org/apache/ace/useradmin/ui/test/UserEditorTest.java
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui.itest/src/org/apache/ace/useradmin/ui/test/UserEditorTest.java?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui.itest/src/org/apache/ace/useradmin/ui/test/UserEditorTest.java (added)
+++ ace/trunk/org.apache.ace.useradmin.ui.itest/src/org/apache/ace/useradmin/ui/test/UserEditorTest.java Wed Nov 21 23:11:26 2012
@@ -0,0 +1,273 @@
+/*
+ * 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.ace.useradmin.ui.test;
+
+import org.apache.ace.it.IntegrationTestBase;
+import org.apache.ace.useradmin.ui.editor.GroupNotFoundException;
+import org.apache.ace.useradmin.ui.editor.UserAlreadyExistsException;
+import org.apache.ace.useradmin.ui.editor.UserDTO;
+import org.apache.ace.useradmin.ui.editor.UserEditor;
+import org.apache.ace.useradmin.ui.editor.UserNotFoundException;
+import org.apache.felix.dm.Component;
+import org.osgi.service.useradmin.Group;
+import org.osgi.service.useradmin.Role;
+import org.osgi.service.useradmin.User;
+import org.osgi.service.useradmin.UserAdmin;
+
+public class UserEditorTest extends IntegrationTestBase {
+    private volatile UserEditor instance;
+    private volatile UserAdmin useradmin;
+    private static boolean firststart = true;
+
+    public UserEditorTest() {
+    }
+
+    @Override
+    protected void before() throws Exception {
+        super.before();
+        if (firststart) {
+            Thread.sleep(1000);
+            firststart = false;
+        }
+    }
+
+    protected org.apache.felix.dm.Component[] getDependencies() {
+        return new Component[] { createComponent()
+            .setImplementation(this)
+            .add(createServiceDependency()
+                .setService(UserEditor.class)
+                .setRequired(true)
+            )
+            .add(createServiceDependency()
+                .setService(UserAdmin.class)
+                .setRequired(true)
+            )
+        };
+    }
+    
+    // How to test in future? When amount of groups grows, test will fail...
+    // Need something to assert here.
+    public void testGetGroups() {
+        assertEquals(6, instance.getGroups().size());
+    }
+
+    // How to test in future? When amount of users grows, test will fail...
+    // Need something to assert here.
+    public void testGetUsers() {
+        assertEquals(6, instance.getData().size());
+    }
+
+    public void testGetGroupByUser() {
+        User newUser = null;
+        Role newRole = useradmin.createRole((String) "Testuser", Role.USER);
+        Group group = (Group) useradmin.getRole("TestGroup");
+        if (newRole != null && group != null) {
+            newUser = (User) newRole;
+            newUser.getProperties().put("username", "u");
+            newUser.getCredentials().put("password", "p");
+            group.addMember(newUser);
+        }
+        assertEquals(group, instance.getGroup(newUser));
+        useradmin.removeRole("u");
+    }
+
+    public void testGetGroupByUserNull() {
+        assertNull(instance.getGroup(null));
+    }
+
+    public void testAddUserAndRemove() throws Exception {
+        UserDTO userDTO = new UserDTO("tran", "tran", "TestGroup");
+        instance.addUser(userDTO);
+        User user = instance.getUser("tran");
+        assertEquals("tran", (String) user.getProperties().get("username"));
+        instance.removeUser(userDTO);
+    }
+
+    public void testAddUserWithEmptyUsername() throws Exception {
+        try {
+            UserDTO userDTO = new UserDTO("", "tran", "TestGroup");
+            instance.addUser(userDTO);
+        }
+        catch (IllegalArgumentException ex) {
+            assertEquals("Username, password and groupname cannot be null or \"\"", ex.getMessage());
+        }
+
+    }
+
+    public void testAddUserWithNullUsername() throws Exception {
+        try {
+            UserDTO userDTO = new UserDTO(null, "tran", "TestGroup");
+            instance.addUser(userDTO);
+        }
+        catch (IllegalArgumentException ex) {
+            assertEquals("Username, password and groupname cannot be null or \"\"", ex.getMessage());
+        }
+
+    }
+
+    public void testAddUserToNonExistingGroup() throws Exception {
+        try {
+            UserDTO userDTO = new UserDTO("tran", "bob", "nonexistingGroup");
+            instance.addUser(userDTO);
+        }
+        catch (Exception ex) {
+            assertEquals("Group: nonexistingGroup not found", ex.getMessage());
+        }
+    }
+
+    public void testAddUserToNullGroup() throws Exception {
+        try {
+            UserDTO userDTO = new UserDTO("tran", "bob", null);
+            instance.addUser(userDTO);
+        }
+        catch (IllegalArgumentException ex) {
+            assertEquals("Username, password and groupname cannot be null or \"\"", ex.getMessage());
+        }
+    }
+
+    public void testAddUserToEmptyGroupname() throws Exception {
+        try {
+            UserDTO userDTO = new UserDTO("tran", "bob", "");
+            instance.addUser(userDTO);
+        }
+        catch (Exception ex) {
+            assertEquals("Username, password and groupname cannot be null or \"\"", ex.getMessage());
+        }
+    }
+
+    public void testEditUserWithValidPassword() throws Exception {
+        UserDTO userDTO = new UserDTO("bob", "tran", "TestGroup");
+        instance.addUser(userDTO);
+        userDTO.setPassword("bob");
+        instance.editPassword(userDTO);
+        assertEquals("bob", (String) instance.getUser("bob").getCredentials().get("password"));
+        instance.removeUser(userDTO);
+    }
+
+    public void testEditUserWithNullPassword() throws UserNotFoundException {
+        UserDTO userDTO = new UserDTO("tran", "tran", "TestGroup");
+
+        try {
+            instance.addUser(userDTO);
+            userDTO.setPassword(null);
+            instance.editPassword(userDTO);
+        }
+        catch (Exception e) {
+            assertEquals("Username or Password cannot be null or \"\" ", e.getMessage());
+            instance.removeUser(userDTO);
+        }
+    }
+
+    public void testEditUserWithEmptyPassword() throws UserNotFoundException {
+        UserDTO userDTO = new UserDTO("tran", "tran", "TestGroup");
+        try {
+
+            instance.addUser(userDTO);
+            userDTO.setPassword("");
+            instance.editPassword(userDTO);
+        }
+        catch (Exception e) {
+            assertEquals("Username or Password cannot be null or \"\" ", e.getMessage());
+            instance.removeUser(userDTO);
+        }
+    }
+
+    public void testEditNonExistingUser() {
+        try {
+            UserDTO userDTO = new UserDTO("BOOOOOB", null, null);
+            userDTO.setUsername("bob");
+            instance.editUsername(userDTO);
+        }
+        catch (Exception userNotFoundException) {
+            assertEquals("User: BOOOOOB not found", userNotFoundException.getMessage());
+        }
+    }
+
+    public void testEditUsernameWithValidName() throws Exception {
+        UserDTO userDTO = new UserDTO("lala", "tran", "TestGroup");
+        instance.addUser(userDTO);
+        useradmin.getUser("username", "lala").getProperties().put("username", "lala1");
+        User user = (User) useradmin.getRole("lala");
+        assertEquals("lala", user.getName());
+        assertEquals("lala1", (String) user.getProperties().get("username"));
+        user = useradmin.getUser("username", "lala1");
+        userDTO = new UserDTO(user, instance.getGroup(user));
+        assertEquals("lala", user.getName());
+        assertEquals("lala1", (String) user.getProperties().get("username"));
+        instance.removeUser(userDTO);
+    }
+
+    public void testEditUsernameWithAlreadyExistingName() throws UserNotFoundException {
+        try {
+            UserDTO userDTO = new UserDTO("Hank", "password", "TestGroup");
+            instance.addUser(userDTO);
+            userDTO = new UserDTO("Dirk", "password", "TestGroup");
+            instance.addUser(userDTO);
+            userDTO.setUsername("Hank");
+            instance.editUsername(userDTO);
+        }
+        catch (Exception userAlreadyExistsException) {
+            assertEquals("User: Hank already exists", userAlreadyExistsException.getMessage());
+            instance.removeUser(new UserDTO("Hank", null, null));
+            instance.removeUser(new UserDTO("Dirk", null, null));
+        }
+    }
+
+    public void testEditUserNameWithNull() throws GroupNotFoundException, UserAlreadyExistsException, UserNotFoundException {
+        try {
+            UserDTO userDTO = new UserDTO("Dirk", "password", "TestGroup");
+            instance.addUser(userDTO);
+            userDTO.setUsername(null);
+            instance.editUsername(userDTO);
+        }
+        catch (Exception invalidArgumentException) {
+            assertEquals("oldUsername and newUsername cannot be null or \"\" ", invalidArgumentException.getMessage());
+            instance.removeUser(new UserDTO("Dirk", "password", "TestGroup"));
+        }
+    }
+
+    public void testEditUserNameWithEmptyName() throws GroupNotFoundException, UserAlreadyExistsException, UserNotFoundException {
+        try {
+            UserDTO userDTO = new UserDTO("Dirk", "password", "TestGroup");
+            instance.addUser(userDTO);
+            userDTO.setUsername("");
+            instance.editUsername(userDTO);
+        }
+        catch (Exception invalidArgumentException) {
+            assertEquals("oldUsername and newUsername cannot be null or \"\" ", invalidArgumentException.getMessage());
+            instance.removeUser(new UserDTO("Dirk", "password", "TestGroup"));
+        }
+    }
+
+    // // Broken test, newUser is null at end of method??
+    // public void GetUserBroken() {
+    // User newUser = null;
+    // Role newRole = useradmin.createRole((String) "Testuser", Role.USER);
+    // Group group = (Group) useradmin.getRole("TestGroup");
+    // if (newRole != null && group != null)
+    // {
+    // newUser = (User) newRole;
+    // newUser.getProperties().put("username", "u");
+    // newUser.getCredentials().put("password", "p");
+    // group.addMember(newUser);
+    // }
+    // assertEquals("Testuser", instance.getUser("u").getName());
+    // }
+
+}

Added: ace/trunk/org.apache.ace.useradmin.ui.itest/store/repository.xml
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui.itest/store/repository.xml?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui.itest/store/repository.xml (added)
+++ ace/trunk/org.apache.ace.useradmin.ui.itest/store/repository.xml Wed Nov 21 23:11:26 2012
@@ -0,0 +1,4 @@
+<?xml version='1.0' encoding='utf-8'?>
+<?xml-stylesheet type='text/xsl' href='http://www2.osgi.org/www/obr2html.xsl'?>
+
+<repository lastmodified='20121121110748.940' name='Untitled'/>
\ No newline at end of file

Added: ace/trunk/org.apache.ace.useradmin.ui/.classpath
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui/.classpath?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui/.classpath (added)
+++ ace/trunk/org.apache.ace.useradmin.ui/.classpath Wed Nov 21 23:11:26 2012
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+	<classpathentry kind="con" path="aQute.bnd.classpath.container"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>

Added: ace/trunk/org.apache.ace.useradmin.ui/.project
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui/.project?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui/.project (added)
+++ ace/trunk/org.apache.ace.useradmin.ui/.project Wed Nov 21 23:11:26 2012
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.apache.ace.useradmin.ui</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>bndtools.core.bndbuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>bndtools.core.bndnature</nature>
+	</natures>
+</projectDescription>

Added: ace/trunk/org.apache.ace.useradmin.ui/bnd.bnd
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui/bnd.bnd?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui/bnd.bnd (added)
+++ ace/trunk/org.apache.ace.useradmin.ui/bnd.bnd Wed Nov 21 23:11:26 2012
@@ -0,0 +1,26 @@
+-runfw: org.apache.felix.framework;version='[4.0.2,4.0.2]'
+-runee: JavaSE-1.6
+-buildpath: org.apache.felix.dependencymanager,\
+	osgi.core,\
+	osgi.cmpn,\
+	com.vaadin,\
+	org.apache.ace.client.repository.api;version=latest,\
+	org.apache.ace.connectionfactory;version=latest,\
+	org.apache.ace.authentication.api;version=latest,\
+	org.apache.ace.authentication;version=latest,\
+	javax.servlet,\
+	org.apache.ace.webui.vaadin;version=latest
+Bundle-Activator: org.apache.ace.useradmin.ui.osgi.Activator
+Bundle-Version: 0.0.1
+Private-Package: org.apache.ace.useradmin.ui.osgi,\
+	org.apache.ace.useradmin.ui.vaadin,\
+	org.apache.ace.useradmin.ui.editor.impl
+-runbundles: org.apache.ace.client.repository.api;resolution=file:/Users/Maurice/Dev/ApacheAce/org.apache.ace.client.repository.api/generated/org.apache.ace.client.repository.api.jar;version=latest,\
+	org.apache.ace.connectionfactory;resolution=file:/Users/Maurice/Dev/ApacheAce/org.apache.ace.connectionfactory/generated/org.apache.ace.connectionfactory.jar;version=latest,\
+	org.apache.felix.http.jetty;resolution=http://bundles.bndtools.org.s3.amazonaws.com/org.apache.felix.http.jetty/org.apache.felix.http.jetty-2.2.0.jar;version='[2.2.0,2.2.1)',\
+	org.apache.ace.managementagent;resolution=file:/Users/Maurice/Dev/ApacheAce/org.apache.ace.managementagent/generated/org.apache.ace.managementagent.jar;version=latest,\
+	org.apache.ace.authentication.api;resolution=file:/Users/Maurice/Dev/ApacheAce/org.apache.ace.authentication.api/generated/org.apache.ace.authentication.api.jar;version=latest,\
+	com.vaadin;resolution=file:/Users/Maurice/Dev/ApacheAce/cnf/repo/com.vaadin/com.vaadin-6.8.4.jar;version='[6.8.4,6.8.5)',\
+	osgi.cmpn;resolution=http://bundles.bndtools.org.s3.amazonaws.com/osgi.cmpn/osgi.cmpn-4.2.1.jar;version='[4.2.1,4.2.2)',\
+	org.apache.ace.webui.vaadin;resolution=file:/Users/Maurice/Dev/ApacheAce/org.apache.ace.webui.vaadin/generated/org.apache.ace.webui.vaadin.jar;version=latest
+Export-Package: org.apache.ace.useradmin.ui.editor
\ No newline at end of file

Added: ace/trunk/org.apache.ace.useradmin.ui/build.xml
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui/build.xml?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui/build.xml (added)
+++ ace/trunk/org.apache.ace.useradmin.ui/build.xml Wed Nov 21 23:11:26 2012
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="project" default="build"> 
+	<import file="../cnf/build.xml"/>
+</project>

Added: ace/trunk/org.apache.ace.useradmin.ui/src/org/apache/ace/useradmin/ui/editor/GroupNotFoundException.java
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui/src/org/apache/ace/useradmin/ui/editor/GroupNotFoundException.java?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui/src/org/apache/ace/useradmin/ui/editor/GroupNotFoundException.java (added)
+++ ace/trunk/org.apache.ace.useradmin.ui/src/org/apache/ace/useradmin/ui/editor/GroupNotFoundException.java Wed Nov 21 23:11:26 2012
@@ -0,0 +1,25 @@
+/*
+ * 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.ace.useradmin.ui.editor;
+
+public class GroupNotFoundException extends Exception {
+    public GroupNotFoundException(String groupName) {
+        super("Group: " + groupName + " not found");
+    }
+}

Added: ace/trunk/org.apache.ace.useradmin.ui/src/org/apache/ace/useradmin/ui/editor/UserAlreadyExistsException.java
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui/src/org/apache/ace/useradmin/ui/editor/UserAlreadyExistsException.java?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui/src/org/apache/ace/useradmin/ui/editor/UserAlreadyExistsException.java (added)
+++ ace/trunk/org.apache.ace.useradmin.ui/src/org/apache/ace/useradmin/ui/editor/UserAlreadyExistsException.java Wed Nov 21 23:11:26 2012
@@ -0,0 +1,25 @@
+/*
+ * 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.ace.useradmin.ui.editor;
+
+public class UserAlreadyExistsException extends Exception {
+    public UserAlreadyExistsException(String username) {
+        super("User: " + username + " already exists");
+    }
+}

Added: ace/trunk/org.apache.ace.useradmin.ui/src/org/apache/ace/useradmin/ui/editor/UserDTO.java
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui/src/org/apache/ace/useradmin/ui/editor/UserDTO.java?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui/src/org/apache/ace/useradmin/ui/editor/UserDTO.java (added)
+++ ace/trunk/org.apache.ace.useradmin.ui/src/org/apache/ace/useradmin/ui/editor/UserDTO.java Wed Nov 21 23:11:26 2012
@@ -0,0 +1,213 @@
+/*
+ * 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.ace.useradmin.ui.editor;
+
+import org.osgi.service.useradmin.Group;
+import org.osgi.service.useradmin.User;
+
+/**
+ * UserDTO contains the information of the user and the group.
+ */
+public class UserDTO implements Comparable<UserDTO> {
+
+    private User m_user;
+    private String m_previousUsername;
+    private String m_username;
+    private String m_password;
+    private String m_groupname;
+    private Group m_group;
+    private boolean m_usernameChanged;
+    private boolean m_passwordChanged;
+    private boolean m_groupChanged;
+
+    public UserDTO(User user, Group group) {
+        m_user = user;
+        m_group = group;
+        m_username = (String) user.getProperties().get("username");
+        m_previousUsername = m_username;
+        m_password = (String) user.getCredentials().get("password");
+        m_groupname = group.getName();
+    }
+
+    public UserDTO(String username, String password, String groupname) {
+        m_username = username;
+        m_password = password;
+        m_previousUsername = username;
+        m_groupname = groupname;
+    }
+
+    /**
+     * Sets the username changed flag.
+     * 
+     * @param usernameChanged
+     */
+    public void setUsernameChanged(boolean usernameChanged) {
+        m_usernameChanged = usernameChanged;
+    }
+
+    /**
+     * Sets the password changed flag.
+     * 
+     * @param passwordChanged
+     */
+    public void setPasswordChanged(boolean passwordChanged) {
+        m_passwordChanged = passwordChanged;
+    }
+
+    /**
+     * Sets the group changed flag.
+     * 
+     * @param groupChanged
+     */
+    public void setGroupChanged(boolean groupChanged) {
+        m_groupChanged = groupChanged;
+    }
+
+    /**
+     * Returns the state of username.
+     * 
+     * @return true when the username is changed and will return false when username isn't changed
+     */
+    public boolean isUsernameChanged() {
+        return m_usernameChanged;
+    }
+
+    /**
+     * Returns the state of password.
+     * 
+     * @return true when the password is changed and will return false when password isn't changed
+     */
+    public boolean isPasswordChanged() {
+        return m_passwordChanged;
+    }
+
+    /**
+     * Returns the state of group.
+     * 
+     * @return true when the group is changed and will return false when group isn't changed
+     */
+    public boolean isGroupChanged() {
+        return m_groupChanged;
+    }
+
+    /**
+     * Returns the current username that is stored in the useradminService.
+     * 
+     * @return username
+     */
+    public String getPreviousUsername() {
+        return m_previousUsername;
+    }
+
+    /**
+     * Returns the user object.
+     * 
+     * @return user
+     */
+    public User getUser() {
+        return m_user;
+    }
+
+    /**
+     * Returns the current username. This can be either the one that is stored in userAdminService, or the
+     * current username that is store in this object.
+     * 
+     * @return username
+     */
+    public String getUsername() {
+        return m_username;
+    }
+
+    /**
+     * Set the current username.
+     * 
+     * @param username
+     */
+    public void setUsername(String username) {
+        m_usernameChanged = true;
+        m_username = username;
+    }
+
+    /**
+     * Returns the current password.
+     * 
+     * @return password
+     */
+    public String getPassword() {
+        return m_password;
+    }
+
+    /**
+     * Changes the current password.
+     * 
+     * @param password
+     */
+    public void setPassword(String password) {
+        m_passwordChanged = true;
+        m_password = password;
+    }
+
+    /**
+     * Returns the current groupname.
+     * 
+     * @return
+     */
+    public String getGroupname() {
+        return m_groupname;
+    }
+
+    /**
+     * Sets the current groupname.
+     * 
+     * @param groupname
+     */
+    public void setGroupname(String groupname) {
+        m_groupChanged = true;
+        m_groupname = groupname;
+    }
+
+    /**
+     * Returns the Group object
+     * 
+     * @return Group object
+     */
+    public Group getGroup() {
+        return m_group;
+    }
+
+    public String toString() {
+        return m_username;
+    }
+
+    @Override
+    public int compareTo(UserDTO other) {
+        return m_username.compareTo(other.m_username);
+    }
+
+    /**
+     * 
+     * @return true when if username,password, or group is changed
+     */
+    public boolean isUpdated() {
+        if (m_usernameChanged || m_passwordChanged || m_groupChanged) {
+            return true;
+        }
+        return false;
+    }
+}

Added: ace/trunk/org.apache.ace.useradmin.ui/src/org/apache/ace/useradmin/ui/editor/UserEditor.java
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui/src/org/apache/ace/useradmin/ui/editor/UserEditor.java?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui/src/org/apache/ace/useradmin/ui/editor/UserEditor.java (added)
+++ ace/trunk/org.apache.ace.useradmin.ui/src/org/apache/ace/useradmin/ui/editor/UserEditor.java Wed Nov 21 23:11:26 2012
@@ -0,0 +1,132 @@
+/*
+ * 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.ace.useradmin.ui.editor;
+
+import java.util.List;
+
+import org.osgi.service.useradmin.Group;
+import org.osgi.service.useradmin.User;
+
+/**
+ * UserEditor is used to call operations to edit Users on the useradminService
+ */
+public interface UserEditor {
+    /**
+     * AddUser can be called to ask the useradmin to add an user to useradmin service If the user already exist the
+     * method will throw an exception If the useradmin can't find the group with the groupname, the editor will throw an
+     * exception
+     * 
+     * @param userDTO userDTO object contains the information a user.
+     * @throws UserAlreadyExistsException Will be thrown when a user with the username already exist
+     * @throws GroupNotFoundException Will be thrown when the group isn't found
+     */
+    void addUser(UserDTO userDTO) throws GroupNotFoundException, UserAlreadyExistsException;
+
+    /**
+     * Will check if the userDTO has changed
+     * 
+     * @param userDTO userDTO object contains the information of a user.
+     * @throws UserNotFoundException Will be thrown when the old user cannot be found
+     * @throws GroupNotFoundException Will be thrown when the new group can't be found
+     * @throws UserAlreadyExistsException Will be thrown when a user with the username already exist
+     */
+    void storeUserDTO(UserDTO userDTO) throws UserNotFoundException, GroupNotFoundException, UserAlreadyExistsException;
+
+    /**
+     * editUser can be called to edit the username of an user. It will add a new Role with the information of the old
+     * Role. Then it will remove the old Role and it will remove the user from the group where the user is belonging to.
+     * 
+     * @throws UserNotFoundException Will be thrown when a user isn't found
+     * @throws GroupNotFoundException Will be thrown when the group isn't found
+     */
+    void editUsername(UserDTO userDTO) throws UserNotFoundException, GroupNotFoundException, UserAlreadyExistsException;
+
+    /**
+     * Can be used to edit the password of a user
+     * 
+     * @param userDTO userDTO object contains the information of a user.
+     * @throws UserNotFoundException Will be thrown when a user isn't found
+     * 
+     */
+    void editPassword(UserDTO userDTO) throws UserNotFoundException;
+
+    /**
+     * Can be used to modify the group of a user;
+     * 
+     * @param userDTO userDTO object contains the information of a user.
+     * @throws UserAlreadyExistsException Will be thrown when a user with the username already exist
+     * @throws UserNotFoundException Will be thrown when a user isn't found
+     * @throws GroupNotFoundException Will be thrown when the group isn't found
+     */
+    void editGroup(UserDTO userDTO) throws UserNotFoundException, GroupNotFoundException;
+
+    /**
+     * removeUser will ask the useradmin to remove a user. It will also check if the user is belonging to any group. If
+     * the user is a member of the group. It will then remove the user of the specific group
+     * 
+     * @param userDTO userDTO object contains the information a user.
+     * @throws UserNotFoundException Will be thrown when a user isn't found
+     * 
+     */
+    void removeUser(UserDTO userDTO) throws UserNotFoundException;
+
+    /**
+     * Returns all currently known users from the UserAdmin service.
+     * 
+     * @return List of currently known users in UserAdmin
+     */
+    List<UserDTO> getData();
+
+    /**
+     * Returns all currently known groups from the UserAdmin service.
+     * 
+     * @return List of currently known groups in UserAdmin
+     */
+    List<Group> getGroups();
+
+    /**
+     * Returns the specific Group to which the given User belongs.
+     * 
+     * @param user
+     * @return Group to which the given user belongs.
+     */
+    Group getGroup(User user);
+
+    /**
+     * Returns the User tied to the given username.
+     * 
+     * @param username
+     * @return User tied to given username.
+     */
+    User getUser(String username);
+
+    /**
+     * Returns a list from Users
+     * 
+     * @return list users
+     */
+    List<User> getUsers();
+
+    /**
+     * Will check if the user got the roles
+     * 
+     * @return
+     */
+    boolean hasRole(User user, String role);
+}

Added: ace/trunk/org.apache.ace.useradmin.ui/src/org/apache/ace/useradmin/ui/editor/UserNotFoundException.java
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.useradmin.ui/src/org/apache/ace/useradmin/ui/editor/UserNotFoundException.java?rev=1412355&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.useradmin.ui/src/org/apache/ace/useradmin/ui/editor/UserNotFoundException.java (added)
+++ ace/trunk/org.apache.ace.useradmin.ui/src/org/apache/ace/useradmin/ui/editor/UserNotFoundException.java Wed Nov 21 23:11:26 2012
@@ -0,0 +1,25 @@
+/*
+ * 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.ace.useradmin.ui.editor;
+
+public class UserNotFoundException extends Exception {
+    public UserNotFoundException(String username) {
+        super("User: " + username + " not found");
+    }
+}