Repository: usergrid
Updated Branches:
  refs/heads/master 949105226 -> 21ba17e45


http://git-wip-us.apache.org/repos/asf/usergrid/blob/90d5d665/stack/services/src/main/java/org/apache/usergrid/management/OrganizationConfigProps.java
----------------------------------------------------------------------
diff --git 
a/stack/services/src/main/java/org/apache/usergrid/management/OrganizationConfigProps.java
 
b/stack/services/src/main/java/org/apache/usergrid/management/OrganizationConfigProps.java
index 577e1d6..f50705f 100644
--- 
a/stack/services/src/main/java/org/apache/usergrid/management/OrganizationConfigProps.java
+++ 
b/stack/services/src/main/java/org/apache/usergrid/management/OrganizationConfigProps.java
@@ -16,25 +16,45 @@
  */
 package org.apache.usergrid.management;
 
+import org.apache.usergrid.system.ServerEnvironmentProps;
+
 import java.util.Map;
+import java.util.Properties;
 import java.util.Set;
 
 public interface OrganizationConfigProps {
-    String PROPERTIES_DEFAULT_CONNECTION_PARAM = 
"usergrid.rest.default-connection-param";
-    String PROPERTIES_ADMIN_SYSADMIN_EMAIL = 
AccountCreationProps.PROPERTIES_ADMIN_SYSADMIN_EMAIL;
-    String PROPERTIES_ADMIN_ACTIVATION_URL = 
AccountCreationProps.PROPERTIES_ADMIN_ACTIVATION_URL;
-    String PROPERTIES_ADMIN_CONFIRMATION_URL = 
AccountCreationProps.PROPERTIES_ADMIN_CONFIRMATION_URL;
-    String PROPERTIES_ADMIN_RESETPW_URL = 
AccountCreationProps.PROPERTIES_ADMIN_RESETPW_URL;
+    String ORGPROPERTIES_API_URL_BASE = ServerEnvironmentProps.API_URL_BASE;
+    String ORGPROPERTIES_DEFAULT_CONNECTION_PARAM = 
"usergrid.rest.default-connection-param";
+    String ORGPROPERTIES_ADMIN_SYSADMIN_EMAIL = 
AccountCreationProps.PROPERTIES_ADMIN_SYSADMIN_EMAIL;
+
+    // these can not currently be set as org config items, but they select
+    // the full URL to be created from the org-specific API URL base and the
+    // hardcoded paths
+    //
+    // use these specifiers with getFullUrl() to select the URL to be built
+    enum WorkflowUrl {
+        ORGANIZATION_ACTIVATION_URL,
+        ADMIN_ACTIVATION_URL,
+        ADMIN_CONFIRMATION_URL,
+        ADMIN_RESETPW_URL,
+        USER_ACTIVATION_URL,
+        USER_CONFIRMATION_URL,
+        USER_RESETPW_URL
+    }
+
+    Set<String> getOrgPropertyNames();
 
-    Set<String> getPropertyNames();
+    Properties getPropertiesMap();
 
-    Map<String, String> getPropertyMap();
+    Map<String, String> getDefaultPropertiesMap();
+
+    Map<String, String> getOrgPropertiesMap();
 
     String getProperty(String name);
 
     String getProperty(String name, String defaultValue);
 
-    boolean isProperty(String name, boolean defaultValue);
+    boolean boolProperty(String name, boolean defaultValue);
 
     int intProperty(String name, int defaultValue);
 
@@ -42,4 +62,8 @@ public interface OrganizationConfigProps {
 
     void setProperty(String name, String value);
 
+    String getFullUrlTemplate(WorkflowUrl urlType);
+
+    String getFullUrl(WorkflowUrl urlType, Object ... arguments);
+
 }

http://git-wip-us.apache.org/repos/asf/usergrid/blob/90d5d665/stack/services/src/main/java/org/apache/usergrid/management/OrganizationInfo.java
----------------------------------------------------------------------
diff --git 
a/stack/services/src/main/java/org/apache/usergrid/management/OrganizationInfo.java
 
b/stack/services/src/main/java/org/apache/usergrid/management/OrganizationInfo.java
index ba6322e..7481447 100644
--- 
a/stack/services/src/main/java/org/apache/usergrid/management/OrganizationInfo.java
+++ 
b/stack/services/src/main/java/org/apache/usergrid/management/OrganizationInfo.java
@@ -17,12 +17,8 @@
 package org.apache.usergrid.management;
 
 
-import java.util.ArrayList;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.Map.Entry;
-import java.util.UUID;
 
 import static org.apache.usergrid.persistence.Schema.PROPERTY_PATH;
 import static org.apache.usergrid.persistence.Schema.PROPERTY_UUID;
@@ -53,9 +49,9 @@ public class OrganizationInfo {
     }
 
 
-    public OrganizationInfo( UUID id, String name, Map<String, Object> 
properties ) {
+    public <KeyType,ValueType> OrganizationInfo( UUID id, String name, 
Map<KeyType, ValueType> properties ) {
         this( id, name );
-        this.properties = properties;
+        setProperties(properties);
     }
 
 
@@ -98,7 +94,7 @@ public class OrganizationInfo {
 
 
     public static List<OrganizationInfo> fromNameIdMap( Map<String, UUID> map 
) {
-        List<OrganizationInfo> list = new ArrayList<OrganizationInfo>();
+        List<OrganizationInfo> list = new ArrayList<>();
         for ( Entry<String, UUID> s : map.entrySet() ) {
             list.add( new OrganizationInfo( s.getValue(), s.getKey() ) );
         }
@@ -107,7 +103,7 @@ public class OrganizationInfo {
 
 
     public static List<OrganizationInfo> fromIdNameMap( Map<UUID, String> map 
) {
-        List<OrganizationInfo> list = new ArrayList<OrganizationInfo>();
+        List<OrganizationInfo> list = new ArrayList<>();
         for ( Entry<UUID, String> s : map.entrySet() ) {
             list.add( new OrganizationInfo( s.getKey(), s.getValue() ) );
         }
@@ -116,7 +112,7 @@ public class OrganizationInfo {
 
 
     public static Map<String, UUID> toNameIdMap( List<OrganizationInfo> list ) 
{
-        Map<String, UUID> map = new LinkedHashMap<String, UUID>();
+        Map<String, UUID> map = new LinkedHashMap<>();
         for ( OrganizationInfo i : list ) {
             map.put( i.getName(), i.getUuid() );
         }
@@ -125,7 +121,7 @@ public class OrganizationInfo {
 
 
     public static Map<UUID, String> toIdNameMap( List<OrganizationInfo> list ) 
{
-        Map<UUID, String> map = new LinkedHashMap<UUID, String>();
+        Map<UUID, String> map = new LinkedHashMap<>();
         for ( OrganizationInfo i : list ) {
             map.put( i.getUuid(), i.getName() );
         }
@@ -179,8 +175,11 @@ public class OrganizationInfo {
         return properties;
     }
 
-
-    public void setProperties( Map<String, Object> properties ) {
-        this.properties = properties;
+    // using generics to avoid getting a bunch of unchecked type conversions
+    public <KeyType, ValueType> void setProperties( Map<KeyType, ValueType> 
properties ) {
+        this.properties = new HashMap<>();
+        if (properties != null) {
+            properties.forEach((k, v) -> this.properties.put(k.toString(), v));
+        }
     }
 }

http://git-wip-us.apache.org/repos/asf/usergrid/blob/90d5d665/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java
----------------------------------------------------------------------
diff --git 
a/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java
 
b/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java
index a4259f7..47bc086 100644
--- 
a/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java
+++ 
b/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java
@@ -65,7 +65,6 @@ import org.apache.usergrid.security.shiro.utils.SubjectUtils;
 import org.apache.usergrid.security.tokens.TokenCategory;
 import org.apache.usergrid.security.tokens.TokenInfo;
 import org.apache.usergrid.security.tokens.TokenService;
-import org.apache.usergrid.security.tokens.cassandra.TokenServiceImpl;
 import org.apache.usergrid.security.tokens.exceptions.TokenException;
 import org.apache.usergrid.services.*;
 import org.apache.usergrid.utils.*;
@@ -103,6 +102,7 @@ import static 
org.apache.usergrid.utils.ConversionUtils.uuid;
 import static org.apache.usergrid.utils.ListUtils.anyNull;
 import static org.apache.usergrid.utils.MapUtils.hashMap;
 import static org.apache.usergrid.utils.PasswordUtils.mongoPassword;
+import static org.apache.usergrid.management.OrganizationConfigProps.*;
 
 
 public class ManagementServiceImpl implements ManagementService {
@@ -202,7 +202,7 @@ public class ManagementServiceImpl implements 
ManagementService {
     String defaultAdminSysAdminEmail = null;
     private String getDefaultAdminSystemEmail(){
         if( defaultAdminSysAdminEmail == null ){
-            defaultAdminSysAdminEmail = 
properties.getProperty(PROPERTIES_ADMIN_SYSADMIN_EMAIL);
+            defaultAdminSysAdminEmail = 
properties.getProperty(ORGPROPERTIES_ADMIN_SYSADMIN_EMAIL);
             if (defaultAdminSysAdminEmail == null || 
defaultAdminSysAdminEmail.isEmpty()) {
                 defaultAdminSysAdminEmail = getDefaultSysAdminEmail();
             }
@@ -216,7 +216,7 @@ public class ManagementServiceImpl implements 
ManagementService {
         try {
             OrganizationConfig orgConfig = 
getOrganizationConfigForApplication(applicationId);
             if (orgConfig != null) {
-                adminSystemEmail = 
orgConfig.getProperty(PROPERTIES_ADMIN_SYSADMIN_EMAIL);
+                adminSystemEmail = 
orgConfig.getProperty(ORGPROPERTIES_ADMIN_SYSADMIN_EMAIL);
             }
         }
         catch (Exception e) {
@@ -232,7 +232,7 @@ public class ManagementServiceImpl implements 
ManagementService {
         try {
             OrganizationConfig orgConfig = 
getOrganizationConfigByUuid(organizationId);
             if (orgConfig != null) {
-                adminSystemEmail = 
orgConfig.getProperty(PROPERTIES_ADMIN_SYSADMIN_EMAIL);
+                adminSystemEmail = 
orgConfig.getProperty(ORGPROPERTIES_ADMIN_SYSADMIN_EMAIL);
             }
         }
         catch (Exception e) {
@@ -367,7 +367,9 @@ public class ManagementServiceImpl implements 
ManagementService {
             try {
                 createAdminUser( null, username, "Super User", email, 
password, true, false );
             }catch(Exception e){
-
+                if (logger.isInfoEnabled()) {
+                    logger.info("resetSuperUser: auto creation of superuser 
failed: {}", e.getMessage());
+                }
             }
         }
         else {
@@ -380,8 +382,7 @@ public class ManagementServiceImpl implements 
ManagementService {
         long timestamp = System.currentTimeMillis();
         ByteBuffer bytes = ByteBuffer.allocate( 20 );
         bytes.put( sha( timestamp + OAUTH_SECRET_SALT + UUID.randomUUID() ) );
-        String secret = type.getBase64Prefix() + encodeBase64URLSafeString( 
bytes.array() );
-        return secret;
+        return type.getBase64Prefix() + encodeBase64URLSafeString( 
bytes.array() );
     }
 
 
@@ -392,7 +393,7 @@ public class ManagementServiceImpl implements 
ManagementService {
                                           String content ) throws Exception {
         ServiceManager sm = smf.getServiceManager( smf.getManagementAppId() );
 
-        Map<String, Object> properties = new HashMap<String, Object>();
+        Map<String, Object> properties = new HashMap<>();
         properties.put( PROPERTY_VERB, verb );
         properties.put( PROPERTY_CATEGORY, "admin" );
         if ( content != null ) {
@@ -663,14 +664,6 @@ public class ManagementServiceImpl implements 
ManagementService {
     public OrganizationInfo importOrganization( UUID organizationId, 
OrganizationInfo organizationInfo,
                                                 Map<String, Object> properties 
) throws Exception {
 
-        EntityManager em = emf.getEntityManager( smf.getManagementAppId() );
-        if ( !em.isPropertyValueUniqueForEntity( Group.ENTITY_TYPE, 
PROPERTY_PATH, organizationInfo.getName() ) ) {
-            throw new DuplicateUniquePropertyExistsException( 
Group.ENTITY_TYPE, PROPERTY_PATH, organizationInfo.getName() );
-        }
-        if ( properties == null ) {
-            properties = new HashMap<String, Object>();
-        }
-
         String organizationName = null;
         if ( organizationInfo != null ) {
             organizationName = organizationInfo.getName();
@@ -685,10 +678,8 @@ public class ManagementServiceImpl implements 
ManagementService {
             return null;
         }
 
-        if ( organizationId == null ) {
-            if ( organizationInfo != null ) {
-                organizationId = organizationInfo.getUuid();
-            }
+        if (organizationId == null && organizationInfo != null) {
+            organizationId = organizationInfo.getUuid();
         }
         if ( organizationId == null ) {
             organizationId = uuid( properties.get( PROPERTY_UUID ) );
@@ -697,6 +688,14 @@ public class ManagementServiceImpl implements 
ManagementService {
             return null;
         }
 
+        EntityManager em = emf.getEntityManager( smf.getManagementAppId() );
+        if ( !em.isPropertyValueUniqueForEntity( Group.ENTITY_TYPE, 
PROPERTY_PATH, organizationName ) ) {
+            throw new DuplicateUniquePropertyExistsException( 
Group.ENTITY_TYPE, PROPERTY_PATH, organizationName );
+        }
+        if ( properties == null ) {
+            properties = new HashMap<>();
+        }
+
         properties.put( PROPERTY_PATH, organizationName );
         properties.put( PROPERTY_SECRET, generateOAuthSecretKey( 
AuthPrincipalType.ORGANIZATION ) );
         Entity organization = em.create( organizationId, Group.ENTITY_TYPE, 
properties );
@@ -729,7 +728,7 @@ public class ManagementServiceImpl implements 
ManagementService {
         EntityManager em = emf.getEntityManager(smf.getManagementAppId());
         Results results = em.getCollection(em.getApplicationRef(),
             Schema.COLLECTION_GROUPS, startResult, count, 
Level.ALL_PROPERTIES, false);
-        List<OrganizationInfo> orgs = new ArrayList<OrganizationInfo>( 
results.size() );
+        List<OrganizationInfo> orgs = new ArrayList<>( results.size() );
         OrganizationInfo orgInfo;
         for ( Entity entity : results.getEntities() ) {
             // TODO T.N. temporary hack to deal with duplicate orgs. Revert 
this
@@ -797,7 +796,7 @@ public class ManagementServiceImpl implements 
ManagementService {
         if ( entity == null ) {
             return null;
         }
-        Map properties = em.getDictionaryAsMap( entity, 
ORGANIZATION_PROPERTIES_DICTIONARY );
+        Map<Object, Object> properties = em.getDictionaryAsMap( entity, 
ORGANIZATION_PROPERTIES_DICTIONARY );
         OrganizationInfo orgInfo = new OrganizationInfo( 
entity.getProperties() );
         orgInfo.setProperties( properties );
         return orgInfo;
@@ -820,7 +819,7 @@ public class ManagementServiceImpl implements 
ManagementService {
                                   String title, String content ) throws 
Exception {
         ServiceManager sm = smf.getServiceManager( smf.getManagementAppId() );
 
-        Map<String, Object> properties = new HashMap<String, Object>();
+        Map<String, Object> properties = new HashMap<>();
         properties.put( PROPERTY_VERB, verb );
         properties.put( PROPERTY_CATEGORY, "admin" );
         if ( content != null ) {
@@ -845,8 +844,7 @@ public class ManagementServiceImpl implements 
ManagementService {
     public ServiceResults getAdminUserActivities( UserInfo user ) throws 
Exception {
         ServiceManager sm = smf.getServiceManager( smf.getManagementAppId() );
         ServiceRequest request = sm.newRequest( ServiceAction.GET, parameters( 
"users", user.getUuid(), "feed" ) );
-        ServiceResults results = request.execute();
-        return results;
+        return request.execute();
     }
 
 
@@ -921,9 +919,6 @@ public class ManagementServiceImpl implements 
ManagementService {
         if ( username == null ) {
             username = email;
         }
-        if ( name == null ) {
-            name = email;
-        }
 
         EntityManager em = emf.getEntityManager( smf.getManagementAppId() );
 
@@ -1002,7 +997,7 @@ public class ManagementServiceImpl implements 
ManagementService {
             return null;
         }
 
-        List<UserInfo> users = new ArrayList<UserInfo>();
+        List<UserInfo> users = new ArrayList<>();
 
         EntityManager em = emf.getEntityManager(smf.getManagementAppId());
         Results results =
@@ -1222,7 +1217,7 @@ public class ManagementServiceImpl implements 
ManagementService {
 
         CredentialsInfo currentCredentials = null;
         if ( passwordHistorySize > 0 ) {
-            ArrayList<CredentialsInfo> oldCreds = new 
ArrayList<CredentialsInfo>( credsMap.values() );
+            ArrayList<CredentialsInfo> oldCreds = new ArrayList<>( 
credsMap.values() );
             Collections.sort( oldCreds );
 
             currentCredentials = readUserPasswordCredentials( 
smf.getManagementAppId(), user.getUuid(), user.getType() );
@@ -1241,10 +1236,8 @@ public class ManagementServiceImpl implements 
ManagementService {
 
         // remove excess history
         if ( credsMap.size() > passwordHistorySize ) {
-            ArrayList<UUID> oldUUIDs = new ArrayList<UUID>( credsMap.size() );
-            for ( String uuid : credsMap.keySet() ) {
-                oldUUIDs.add( UUID.fromString( uuid ) );
-            }
+            ArrayList<UUID> oldUUIDs = new ArrayList<>( credsMap.size() );
+            credsMap.keySet().forEach((uuid) -> 
oldUUIDs.add(UUID.fromString(uuid)));
             UUIDUtils.sort( oldUUIDs );
             for ( int i = 0; i < oldUUIDs.size() - passwordHistorySize; i++ ) {
                 em.removeFromDictionary( user, CREDENTIALS_HISTORY, 
oldUUIDs.get( i ).toString() );
@@ -1281,7 +1274,7 @@ public class ManagementServiceImpl implements 
ManagementService {
         }
 
         for ( EntityRef orgRef : orgResults.getRefs() ) {
-            Map properties = em.getDictionaryAsMap( orgRef, 
ORGANIZATION_PROPERTIES_DICTIONARY );
+            Map<Object, Object> properties = em.getDictionaryAsMap( orgRef, 
ORGANIZATION_PROPERTIES_DICTIONARY );
 
             if ( properties != null ) {
                 OrganizationInfo orgInfo = new OrganizationInfo( null, null, 
properties );
@@ -1311,7 +1304,6 @@ public class ManagementServiceImpl implements 
ManagementService {
 
     @Override
     public UserInfo verifyAdminUserPasswordCredentials( String name, String 
password ) throws Exception {
-        UserInfo userInfo = null;
 
         if(logger.isDebugEnabled()){
             logger.debug("verifyAdminUserPasswordCredentials for {}/{}", name, 
password);
@@ -1323,7 +1315,7 @@ public class ManagementServiceImpl implements 
ManagementService {
         }
 
         if ( verify( smf.getManagementAppId(), user.getUuid(), password ) ) {
-            userInfo = getUserInfo( smf.getManagementAppId(), user );
+            UserInfo userInfo = getUserInfo( smf.getManagementAppId(), user );
 
             boolean userIsSuperAdmin = properties.getSuperUser().isEnabled()
                 && 
properties.getSuperUser().getEmail().equals(userInfo.getEmail());
@@ -1547,12 +1539,10 @@ public class ManagementServiceImpl implements 
ManagementService {
         Results results = em.getCollection(  new SimpleEntityRef( 
User.ENTITY_TYPE, userId ),
             Schema.COLLECTION_GROUPS, null, 1000, Level.ALL_PROPERTIES, false 
);
 
-        String path = null;
-
         do {
             for ( Entity entity : results.getEntities() ) {
 
-                path = ( String ) entity.getProperty( PROPERTY_PATH );
+                String path = ( String ) entity.getProperty( PROPERTY_PATH );
 
                 if ( path != null ) {
                     path = path.toLowerCase();
@@ -1590,11 +1580,11 @@ public class ManagementServiceImpl implements 
ManagementService {
     @Override
     public Map<String, Object> getAdminUserOrganizationData( UserInfo user, 
boolean deep ) throws Exception {
 
-        Map<String, Object> json = new HashMap<String, Object>();
+        Map<String, Object> json = new HashMap<>();
 
         json.putAll( JsonUtils.toJsonMap( user ) );
 
-        Map<String, Map<String, Object>> jsonOrganizations = new 
HashMap<String, Map<String, Object>>();
+        Map<String, Map<String, Object>> jsonOrganizations = new HashMap<>();
         json.put( "organizations", jsonOrganizations );
 
         Map<UUID, String> organizations;
@@ -1609,7 +1599,7 @@ public class ManagementServiceImpl implements 
ManagementService {
         }
 
         for ( Entry<UUID, String> organization : organizations.entrySet() ) {
-            Map<String, Object> jsonOrganization = new HashMap<String, 
Object>();
+            Map<String, Object> jsonOrganization = new HashMap<>();
 
             jsonOrganizations.put( organization.getValue(), jsonOrganization );
 
@@ -1622,7 +1612,7 @@ public class ManagementServiceImpl implements 
ManagementService {
                 jsonOrganization.put( "applications", applications.inverse() );
 
                 List<UserInfo> users = getAdminUsersForOrganization( 
organization.getKey() );
-                Map<String, Object> jsonUsers = new HashMap<String, Object>();
+                Map<String, Object> jsonUsers = new HashMap<>();
                 for ( UserInfo u : users ) {
                     jsonUsers.put( u.getUsername(), u );
                 }
@@ -2331,19 +2321,16 @@ public class ManagementServiceImpl implements 
ManagementService {
     public void startAdminUserPasswordResetFlow( UUID organizationId, UserInfo 
user ) throws Exception {
         String token = getPasswordResetTokenForAdminUser( user.getUuid(), 0, 
organizationId );
 
-        String resetPropertyUrl = organizationId != null ?
-                getOrganizationConfigPropertyByUuid(organizationId, 
PROPERTIES_ADMIN_RESETPW_URL) :
-                getOrganizationConfigPropertyForUserInfo(user, 
PROPERTIES_ADMIN_RESETPW_URL);
-
-        String reset_url =
-                String.format( resetPropertyUrl, user.getUuid().toString() )
-                        + "?token=" + token;
+        OrganizationConfig orgConfig = organizationId != null ?
+                getOrganizationConfigByUuid(organizationId) : 
getOrganizationConfigForUserInfo(user);
+        String resetPropertyUrl = 
orgConfig.getFullUrlTemplate(WorkflowUrl.ADMIN_RESETPW_URL);
+        String reset_url = String.format(resetPropertyUrl, 
user.getUuid().toString())
+                + "?token=" + token;
 
         Map<String, String> pageContext = hashMap( "reset_url", reset_url )
                 .map( "reset_url_base", resetPropertyUrl )
                 .map( "user_uuid", user.getUuid().toString() ).map( 
"raw_token", token );
 
-
         sendHtmlMail( properties, user.getDisplayEmailAddress(), 
properties.getProperty( PROPERTIES_MAILER_EMAIL ),
                 "Password Reset", appendEmailFooter( emailMsg( pageContext, 
PROPERTIES_EMAIL_ADMIN_PASSWORD_RESET ) ) );
     }
@@ -2361,10 +2348,14 @@ public class ManagementServiceImpl implements 
ManagementService {
         logger.info( "startOrganizationActivationFlow: {}", 
organization.getName() );
 
         try {
-            String token = getActivationTokenForOrganization( 
organization.getUuid(), 0 );
-            String activation_url = String.format( properties.getProperty( 
PROPERTIES_ORGANIZATION_ACTIVATION_URL ),
-                    organization.getUuid().toString() ) + "?token=" + token;
-            List<UserInfo> users = getAdminUsersForOrganization( 
organization.getUuid() );
+            UUID organizationId = organization.getUuid();
+            String token = getActivationTokenForOrganization( organizationId, 
0 );
+            OrganizationConfig orgConfig = 
getOrganizationConfigByUuid(organizationId);
+            String activationPropertyUrl = 
orgConfig.getFullUrlTemplate(WorkflowUrl.ORGANIZATION_ACTIVATION_URL);
+            String activation_url = String.format(activationPropertyUrl, 
organizationId.toString())
+                    + "?token=" + token;
+
+            List<UserInfo> users = getAdminUsersForOrganization( 
organizationId );
             String organization_owners = null;
             for ( UserInfo user : users ) {
                 organization_owners = ( organization_owners == null ) ? 
user.getHTMLDisplayEmailAddress() :
@@ -2528,12 +2519,10 @@ public class ManagementServiceImpl implements 
ManagementService {
 
     public void sendAdminUserConfirmationEmail( UUID organizationId, UserInfo 
user ) throws Exception {
         String token = getConfirmationTokenForAdminUser(user.getUuid(), 0, 
organizationId);
-        String adminActivationUrlTemplate = organizationId != null ?
-                getOrganizationConfigPropertyByUuid(organizationId, 
PROPERTIES_ADMIN_CONFIRMATION_URL) :
-                getOrganizationConfigPropertyForUserInfo(user, 
PROPERTIES_ADMIN_CONFIRMATION_URL);
-        String confirmation_url =
-                String.format( adminActivationUrlTemplate, 
user.getUuid().toString() )
-                        + "?token=" + token;
+        OrganizationConfig orgConfig = organizationId != null ?
+                getOrganizationConfigByUuid(organizationId) : 
getOrganizationConfigForUserInfo(user);
+        String confirmation_url = 
orgConfig.getFullUrl(WorkflowUrl.ADMIN_CONFIRMATION_URL, 
user.getUuid().toString()) +
+                "?token=" + token;
         sendAdminUserEmail( user, "User Account Confirmation: " + 
user.getEmail(),
                 emailMsg( hashMap( "confirm_email", user.getEmail() ).map( 
"confirmation_url", confirmation_url ),
                         PROPERTIES_EMAIL_ADMIN_CONFIRMATION ) );
@@ -2543,11 +2532,10 @@ public class ManagementServiceImpl implements 
ManagementService {
     public void sendSysAdminRequestAdminActivationEmail( UUID organizationId, 
UserInfo user ) throws Exception {
         String token = getActivationTokenForAdminUser(user.getUuid(), 0, 
organizationId);
         //TODO: admin specific email
-        String activationUrlTemplate = organizationId != null ?
-                getOrganizationConfigPropertyByUuid(organizationId, 
PROPERTIES_ADMIN_ACTIVATION_URL) :
-                getOrganizationConfigPropertyForUserInfo(user, 
PROPERTIES_ADMIN_ACTIVATION_URL);
-        String activation_url =
-                String.format( activationUrlTemplate, 
user.getUuid().toString() ) + "?token=" + token;
+        OrganizationConfig orgConfig = organizationId != null ?
+                getOrganizationConfigByUuid(organizationId) : 
getOrganizationConfigForUserInfo(user);
+        String activation_url = 
orgConfig.getFullUrl(WorkflowUrl.ADMIN_ACTIVATION_URL, 
user.getUuid().toString()) +
+                "?token=" + token;
         String adminSystemEmail = organizationId != null ? 
getAdminSystemEmailForOrganization(organizationId) :
                 getAdminSystemEmailForApplication(user.getApplicationId());
         sendHtmlMail(properties, adminSystemEmail, 
properties.getProperty(PROPERTIES_MAILER_EMAIL),
@@ -2731,7 +2719,8 @@ public class ManagementServiceImpl implements 
ManagementService {
     @Override
     public void startAppUserPasswordResetFlow( UUID applicationId, User user ) 
throws Exception {
         String token = getPasswordResetTokenForAppUser(applicationId, 
user.getUuid());
-        String resetPropertyUrl = properties.getProperty( 
PROPERTIES_USER_RESETPW_URL );
+        OrganizationConfig orgConfig = 
getOrganizationConfigForApplication(applicationId);
+        String resetPropertyUrl = 
orgConfig.getFullUrlTemplate(WorkflowUrl.USER_RESETPW_URL);
         String reset_url =
                 buildUserAppUrl( applicationId, resetPropertyUrl, user, token);
         Map<String, String> pageContext = hashMap( "reset_url", reset_url )
@@ -2754,7 +2743,7 @@ public class ManagementServiceImpl implements 
ManagementService {
         Boolean registration_requires_admin_approval = ( Boolean ) em
                 .getProperty( new SimpleEntityRef( Application.ENTITY_TYPE, 
applicationId ),
                         REGISTRATION_REQUIRES_ADMIN_APPROVAL );
-        return registration_requires_admin_approval != null && 
registration_requires_admin_approval.booleanValue();
+        return registration_requires_admin_approval != null && 
registration_requires_admin_approval;
     }
 
 
@@ -2764,8 +2753,7 @@ public class ManagementServiceImpl implements 
ManagementService {
         Boolean registration_requires_email_confirmation = ( Boolean ) em
                 .getProperty( new SimpleEntityRef( Application.ENTITY_TYPE, 
applicationId ),
                         REGISTRATION_REQUIRES_EMAIL_CONFIRMATION );
-        return registration_requires_email_confirmation != null
-            && registration_requires_email_confirmation.booleanValue();
+        return registration_requires_email_confirmation != null && 
registration_requires_email_confirmation;
     }
 
 
@@ -2774,7 +2762,7 @@ public class ManagementServiceImpl implements 
ManagementService {
         Boolean notify_admin_of_new_users = ( Boolean ) em
                 .getProperty( new SimpleEntityRef( Application.ENTITY_TYPE, 
applicationId ),
                         NOTIFY_ADMIN_OF_NEW_USERS );
-        return notify_admin_of_new_users != null && 
notify_admin_of_new_users.booleanValue();
+        return notify_admin_of_new_users != null && notify_admin_of_new_users;
     }
 
 
@@ -2838,9 +2826,10 @@ public class ManagementServiceImpl implements 
ManagementService {
 
     public void sendAppUserConfirmationEmail( UUID applicationId, User user ) 
throws Exception {
         String token = getConfirmationTokenForAppUser(applicationId, 
user.getUuid());
+        OrganizationConfig orgConfig = 
getOrganizationConfigForApplication(applicationId);
+        String confirmationPropertyUrl = 
orgConfig.getFullUrlTemplate(WorkflowUrl.USER_CONFIRMATION_URL);
         String confirmation_url =
-                buildUserAppUrl( applicationId, properties.getProperty( 
PROPERTIES_USER_CONFIRMATION_URL ), user,
-                        token );
+                buildUserAppUrl( applicationId, confirmationPropertyUrl, user, 
token);
 
     /*
      * String confirmation_url = String.format(
@@ -2862,14 +2851,16 @@ public class ManagementServiceImpl implements 
ManagementService {
 
     public void sendAdminRequestAppUserActivationEmail( UUID applicationId, 
User user ) throws Exception {
         String token = getActivationTokenForAppUser(applicationId, 
user.getUuid());
+        OrganizationInfo organization = this.getOrganizationForApplication( 
applicationId );
+        OrganizationConfig orgConfig = 
getOrganizationConfigByUuid(organization.getUuid());
+        String activationPropertyUrl = 
orgConfig.getFullUrlTemplate(WorkflowUrl.USER_ACTIVATION_URL);
         String activation_url =
-                buildUserAppUrl(applicationId, 
properties.getProperty(PROPERTIES_USER_ACTIVATION_URL), user, token);
+                buildUserAppUrl(applicationId, activationPropertyUrl, user, 
token);
     /*
      * String activation_url = String.format(
      * properties.getProperty(PROPERTIES_USER_ACTIVATION_URL),
      * applicationId.toString(), user.getUuid().toString()) + "?token=" + 
token;
      */
-        OrganizationInfo organization = this.getOrganizationForApplication( 
applicationId );
         this.sendOrganizationEmail( organization, "Request For User Account 
Activation " + user.getEmail(), emailMsg(
                 hashMap( "organization_name", organization.getName() ).map( 
"activation_url", activation_url ),
                 PROPERTIES_EMAIL_ADMIN_USER_ACTIVATION ) );
@@ -3087,7 +3078,7 @@ public class ManagementServiceImpl implements 
ManagementService {
         Group org = em.get( orgId, Group.class );
 
         if ( org == null ) {
-            throw new EntityNotFoundException( String.format( "Could not find 
organization with id {}", orgId ) );
+            throw new EntityNotFoundException( String.format( "Could not find 
organization with id %s", orgId.toString() ) );
         }
 
         org.setProperties( props );
@@ -3175,8 +3166,12 @@ public class ManagementServiceImpl implements 
ManagementService {
     private Set<CredentialsInfo> readUserPasswordHistory( UUID appId, UUID 
ownerId ) throws Exception {
         EntityManager em = emf.getEntityManager( appId );
         Entity owner = em.get( new SimpleEntityRef("user", ownerId ));
-        return ( Set<CredentialsInfo> ) em
-                .getDictionaryElementValue(owner, DICTIONARY_CREDENTIALS, 
USER_PASSWORD_HISTORY);
+
+        @SuppressWarnings("unchecked")
+        Set<CredentialsInfo> credInfo =
+                (Set<CredentialsInfo>)em.getDictionaryElementValue(owner, 
DICTIONARY_CREDENTIALS, USER_PASSWORD_HISTORY);
+
+        return credInfo;
     }
 
 
@@ -3217,11 +3212,7 @@ public class ManagementServiceImpl implements 
ManagementService {
     private boolean verify( UUID applicationId, UUID userId, String password ) 
throws Exception {
         CredentialsInfo ci = readUserPasswordCredentials( applicationId, 
userId, User.ENTITY_TYPE );
 
-        if ( ci == null ) {
-            return false;
-        }
-
-        return encryptionService.verify( password, ci, userId, applicationId );
+        return (ci != null) && encryptionService.verify( password, ci, userId, 
applicationId );
     }
 
 
@@ -3263,13 +3254,11 @@ public class ManagementServiceImpl implements 
ManagementService {
 
     private boolean getBooleanProperty(String key) {
         String obj = getProperty(key);
-        if(StringUtils.isEmpty(obj))
-            return false;
-        else
-            return Boolean.parseBoolean(obj);
+        return !StringUtils.isEmpty(obj) && Boolean.parseBoolean(obj);
     }
 
-    private OrganizationConfig getOrganizationConfigDefaultsOnly() throws 
Exception {
+    @Override
+    public OrganizationConfig getOrganizationConfigDefaultsOnly() {
         return new OrganizationConfig(orgConfigProperties);
     }
 

http://git-wip-us.apache.org/repos/asf/usergrid/blob/90d5d665/stack/services/src/main/java/org/apache/usergrid/management/cassandra/OrganizationConfigPropsImpl.java
----------------------------------------------------------------------
diff --git 
a/stack/services/src/main/java/org/apache/usergrid/management/cassandra/OrganizationConfigPropsImpl.java
 
b/stack/services/src/main/java/org/apache/usergrid/management/cassandra/OrganizationConfigPropsImpl.java
index b276db4..1063000 100644
--- 
a/stack/services/src/main/java/org/apache/usergrid/management/cassandra/OrganizationConfigPropsImpl.java
+++ 
b/stack/services/src/main/java/org/apache/usergrid/management/cassandra/OrganizationConfigPropsImpl.java
@@ -18,8 +18,6 @@ package org.apache.usergrid.management.cassandra;
 
 
 import org.apache.usergrid.management.OrganizationConfigProps;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import java.util.*;
 
@@ -27,83 +25,161 @@ import static org.apache.commons.lang.StringUtils.isBlank;
 
 
 public class OrganizationConfigPropsImpl implements OrganizationConfigProps {
-    private static final Logger logger = LoggerFactory.getLogger( 
OrganizationConfigPropsImpl.class );
 
+    private static final String DEFAULTVALUE_API_URL_BASE = 
"http://localhost:8080";;
     private static final String DEFAULTVALUE_DEFAULT_CONNECTION_PARAM = "all";
     private static final String DEFAULTVALUE_ADMIN_SYSADMIN_EMAIL = null; // 
null will fall back to system level admin
-    private static final String DEFAULTVALUE_ADMIN_ACTIVATION_URL = ""; // 
should be configured in properties file
-    private static final String DEFAULTVALUE_ADMIN_CONFIRMATION_URL = ""; // 
should be configured in properties file
-    private static final String DEFAULTVALUE_ADMIN_RESETPW_URL = ""; // should 
be configured in properties file
 
     private static final Map<String, String> noConfigDefaults = new 
HashMap<>();
     static {
-        noConfigDefaults.put(PROPERTIES_DEFAULT_CONNECTION_PARAM, 
DEFAULTVALUE_DEFAULT_CONNECTION_PARAM);
-        noConfigDefaults.put(PROPERTIES_ADMIN_SYSADMIN_EMAIL, 
DEFAULTVALUE_ADMIN_SYSADMIN_EMAIL);
-        noConfigDefaults.put(PROPERTIES_ADMIN_ACTIVATION_URL, 
DEFAULTVALUE_ADMIN_ACTIVATION_URL);
-        noConfigDefaults.put(PROPERTIES_ADMIN_CONFIRMATION_URL, 
DEFAULTVALUE_ADMIN_CONFIRMATION_URL);
-        noConfigDefaults.put(PROPERTIES_ADMIN_RESETPW_URL, 
DEFAULTVALUE_ADMIN_RESETPW_URL);
+        noConfigDefaults.put(ORGPROPERTIES_API_URL_BASE, 
DEFAULTVALUE_API_URL_BASE);
+        noConfigDefaults.put(ORGPROPERTIES_DEFAULT_CONNECTION_PARAM, 
DEFAULTVALUE_DEFAULT_CONNECTION_PARAM);
+        noConfigDefaults.put(ORGPROPERTIES_ADMIN_SYSADMIN_EMAIL, 
DEFAULTVALUE_ADMIN_SYSADMIN_EMAIL);
     }
 
-    //protected final Properties properties;
-    protected final Map<String, String> map;
+    private static final String URLPATH_ORGANIZATION_ACTIVATION = 
"/management/organizations/%s/activate";
+    private static final String URLPATH_ADMIN_ACTIVATION = 
"/management/users/%s/activate";
+    private static final String URLPATH_ADMIN_CONFIRMATION = 
"/management/users/%s/confirm";
+    private static final String URLPATH_ADMIN_RESETPW = 
"/management/users/%s/resetpw";
+    private static final String URLPATH_USER_ACTIVATION = 
"/%s/%s/users/%s/activate";
+    private static final String URLPATH_USER_CONFIRMATION = 
"/%s/%s/users/%s/confirm";
+    private static final String URLPATH_USER_RESETPW = 
"/%s/%s/users/%s/resetpw";
+
+    private static final Map<WorkflowUrl,String> urlPaths = new HashMap<>();
+    static {
+        urlPaths.put(WorkflowUrl.ORGANIZATION_ACTIVATION_URL, 
URLPATH_ORGANIZATION_ACTIVATION);
+        urlPaths.put(WorkflowUrl.ADMIN_ACTIVATION_URL, 
URLPATH_ADMIN_ACTIVATION);
+        urlPaths.put(WorkflowUrl.ADMIN_CONFIRMATION_URL, 
URLPATH_ADMIN_CONFIRMATION);
+        urlPaths.put(WorkflowUrl.ADMIN_RESETPW_URL, URLPATH_ADMIN_RESETPW);
+        urlPaths.put(WorkflowUrl.USER_ACTIVATION_URL, URLPATH_USER_ACTIVATION);
+        urlPaths.put(WorkflowUrl.USER_CONFIRMATION_URL, 
URLPATH_USER_CONFIRMATION);
+        urlPaths.put(WorkflowUrl.USER_RESETPW_URL, URLPATH_USER_RESETPW);
+    }
+
+    protected final Properties properties;
+
+    protected final Map<String, String> defaultProperties;
+    protected final Map<String, String> orgProperties;
+
 
     public OrganizationConfigPropsImpl(Properties properties) {
-        map = new HashMap<>();
-        noConfigDefaults.forEach((k,v) -> map.put(k, properties.getProperty(k, 
v)));
+        this(properties, null);
     }
 
-    public Set<String> getPropertyNames() {
+    public OrganizationConfigPropsImpl(Properties properties, Map<String, 
String> map) {
+        this.properties = new Properties(properties);
+
+        this.defaultProperties = new HashMap<>(noConfigDefaults);
+        // add any corresponding properties to default props map
+        noConfigDefaults.keySet().forEach((k) -> {
+            String value = properties.getProperty(k);
+
+            // ok if value is empty string
+            if (value != null) {
+                this.defaultProperties.put(k, value);
+            }
+        });
+
+        this.orgProperties = map != null ? new HashMap<>(map) : new 
HashMap<>();
+        //noConfigDefaults.forEach((k,v) -> map.put(k, 
properties.getProperty(k, v)));
+    }
+
+    public OrganizationConfigPropsImpl(OrganizationConfigProps orgConfigProps) 
{
+        this.properties = orgConfigProps.getPropertiesMap();
+        this.defaultProperties = orgConfigProps.getDefaultPropertiesMap();
+        this.orgProperties = orgConfigProps.getOrgPropertiesMap();
+    }
+
+    public boolean orgPropertyNameValid(String name) {
+        return noConfigDefaults.containsKey(name);
+    }
+
+    @Override
+    public Set<String> getOrgPropertyNames() {
         return new HashSet<>(noConfigDefaults.keySet());
     }
 
-    public Map<String, String> getPropertyMap() {
-        return new HashMap<>(map);
+    @Override
+    public Properties getPropertiesMap() {
+        return new Properties(properties);
+    }
+
+    @Override
+    public Map<String, String> getDefaultPropertiesMap() {
+        return new HashMap<>(defaultProperties);
     }
 
+    @Override
+    public Map<String, String> getOrgPropertiesMap() {
+        return new HashMap<>(orgProperties);
+    }
+
+    //
+    // 1. return from orgProperties (if it exists)
+    // 2. return from properties (if it exists)
+    // 3. return no config defaults (if it exists)
+    // 4. if none exists, return null
+    //
+    @Override
     public String getProperty(String name) {
-        String propertyValue = map.get(name);
-        if (isBlank(propertyValue)) {
-            logger.warn("Missing value for " + name);
-            propertyValue = null;
+        String propertyValue;
+
+        if (orgPropertyNameValid(name)) {
+            // return from org-specific properties, if set
+            propertyValue = orgProperties.containsKey(name) ?
+                    orgProperties.get(name) : defaultProperties.get(name);
+        } else {
+            // not an org config item, return from properties
+            propertyValue = properties.getProperty(name);
         }
-        return propertyValue;
+
+        return !isBlank(propertyValue) ? propertyValue : null;
     }
 
 
+    @Override
     public String getProperty(String name, String defaultValue) {
-        return map.getOrDefault(name, defaultValue);
+        String propertyValue = getProperty(name);
+        return !isBlank(propertyValue) ? propertyValue : defaultValue;
     }
 
 
-    public boolean isProperty(String name, boolean defaultValue) {
+    @Override
+    public boolean boolProperty(String name, boolean defaultValue) {
         String val = getProperty(name);
-        if (isBlank(val)) {
-            return defaultValue;
-        } else {
-            return Boolean.parseBoolean(val);
-        }
+        return !isBlank(val) ? Boolean.parseBoolean(val) : defaultValue;
     }
 
+    @Override
     public int intProperty(String name, int defaultValue) {
         String val = getProperty(name);
-        if (isBlank(val)) {
-            return defaultValue;
-        } else {
-            return Integer.parseInt(val);
-        }
+        return !isBlank(val) ? Integer.parseInt(val) : defaultValue;
     }
 
+    @Override
     public long longProperty(String name, long defaultValue) {
         String val = getProperty(name);
-        if (isBlank(val)) {
-            return defaultValue;
-        } else {
-            return Long.parseLong(val);
-        }
+        return !isBlank(val) ? Long.parseLong(val) : defaultValue;
     }
 
+    @Override
     public void setProperty(String name, String value) {
-        map.put(name,value);
+        orgProperties.put(name,value);
+    }
+
+    @Override
+    public String getFullUrlTemplate(WorkflowUrl urlType) {
+        String urlTemplate = null;
+        if (urlPaths.containsKey(urlType)) {
+            urlTemplate = getProperty(ORGPROPERTIES_API_URL_BASE) + 
urlPaths.get(urlType);
+        }
+        return urlTemplate;
+    }
+
+    @Override
+    public String getFullUrl(WorkflowUrl urlType, Object ... arguments) {
+        String urlTemplate = getFullUrlTemplate(urlType);
+        return String.format(urlTemplate, arguments);
     }
 
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/usergrid/blob/90d5d665/stack/services/src/test/java/org/apache/usergrid/management/EmailFlowIT.java
----------------------------------------------------------------------
diff --git 
a/stack/services/src/test/java/org/apache/usergrid/management/EmailFlowIT.java 
b/stack/services/src/test/java/org/apache/usergrid/management/EmailFlowIT.java
index 599a796..e9c0bd8 100644
--- 
a/stack/services/src/test/java/org/apache/usergrid/management/EmailFlowIT.java
+++ 
b/stack/services/src/test/java/org/apache/usergrid/management/EmailFlowIT.java
@@ -47,6 +47,7 @@ import static org.apache.commons.lang.StringUtils.isNotBlank;
 import static org.apache.usergrid.TestHelper.*;
 import static org.apache.usergrid.management.AccountCreationProps.*;
 import static org.junit.Assert.*;
+import static org.apache.usergrid.management.OrganizationConfigProps.*;
 
 
 /**
@@ -244,11 +245,13 @@ public class EmailFlowIT {
         final String appUserUsername = uniqueUsername();
         final String appUserEmail = uniqueEmail();
 
+        OrganizationConfig orgConfig = 
setup.getMgmtSvc().getOrganizationConfigByUuid(orgOwner.getOrganization().getUuid());
+
         User appUser = setupAppUser( app.getId(), appUserUsername, 
appUserEmail, false );
 
         String subject = "Request For User Account Activation " + appUserEmail;
-        String activation_url = String.format( setup.get( 
PROPERTIES_USER_ACTIVATION_URL ), orgName, appName,
-            appUser.getUuid().toString() );
+        String activation_url = 
orgConfig.getFullUrl(WorkflowUrl.USER_ACTIVATION_URL, orgName, appName,
+                appUser.getUuid().toString());
 
         setup.refreshIndex(app.getId());
 
@@ -277,8 +280,8 @@ public class EmailFlowIT {
         assertEquals( ActivationState.ACTIVATED, activeState );
 
         subject = "Password Reset";
-        String reset_url =
-                String.format( setup.get( PROPERTIES_USER_RESETPW_URL ), 
orgName, appName, appUser.getUuid().toString() );
+        String reset_url = orgConfig.getFullUrl(WorkflowUrl.USER_RESETPW_URL, 
orgName, appName,
+                appUser.getUuid().toString());
 
         // reset_pwd
         setup.getMgmtSvc().startAppUserPasswordResetFlow( app.getId(), appUser 
);
@@ -338,9 +341,11 @@ public class EmailFlowIT {
 
         User user = setupAppUser( app.getId(), appUserUsername, appUserEmail, 
true );
 
+        OrganizationConfig orgConfig = 
setup.getMgmtSvc().getOrganizationConfigByUuid(orgOwner.getOrganization().getUuid());
+
         String subject = "User Account Confirmation: "+appUserEmail;
-        String urlProp = setup.get( PROPERTIES_USER_CONFIRMATION_URL );
-        String confirmation_url = String.format( urlProp, orgName, appName, 
user.getUuid().toString() );
+        String confirmation_url = 
orgConfig.getFullUrl(WorkflowUrl.USER_CONFIRMATION_URL, orgName, appName,
+                user.getUuid().toString());
 
         // request confirmation
         setup.getMgmtSvc().startAppUserActivationFlow( app.getId(), user );

http://git-wip-us.apache.org/repos/asf/usergrid/blob/90d5d665/stack/services/src/test/java/org/apache/usergrid/management/OrganizationConfigIT.java
----------------------------------------------------------------------
diff --git 
a/stack/services/src/test/java/org/apache/usergrid/management/OrganizationConfigIT.java
 
b/stack/services/src/test/java/org/apache/usergrid/management/OrganizationConfigIT.java
index 36243b6..fc1a0f4 100644
--- 
a/stack/services/src/test/java/org/apache/usergrid/management/OrganizationConfigIT.java
+++ 
b/stack/services/src/test/java/org/apache/usergrid/management/OrganizationConfigIT.java
@@ -75,8 +75,8 @@ public class OrganizationConfigIT {
 
         // insert a config value for the org
         Map<String, Object> propMap = new HashMap<>();
-        String testKey = OrganizationConfigProps.PROPERTIES_ADMIN_RESETPW_URL;
-        String testValue = "***TEST VALUE***";
+        String testKey = 
OrganizationConfigProps.ORGPROPERTIES_ADMIN_SYSADMIN_EMAIL;
+        String testValue = "[email protected]";
         propMap.put(testKey, testValue);
         orgConfig.addProperties(propMap, false);
         setup.getMgmtSvc().updateOrganizationConfig(orgConfig);

Reply via email to