You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by sn...@apache.org on 2015/09/04 15:42:01 UTC
[1/8] usergrid git commit: queue up deletes
Repository: usergrid
Updated Branches:
refs/heads/two-dot-o-dev 4c406edd8 -> e25f2c39c
queue up deletes
Project: http://git-wip-us.apache.org/repos/asf/usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/usergrid/commit/09e81836
Tree: http://git-wip-us.apache.org/repos/asf/usergrid/tree/09e81836
Diff: http://git-wip-us.apache.org/repos/asf/usergrid/diff/09e81836
Branch: refs/heads/two-dot-o-dev
Commit: 09e81836121d57e293d853bcb1c2e284bf8322aa
Parents: 4450504
Author: Shawn Feldman <sf...@apache.org>
Authored: Thu Sep 3 13:53:28 2015 -0600
Committer: Shawn Feldman <sf...@apache.org>
Committed: Thu Sep 3 13:53:28 2015 -0600
----------------------------------------------------------------------
.../usergrid/corepersistence/CoreModule.java | 2 +
.../service/ApplicationService.java | 31 ++++++
.../service/ApplicationServiceImpl.java | 60 +++++++++++
.../apache/usergrid/rest/SystemResource.java | 45 +++++++-
.../usergrid/management/ManagementService.java | 8 ++
.../cassandra/ManagementServiceImpl.java | 108 +++++++++++--------
6 files changed, 204 insertions(+), 50 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/usergrid/blob/09e81836/stack/core/src/main/java/org/apache/usergrid/corepersistence/CoreModule.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CoreModule.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CoreModule.java
index 1a7f794..c032dcb 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CoreModule.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CoreModule.java
@@ -167,6 +167,8 @@ public class CoreModule extends AbstractModule {
bind( ConnectionService.class).to( ConnectionServiceImpl.class);
+ bind( ApplicationService.class ).to( ApplicationServiceImpl.class );
+
}
}
http://git-wip-us.apache.org/repos/asf/usergrid/blob/09e81836/stack/core/src/main/java/org/apache/usergrid/corepersistence/service/ApplicationService.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/service/ApplicationService.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/service/ApplicationService.java
new file mode 100644
index 0000000..18b1e60
--- /dev/null
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/service/ApplicationService.java
@@ -0,0 +1,31 @@
+/*
+ *
+ * * Licensed to the Apache Software Foundation (ASF) under one or more
+ * * contributor license agreements. 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. For additional information regarding
+ * * copyright in this work, please see the NOTICE file in the top level
+ * * directory of this distribution.
+ *
+ */
+package org.apache.usergrid.corepersistence.service;
+
+import org.apache.usergrid.persistence.core.scope.ApplicationScope;
+import rx.Observable;
+
+/**
+ * Encapsulation of application operations.
+ */
+public interface ApplicationService {
+
+ Observable<Integer> deleteAllEntities(ApplicationScope applicationScope);
+}
http://git-wip-us.apache.org/repos/asf/usergrid/blob/09e81836/stack/core/src/main/java/org/apache/usergrid/corepersistence/service/ApplicationServiceImpl.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/service/ApplicationServiceImpl.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/service/ApplicationServiceImpl.java
new file mode 100644
index 0000000..0becab4
--- /dev/null
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/service/ApplicationServiceImpl.java
@@ -0,0 +1,60 @@
+/*
+ *
+ * * Licensed to the Apache Software Foundation (ASF) under one or more
+ * * contributor license agreements. 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. For additional information regarding
+ * * copyright in this work, please see the NOTICE file in the top level
+ * * directory of this distribution.
+ *
+ */
+package org.apache.usergrid.corepersistence.service;
+
+import org.apache.usergrid.corepersistence.asyncevents.AsyncEventService;
+import org.apache.usergrid.corepersistence.asyncevents.EventBuilder;
+import org.apache.usergrid.corepersistence.rx.impl.AllEntityIdsObservable;
+import org.apache.usergrid.corepersistence.util.CpNamingUtils;
+import org.apache.usergrid.persistence.core.scope.ApplicationScope;
+import rx.Observable;
+
+/**
+ * implementation of application operations
+ */
+public class ApplicationServiceImpl implements ApplicationService{
+
+ private final AllEntityIdsObservable allEntityIdsObservable;
+ private final AsyncEventService asyncEventService;
+ private final EventBuilder eventBuilder;
+
+ public ApplicationServiceImpl(AllEntityIdsObservable allEntityIdsObservable, AsyncEventService asyncEventService, EventBuilder eventBuilder){
+
+ this.allEntityIdsObservable = allEntityIdsObservable;
+ this.asyncEventService = asyncEventService;
+ this.eventBuilder = eventBuilder;
+ }
+ @Override
+ public Observable<Integer> deleteAllEntities(ApplicationScope applicationScope) {
+ if(applicationScope.getApplication().getUuid().equals(CpNamingUtils.MANAGEMENT_APPLICATION_ID)){
+ throw new IllegalArgumentException("Can't delete from management app");
+ }
+
+ //EventBuilder eventBuilder = injector.getInstance(EventBuilder.class);
+ Observable appObservable = Observable.just(applicationScope);
+
+
+ Observable<Integer> countObservable = allEntityIdsObservable.getEntities(appObservable)
+ //.map(entity -> eventBuilder.buildEntityDelete(applicationScope, entity.getId()).getEntitiesCompacted())
+ .doOnNext(entity -> asyncEventService.queueEntityDelete(applicationScope, entity.getId()))
+ .count();
+ return countObservable;
+ }
+}
http://git-wip-us.apache.org/repos/asf/usergrid/blob/09e81836/stack/rest/src/main/java/org/apache/usergrid/rest/SystemResource.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/main/java/org/apache/usergrid/rest/SystemResource.java b/stack/rest/src/main/java/org/apache/usergrid/rest/SystemResource.java
index 26f1149..ace8fd0 100644
--- a/stack/rest/src/main/java/org/apache/usergrid/rest/SystemResource.java
+++ b/stack/rest/src/main/java/org/apache/usergrid/rest/SystemResource.java
@@ -17,11 +17,7 @@
package org.apache.usergrid.rest;
-import javax.ws.rs.DefaultValue;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
+import javax.ws.rs.*;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.UriInfo;
@@ -35,6 +31,12 @@ import org.apache.usergrid.rest.security.annotations.RequireSystemAccess;
import com.sun.jersey.api.json.JSONWithPadding;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+import java.util.concurrent.atomic.AtomicInteger;
+
@Path( "/system" )
@Component
@@ -77,6 +79,39 @@ public class SystemResource extends AbstractContextResource {
return new JSONWithPadding( response, callback );
}
+ @RequireSystemAccess
+ @DELETE
+ @Path( "applications/{applicationId}" )
+ public JSONWithPadding clearApplication( @Context UriInfo ui,
+ @PathParam("applicationId") UUID applicationId,
+ @QueryParam( "confirmApplicationId" ) UUID confirmApplicationId,
+ @QueryParam( "callback" ) @DefaultValue( "callback" ) String callback )
+ throws Exception {
+
+ if(confirmApplicationId == null || !confirmApplicationId.equals(applicationId)){
+ throw new IllegalArgumentException("please make confirmApplicationId equal to applicationId");
+ }
+
+ ApiResponse response = createApiResponse();
+ response.setAction( "clear application" );
+
+ logger.info( "clearing up application" );
+ AtomicInteger itemsDeleted = new AtomicInteger(0);
+ try {
+ management.deleteAllEntities(applicationId)
+ .doOnNext(count -> itemsDeleted.set(count))
+ .toBlocking().lastOrDefault(0);
+ }
+ catch ( Exception e ) {
+ logger.error( "Unable to delete all items, deleted: " + itemsDeleted.get(), e );
+ }
+ Map<String,Object> data = new HashMap<>();
+ data.put("count",itemsDeleted.get());
+ response.setData(data);
+ response.setSuccess();
+ return new JSONWithPadding( response, callback );
+ }
+
@Path( "migrate" )
public MigrateResource migrate() {
http://git-wip-us.apache.org/repos/asf/usergrid/blob/09e81836/stack/services/src/main/java/org/apache/usergrid/management/ManagementService.java
----------------------------------------------------------------------
diff --git a/stack/services/src/main/java/org/apache/usergrid/management/ManagementService.java b/stack/services/src/main/java/org/apache/usergrid/management/ManagementService.java
index 43c1b30..4b05b94 100644
--- a/stack/services/src/main/java/org/apache/usergrid/management/ManagementService.java
+++ b/stack/services/src/main/java/org/apache/usergrid/management/ManagementService.java
@@ -35,6 +35,7 @@ import org.apache.usergrid.security.shiro.PrincipalCredentialsToken;
import org.apache.usergrid.services.ServiceResults;
import com.google.common.collect.BiMap;
+import rx.Observable;
public interface ManagementService {
@@ -338,4 +339,11 @@ public interface ManagementService {
long getCollectionSize(final UUID applicationId, final String collectionName);
Map<String,Long> getEachCollectionSize(final UUID applicationId);
+
+ /**
+ * will delete all entities
+ * @param applicationId
+ * @return
+ */
+ Observable<Integer> deleteAllEntities(UUID applicationId);
}
http://git-wip-us.apache.org/repos/asf/usergrid/blob/09e81836/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 73f18b1..437b1a4 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
@@ -18,14 +18,19 @@ package org.apache.usergrid.management.cassandra;
import com.google.common.base.Optional;
+import com.google.common.base.Preconditions;
import com.google.common.collect.BiMap;
import com.google.common.collect.HashBiMap;
import com.google.inject.Injector;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.lang.text.StrSubstitutor;
import org.apache.shiro.UnavailableSecurityManagerException;
+import org.apache.usergrid.corepersistence.asyncevents.AsyncEventService;
+import org.apache.usergrid.corepersistence.asyncevents.EventBuilder;
+import org.apache.usergrid.corepersistence.rx.impl.AllEntityIdsObservable;
import org.apache.usergrid.corepersistence.service.AggregationService;
import org.apache.usergrid.corepersistence.service.AggregationServiceFactory;
+import org.apache.usergrid.corepersistence.service.ApplicationService;
import org.apache.usergrid.corepersistence.util.CpNamingUtils;
import org.apache.usergrid.exception.ConflictException;
import org.apache.usergrid.locking.Lock;
@@ -34,6 +39,7 @@ import org.apache.usergrid.management.*;
import org.apache.usergrid.management.exceptions.*;
import org.apache.usergrid.persistence.*;
import org.apache.usergrid.persistence.Query.Level;
+import org.apache.usergrid.persistence.collection.EntityCollectionManager;
import org.apache.usergrid.persistence.core.scope.ApplicationScope;
import org.apache.usergrid.persistence.entities.Application;
import org.apache.usergrid.persistence.entities.Group;
@@ -63,6 +69,8 @@ import org.apache.usergrid.utils.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import rx.*;
+import rx.Observable;
import java.nio.ByteBuffer;
import java.util.*;
@@ -1749,7 +1757,7 @@ public class ManagementServiceImpl implements ManagementService {
return null;
}
- final EntityManager em = emf.getEntityManager( smf.getManagementAppId() );
+ final EntityManager em = emf.getEntityManager(smf.getManagementAppId());
Results r = em.getSourceEntities(
new SimpleEntityRef(CpNamingUtils.APPLICATION_INFO, applicationInfoId),
@@ -1771,7 +1779,7 @@ public class ManagementServiceImpl implements ManagementService {
return null;
}
final BiMap<UUID, String> applications = HashBiMap.create();
- final EntityManager em = emf.getEntityManager( smf.getManagementAppId() );
+ final EntityManager em = emf.getEntityManager(smf.getManagementAppId());
// query for application_info entities
final Results results = em.getTargetEntities(
@@ -1829,7 +1837,7 @@ public class ManagementServiceImpl implements ManagementService {
return null;
}
- EntityManager em = emf.getEntityManager( smf.getManagementAppId() );
+ EntityManager em = emf.getEntityManager(smf.getManagementAppId());
em.createConnection( new SimpleEntityRef( Group.ENTITY_TYPE, organizationId ), ORG_APP_RELATIONSHIP, appInfo );
return applicationId;
@@ -1869,7 +1877,7 @@ public class ManagementServiceImpl implements ManagementService {
return null;
}
EntityManager em = emf.getEntityManager( smf.getManagementAppId() );
- Entity entity = em.get( new SimpleEntityRef(CpNamingUtils.APPLICATION_INFO, applicationId) );
+ Entity entity = em.get(new SimpleEntityRef(CpNamingUtils.APPLICATION_INFO, applicationId));
if ( entity != null ) {
return new ApplicationInfo( applicationId, entity.getName() );
@@ -1966,19 +1974,19 @@ public class ManagementServiceImpl implements ManagementService {
@Override
public String getClientSecretForOrganization( UUID organizationId ) throws Exception {
- return getSecret( smf.getManagementAppId(), AuthPrincipalType.ORGANIZATION, organizationId );
+ return getSecret(smf.getManagementAppId(), AuthPrincipalType.ORGANIZATION, organizationId);
}
@Override
public String getClientIdForApplication( UUID applicationId ) {
- return ClientCredentialsInfo.getClientIdForTypeAndUuid( AuthPrincipalType.APPLICATION, applicationId );
+ return ClientCredentialsInfo.getClientIdForTypeAndUuid(AuthPrincipalType.APPLICATION, applicationId);
}
@Override
public String getClientSecretForApplication( UUID applicationId ) throws Exception {
- return getSecret( smf.getManagementAppId(), AuthPrincipalType.APPLICATION, applicationId );
+ return getSecret(smf.getManagementAppId(), AuthPrincipalType.APPLICATION, applicationId);
}
@@ -2135,7 +2143,7 @@ public class ManagementServiceImpl implements ManagementService {
em.update( user );
// revoke all access tokens for the app
- revokeAccessTokensForAppUser( applicationId, userId );
+ revokeAccessTokensForAppUser(applicationId, userId);
return user;
}
@@ -2181,7 +2189,7 @@ public class ManagementServiceImpl implements ManagementService {
EntityManager em = emf.getEntityManager( smf.getManagementAppId() );
em.setProperty( new SimpleEntityRef( User.ENTITY_TYPE, userId ), "disabled", true );
- revokeAccessTokensForAdminUser( userId );
+ revokeAccessTokensForAdminUser(userId);
}
@@ -2360,7 +2368,7 @@ public class ManagementServiceImpl implements ManagementService {
confirmAdminUser( user.getUuid() );
if ( newAdminUsersNeedSysAdminApproval() ) {
sendAdminUserConfirmedAwaitingActivationEmail( user );
- sendSysAdminRequestAdminActivationEmail( user );
+ sendSysAdminRequestAdminActivationEmail(user);
return ActivationState.CONFIRMED_AWAITING_ACTIVATION;
}
else {
@@ -2381,7 +2389,7 @@ public class ManagementServiceImpl implements ManagementService {
activateAdminUser( principal.getUuid() );
UserInfo user = getAdminUserByUuid( principal.getUuid() );
sendAdminUserActivatedEmail( user );
- sendSysAdminNewAdminActivatedNotificationEmail( user );
+ sendSysAdminNewAdminActivatedNotificationEmail(user);
return ActivationState.ACTIVATED;
}
return ActivationState.UNKNOWN;
@@ -2389,7 +2397,7 @@ public class ManagementServiceImpl implements ManagementService {
public void sendAdminUserConfirmationEmail( UserInfo user ) throws Exception {
- String token = getConfirmationTokenForAdminUser( user.getUuid(), 0 );
+ String token = getConfirmationTokenForAdminUser(user.getUuid(), 0);
String confirmation_url =
String.format( properties.getProperty( PROPERTIES_ADMIN_CONFIRMATION_URL ), user.getUuid().toString() )
+ "?token=" + token;
@@ -2400,16 +2408,16 @@ public class ManagementServiceImpl implements ManagementService {
public void sendSysAdminRequestAdminActivationEmail( UserInfo user ) throws Exception {
- String token = getActivationTokenForAdminUser( user.getUuid(), 0 );
+ String token = getActivationTokenForAdminUser(user.getUuid(), 0);
//TODO: admin specific email
String activation_url =
String.format( properties.getProperty( PROPERTIES_ADMIN_ACTIVATION_URL ), user.getUuid().toString() )
+ "?token=" + token;
- sendHtmlMail( properties, getAdminSystemEmail(),
- properties.getProperty( PROPERTIES_MAILER_EMAIL ),
- "Request For Admin User Account Activation " + user.getEmail(), appendEmailFooter(
- emailMsg( hashMap( "user_email", user.getEmail() ).map( "activation_url", activation_url ),
- PROPERTIES_EMAIL_SYSADMIN_ADMIN_ACTIVATION ) ) );
+ sendHtmlMail(properties, getAdminSystemEmail(),
+ properties.getProperty(PROPERTIES_MAILER_EMAIL),
+ "Request For Admin User Account Activation " + user.getEmail(), appendEmailFooter(
+ emailMsg(hashMap("user_email", user.getEmail()).map("activation_url", activation_url),
+ PROPERTIES_EMAIL_SYSADMIN_ADMIN_ACTIVATION)));
}
@@ -2445,14 +2453,14 @@ public class ManagementServiceImpl implements ManagementService {
@Override
public void sendAdminUserEmail( UserInfo user, String subject, String html ) throws Exception {
- sendHtmlMail( properties, user.getDisplayEmailAddress(), properties.getProperty( PROPERTIES_MAILER_EMAIL ),
- subject, appendEmailFooter( html ) );
+ sendHtmlMail(properties, user.getDisplayEmailAddress(), properties.getProperty(PROPERTIES_MAILER_EMAIL),
+ subject, appendEmailFooter(html));
}
@Override
public void activateOrganization( OrganizationInfo organization ) throws Exception {
- activateOrganization( organization, true );
+ activateOrganization(organization, true);
}
@@ -2554,7 +2562,7 @@ public class ManagementServiceImpl implements ManagementService {
throw new TokenException( "Could not match token : " + token );
}
- tokens.revokeToken( token );
+ tokens.revokeToken(token);
}
@@ -2577,14 +2585,14 @@ public class ManagementServiceImpl implements ManagementService {
@Override
public User getAppUserByIdentifier( UUID applicationId, Identifier identifier ) throws Exception {
- EntityManager em = emf.getEntityManager( applicationId );
+ EntityManager em = emf.getEntityManager(applicationId);
return em.get( em.getUserByIdentifier( identifier ), User.class );
}
@Override
public void startAppUserPasswordResetFlow( UUID applicationId, User user ) throws Exception {
- String token = getPasswordResetTokenForAppUser( applicationId, user.getUuid() );
+ String token = getPasswordResetTokenForAppUser(applicationId, user.getUuid());
String reset_url =
buildUserAppUrl( applicationId, properties.getProperty( PROPERTIES_USER_RESETPW_URL ), user, token );
Map<String, String> pageContext = hashMap( "reset_url", reset_url )
@@ -2603,7 +2611,7 @@ public class ManagementServiceImpl implements ManagementService {
@Override
public boolean newAppUsersNeedAdminApproval( UUID applicationId ) throws Exception {
- EntityManager em = emf.getEntityManager( applicationId );
+ EntityManager em = emf.getEntityManager(applicationId);
Boolean registration_requires_admin_approval = ( Boolean ) em
.getProperty( new SimpleEntityRef( Application.ENTITY_TYPE, applicationId ),
REGISTRATION_REQUIRES_ADMIN_APPROVAL );
@@ -2681,7 +2689,7 @@ public class ManagementServiceImpl implements ManagementService {
EntityManager em = emf.getEntityManager( applicationId );
User user = em.get( userId, User.class );
sendAppUserActivatedEmail( applicationId, user );
- sendAdminNewAppUserActivatedNotificationEmail( applicationId, user );
+ sendAdminNewAppUserActivatedNotificationEmail(applicationId, user);
return ActivationState.ACTIVATED;
}
return ActivationState.UNKNOWN;
@@ -2689,7 +2697,7 @@ public class ManagementServiceImpl implements ManagementService {
public void sendAppUserConfirmationEmail( UUID applicationId, User user ) throws Exception {
- String token = getConfirmationTokenForAppUser( applicationId, user.getUuid() );
+ String token = getConfirmationTokenForAppUser(applicationId, user.getUuid());
String confirmation_url =
buildUserAppUrl( applicationId, properties.getProperty( PROPERTIES_USER_CONFIRMATION_URL ), user,
token );
@@ -2705,17 +2713,17 @@ public class ManagementServiceImpl implements ManagementService {
protected String buildUserAppUrl(UUID applicationId, String url, User user, String token) throws Exception {
- ApplicationInfo ai = getApplicationInfo( applicationId );
- OrganizationInfo oi = getOrganizationForApplication( applicationId );
+ ApplicationInfo ai = getApplicationInfo(applicationId);
+ OrganizationInfo oi = getOrganizationForApplication(applicationId);
return String.format( url, oi.getName(), StringUtils.stringOrSubstringAfterFirst( ai.getName(), '/' ),
user.getUuid().toString() ) + "?token=" + token;
}
public void sendAdminRequestAppUserActivationEmail( UUID applicationId, User user ) throws Exception {
- String token = getActivationTokenForAppUser( applicationId, user.getUuid() );
+ String token = getActivationTokenForAppUser(applicationId, user.getUuid());
String activation_url =
- buildUserAppUrl( applicationId, properties.getProperty( PROPERTIES_USER_ACTIVATION_URL ), user, token );
+ buildUserAppUrl(applicationId, properties.getProperty(PROPERTIES_USER_ACTIVATION_URL), user, token);
/*
* String activation_url = String.format(
* properties.getProperty(PROPERTIES_USER_ACTIVATION_URL),
@@ -2752,7 +2760,7 @@ public class ManagementServiceImpl implements ManagementService {
@Override
public void activateAppUser( UUID applicationId, UUID userId ) throws Exception {
EntityManager em = emf.getEntityManager( applicationId );
- em.setProperty( new SimpleEntityRef( User.ENTITY_TYPE, userId ), "activated", true );
+ em.setProperty(new SimpleEntityRef(User.ENTITY_TYPE, userId), "activated", true);
}
@@ -2769,10 +2777,10 @@ public class ManagementServiceImpl implements ManagementService {
}
EntityManager em = emf.getEntityManager( applicationId );
- User user = em.get( userId, User.class );
+ User user = em.get(userId, User.class);
- writeUserPassword( applicationId, user,
- encryptionService.defaultEncryptedCredentials( newPassword, user.getUuid(), applicationId ) );
+ writeUserPassword(applicationId, user,
+ encryptionService.defaultEncryptedCredentials(newPassword, user.getUuid(), applicationId));
}
@@ -2786,19 +2794,19 @@ public class ManagementServiceImpl implements ManagementService {
throw new IllegalArgumentException( "oldpassword and newpassword are both required" );
}
// TODO load the user, send the hashType down to maybeSaltPassword
- User user = emf.getEntityManager( applicationId ).get( userId, User.class );
+ User user = emf.getEntityManager( applicationId ).get(userId, User.class);
if ( !verify( applicationId, user.getUuid(), oldPassword ) ) {
throw new IncorrectPasswordException( "Old password does not match" );
}
- setAppUserPassword( applicationId, userId, newPassword );
+ setAppUserPassword(applicationId, userId, newPassword);
}
@Override
public User verifyAppUserPasswordCredentials( UUID applicationId, String name, String password ) throws Exception {
- User user = findUserEntity( applicationId, name );
+ User user = findUserEntity(applicationId, name);
if ( user == null ) {
return null;
}
@@ -2861,16 +2869,16 @@ public class ManagementServiceImpl implements ManagementService {
}
String pin = getCredentialsSecret( readUserPin( applicationId, userId, user.getType() ) );
- sendHtmlMail( properties, user.getDisplayEmailAddress(), properties.getProperty( PROPERTIES_MAILER_EMAIL ),
- "Your app pin",
- appendEmailFooter( emailMsg( hashMap( USER_PIN, pin ), PROPERTIES_EMAIL_USER_PIN_REQUEST ) ) );
+ sendHtmlMail(properties, user.getDisplayEmailAddress(), properties.getProperty(PROPERTIES_MAILER_EMAIL),
+ "Your app pin",
+ appendEmailFooter(emailMsg(hashMap(USER_PIN, pin), PROPERTIES_EMAIL_USER_PIN_REQUEST)));
}
@Override
public User verifyAppUserPinCredentials( UUID applicationId, String name, String pin ) throws Exception {
- User user = findUserEntity( applicationId, name );
+ User user = findUserEntity(applicationId, name);
if ( user == null ) {
return null;
}
@@ -2883,7 +2891,7 @@ public class ManagementServiceImpl implements ManagementService {
@Override
public void countAdminUserAction( UserInfo user, String action ) throws Exception {
- EntityManager em = emf.getEntityManager( smf.getManagementAppId() );
+ EntityManager em = emf.getEntityManager(smf.getManagementAppId());
em.incrementAggregateCounters( user.getUuid(), null, null, "admin_logins", 1 );
}
@@ -2907,7 +2915,7 @@ public class ManagementServiceImpl implements ManagementService {
org.setProperties( props );
- em.update( org );
+ em.update(org);
}
@@ -2991,7 +2999,7 @@ public class ManagementServiceImpl implements ManagementService {
EntityManager em = emf.getEntityManager( appId );
Entity owner = em.get( new SimpleEntityRef("user", ownerId ));
return ( Set<CredentialsInfo> ) em
- .getDictionaryElementValue( owner, DICTIONARY_CREDENTIALS, USER_PASSWORD_HISTORY );
+ .getDictionaryElementValue(owner, DICTIONARY_CREDENTIALS, USER_PASSWORD_HISTORY);
}
@@ -3058,6 +3066,16 @@ public class ManagementServiceImpl implements ManagementService {
return null;
}
+ @Override
+ public Observable<Integer> deleteAllEntities(UUID applicationId){
+ if(applicationId.equals(CpNamingUtils.MANAGEMENT_APPLICATION_ID)){
+ throw new IllegalArgumentException("Can't delete from management app");
+ }
+
+ ApplicationService service = injector.getInstance(ApplicationService.class);
+ return service.deleteAllEntities(CpNamingUtils.getApplicationScope(applicationId));
+ }
+
private String getProperty(String key) {
String obj = properties.getProperty(key);
if(StringUtils.isEmpty(obj))
[4/8] usergrid git commit: rest test
Posted by sn...@apache.org.
rest test
Project: http://git-wip-us.apache.org/repos/asf/usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/usergrid/commit/ba8922b7
Tree: http://git-wip-us.apache.org/repos/asf/usergrid/tree/ba8922b7
Diff: http://git-wip-us.apache.org/repos/asf/usergrid/diff/ba8922b7
Branch: refs/heads/two-dot-o-dev
Commit: ba8922b7c268917993d6ce1ac9d542b9ac92821c
Parents: 657dad3
Author: Shawn Feldman <sf...@apache.org>
Authored: Thu Sep 3 15:43:35 2015 -0600
Committer: Shawn Feldman <sf...@apache.org>
Committed: Thu Sep 3 15:43:35 2015 -0600
----------------------------------------------------------------------
.../apache/usergrid/rest/SystemResourceIT.java | 16 +++++++++
.../test/resource/endpoints/NamedResource.java | 34 ++++++++++++--------
.../test/resource/endpoints/SystemResource.java | 25 ++++++++++++++
3 files changed, 62 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/usergrid/blob/ba8922b7/stack/rest/src/test/java/org/apache/usergrid/rest/SystemResourceIT.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/SystemResourceIT.java b/stack/rest/src/test/java/org/apache/usergrid/rest/SystemResourceIT.java
index bb53e83..5c89422 100644
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/SystemResourceIT.java
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/SystemResourceIT.java
@@ -23,7 +23,10 @@ import org.apache.usergrid.rest.test.resource.AbstractRestIT;
import org.apache.usergrid.rest.test.resource.model.Entity;
import org.apache.usergrid.rest.test.resource.model.QueryParameters;
+import java.util.LinkedHashMap;
+
import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
/**
@@ -47,6 +50,19 @@ public class SystemResourceIT extends AbstractRestIT {
assertNotNull( "ok", ( String ) result.get( "status" ) );
}
+ @Test
+ public void testDeleteAllApplicationEntities() {
+ QueryParameters queryParameters = new QueryParameters();
+ queryParameters.addParam( "access_token", clientSetup.getSuperuserToken().getAccessToken() );
+ queryParameters.addParam("confirmApplicationId", this.clientSetup.getAppUuid());
+
+ org.apache.usergrid.rest.test.resource.model.ApiResponse result = clientSetup.getRestClient().system().applications(this.clientSetup.getAppUuid()).delete( queryParameters);
+
+ assertNotNull( result );
+ assertNotNull( "ok",result.getStatus() );
+ assertTrue((int)((LinkedHashMap)result.getData()).get("count")==4);
+ }
+
@Test
public void testBoostrapAlreadyRun() {
http://git-wip-us.apache.org/repos/asf/usergrid/blob/ba8922b7/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource/endpoints/NamedResource.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource/endpoints/NamedResource.java b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource/endpoints/NamedResource.java
index 03f6b72..1a9c776 100644
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource/endpoints/NamedResource.java
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource/endpoints/NamedResource.java
@@ -169,7 +169,7 @@ public class NamedResource implements UrlResource {
*/
//For edge cases like Organizations and Tokens
public ApiResponse post(Map map) {
- return post( true, ApiResponse.class, map, null, false );
+ return post(true, ApiResponse.class, map, null, false);
}
@@ -275,17 +275,17 @@ public class NamedResource implements UrlResource {
if(useBasicAuthentication){
//added httpBasicauth filter to all setup calls because they all do verification this way.
HTTPBasicAuthFilter httpBasicAuthFilter = new HTTPBasicAuthFilter( "superuser","superpassword" );
- resource.addFilter( httpBasicAuthFilter );
+ resource.addFilter(httpBasicAuthFilter);
}
GenericType<T> gt = new GenericType<>((Class) type);
- return builder.post( gt.getRawClass() );
+ return builder.post(gt.getRawClass());
}
//For edge cases like Organizations and Tokens without any payload
public <T> T get(Class<T> type) {
- return get(type,null,true);
+ return get(type, null, true);
}
@@ -308,7 +308,7 @@ public class NamedResource implements UrlResource {
GenericType<T> gt = new GenericType<>((Class) type);
return resource.type(MediaType.APPLICATION_JSON_TYPE)
.accept( MediaType.APPLICATION_JSON )
- .get( gt.getRawClass() );
+ .get(gt.getRawClass());
}
@@ -322,34 +322,34 @@ public class NamedResource implements UrlResource {
}
public ApiResponse post( FormDataMultiPart multiPartForm ) {
- return post( true, multiPartForm );
+ return post(true, multiPartForm);
}
public ApiResponse put( boolean useToken, byte[] data, MediaType type ) {
WebResource resource = getResource(useToken);
- return resource.type( type ).put( ApiResponse.class, data );
+ return resource.type( type ).put(ApiResponse.class, data);
}
public ApiResponse put( byte[] data, MediaType type ) {
- return put( true, data, type );
+ return put(true, data, type);
}
public ApiResponse put( boolean useToken, FormDataMultiPart multiPartForm ) {
WebResource resource = getResource(useToken);
- return resource.type( MediaType.MULTIPART_FORM_DATA_TYPE ).put( ApiResponse.class, multiPartForm );
+ return resource.type( MediaType.MULTIPART_FORM_DATA_TYPE ).put(ApiResponse.class, multiPartForm);
}
public ApiResponse put( FormDataMultiPart multiPartForm ) {
- return put( true, multiPartForm );
+ return put(true, multiPartForm);
}
public InputStream getAssetAsStream( boolean useToken ) {
WebResource resource = getResource(useToken);
- return resource.accept( MediaType.APPLICATION_OCTET_STREAM_TYPE ).get( InputStream.class );
+ return resource.accept( MediaType.APPLICATION_OCTET_STREAM_TYPE ).get(InputStream.class);
}
public InputStream getAssetAsStream() {
- return getAssetAsStream( true );
+ return getAssetAsStream(true);
}
public ApiResponse delete( ) {
@@ -357,6 +357,14 @@ public class NamedResource implements UrlResource {
}
public ApiResponse delete( boolean useToken ) {
- return getResource(useToken).delete( ApiResponse.class );
+ return getResource(useToken).delete(ApiResponse.class);
+ }
+
+ public ApiResponse delete( boolean useToken, QueryParameters queryParameters ) {
+ WebResource resource = getResource(useToken);
+ if(queryParameters!=null) {
+ resource = addParametersToResource(resource, queryParameters);
+ }
+ return resource.delete( ApiResponse.class );
}
}
http://git-wip-us.apache.org/repos/asf/usergrid/blob/ba8922b7/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource/endpoints/SystemResource.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource/endpoints/SystemResource.java b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource/endpoints/SystemResource.java
index cb8a369..c6a0586 100644
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource/endpoints/SystemResource.java
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource/endpoints/SystemResource.java
@@ -20,10 +20,15 @@ package org.apache.usergrid.rest.test.resource.endpoints;
import javax.ws.rs.core.MediaType;
+import com.sun.jersey.api.client.WebResource;
+import com.sun.jersey.api.client.filter.HTTPBasicAuthFilter;
import org.apache.usergrid.rest.test.resource.model.ApiResponse;
import org.apache.usergrid.rest.test.resource.model.Entity;
+import org.apache.usergrid.rest.test.resource.model.QueryParameters;
import org.apache.usergrid.rest.test.resource.state.ClientContext;
+import java.util.UUID;
+
/**
* Handles making rest calls to system resources.
@@ -40,4 +45,24 @@ public class SystemResource extends NamedResource {
}
+ public ApplicationsResource applications(String appid) {
+ return new ApplicationsResource(appid,context,this);
+ }
+ public class ApplicationsResource extends NamedResource {
+ public ApplicationsResource(final String appid, final ClientContext context, final UrlResource parent ) {
+ super( "applications/"+appid,context, parent );
+ }
+ public ApiResponse delete(QueryParameters queryParameters){
+
+ WebResource resource = getResource();
+ resource = addParametersToResource( resource, queryParameters );
+
+ //added httpBasicauth filter to all setup calls because they all do verification this way.
+ HTTPBasicAuthFilter httpBasicAuthFilter = new HTTPBasicAuthFilter( "superuser","superpassword" );
+ resource.addFilter(httpBasicAuthFilter);
+
+ return resource.type( MediaType.APPLICATION_JSON_TYPE ).accept( MediaType.APPLICATION_JSON )
+ .delete(ApiResponse.class);
+ }
+ }
}
[5/8] usergrid git commit: fixed tests so edges don't get left behind
Posted by sn...@apache.org.
fixed tests so edges don't get left behind
Project: http://git-wip-us.apache.org/repos/asf/usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/usergrid/commit/a691ada9
Tree: http://git-wip-us.apache.org/repos/asf/usergrid/tree/a691ada9
Diff: http://git-wip-us.apache.org/repos/asf/usergrid/diff/a691ada9
Branch: refs/heads/two-dot-o-dev
Commit: a691ada9b0ad825eb0578d579c8bf043376d33de
Parents: ba8922b
Author: Shawn Feldman <sf...@apache.org>
Authored: Thu Sep 3 17:14:07 2015 -0600
Committer: Shawn Feldman <sf...@apache.org>
Committed: Thu Sep 3 17:14:07 2015 -0600
----------------------------------------------------------------------
.../service/ApplicationServiceImpl.java | 74 +++++++++++++++++---
.../org/apache/usergrid/persistence/Query.java | 4 +-
.../persistence/ApplicationServiceIT.java | 48 +++++++++++--
3 files changed, 110 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/usergrid/blob/a691ada9/stack/core/src/main/java/org/apache/usergrid/corepersistence/service/ApplicationServiceImpl.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/service/ApplicationServiceImpl.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/service/ApplicationServiceImpl.java
index 07f7c13..2e4700a 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/service/ApplicationServiceImpl.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/service/ApplicationServiceImpl.java
@@ -22,15 +22,26 @@ package org.apache.usergrid.corepersistence.service;
import com.google.inject.Inject;
import org.apache.usergrid.corepersistence.asyncevents.AsyncEventService;
import org.apache.usergrid.corepersistence.asyncevents.EventBuilder;
+import org.apache.usergrid.corepersistence.index.IndexService;
import org.apache.usergrid.corepersistence.rx.impl.AllEntityIdsObservable;
import org.apache.usergrid.corepersistence.util.CpNamingUtils;
+import org.apache.usergrid.persistence.EntityRef;
import org.apache.usergrid.persistence.collection.EntityCollectionManager;
import org.apache.usergrid.persistence.collection.EntityCollectionManagerFactory;
import org.apache.usergrid.persistence.collection.serialization.impl.migration.EntityIdScope;
import org.apache.usergrid.persistence.core.scope.ApplicationScope;
+import org.apache.usergrid.persistence.graph.GraphManager;
+import org.apache.usergrid.persistence.graph.GraphManagerFactory;
+import org.apache.usergrid.persistence.map.MapManager;
+import org.apache.usergrid.persistence.map.MapManagerFactory;
+import org.apache.usergrid.persistence.map.MapScope;
import org.apache.usergrid.persistence.model.entity.Id;
+import org.apache.usergrid.persistence.model.entity.SimpleId;
import rx.Observable;
+import static org.apache.usergrid.corepersistence.util.CpNamingUtils.createGraphOperationTimestamp;
+import static org.apache.usergrid.persistence.Schema.TYPE_APPLICATION;
+
/**
* implementation of application operations
*/
@@ -40,33 +51,80 @@ public class ApplicationServiceImpl implements ApplicationService{
private final EntityCollectionManagerFactory entityCollectionManagerFactory;
private final AsyncEventService asyncEventService;
private final EventBuilder eventBuilder;
+ private final MapManagerFactory mapManagerFactory;
+ private final GraphManagerFactory graphManagerFactory;
@Inject
- public ApplicationServiceImpl(AllEntityIdsObservable allEntityIdsObservable, EntityCollectionManagerFactory entityCollectionManagerFactory, AsyncEventService asyncEventService, EventBuilder eventBuilder){
+ public ApplicationServiceImpl(AllEntityIdsObservable allEntityIdsObservable,
+ EntityCollectionManagerFactory entityCollectionManagerFactory,
+ AsyncEventService asyncEventService,
+ EventBuilder eventBuilder,
+ MapManagerFactory mapManagerFactory,
+ GraphManagerFactory graphManagerFactory
+ ){
this.allEntityIdsObservable = allEntityIdsObservable;
this.entityCollectionManagerFactory = entityCollectionManagerFactory;
this.asyncEventService = asyncEventService;
this.eventBuilder = eventBuilder;
+ this.mapManagerFactory = mapManagerFactory;
+ this.graphManagerFactory = graphManagerFactory;
}
@Override
public Observable<Id> deleteAllEntities(ApplicationScope applicationScope) {
- if(applicationScope.getApplication().getUuid().equals(CpNamingUtils.MANAGEMENT_APPLICATION_ID)){
+ if (applicationScope.getApplication().getUuid().equals(CpNamingUtils.MANAGEMENT_APPLICATION_ID)) {
throw new IllegalArgumentException("Can't delete from management app");
}
//EventBuilder eventBuilder = injector.getInstance(EventBuilder.class);
- Observable appObservable = Observable.just(applicationScope);
+ Observable appObservable = Observable.just(applicationScope);
EntityCollectionManager entityCollectionManager = entityCollectionManagerFactory.createCollectionManager(applicationScope);
-
+ GraphManager graphManager = graphManagerFactory.createEdgeManager(applicationScope);
+ MapManager mapManager = getMapManagerForTypes(applicationScope);
Observable<Id> countObservable = allEntityIdsObservable.getEntities(appObservable)
//.map(entity -> eventBuilder.buildEntityDelete(applicationScope, entity.getId()).getEntitiesCompacted())
.map(entityIdScope -> ((EntityIdScope) entityIdScope).getId())
- .doOnNext(id ->
- entityCollectionManager.mark((Id) id)
- .doOnNext(id2 -> asyncEventService.queueEntityDelete(applicationScope, (Id) id2))
- );
+ .skip(1)
+ .map(id -> {
+ return entityCollectionManager.mark((Id) id)
+ .mergeWith(graphManager.markNode((Id) id, createGraphOperationTimestamp()))
+ .map(id2 -> id).toBlocking().last();
+ }
+ ).doOnNext(id -> deleteAsync(mapManager ,applicationScope, (Id) id));
+
+
return countObservable;
}
+
+ /**
+ * 4. Delete all entity documents out of elasticsearch.
+ * 5. Compact Graph so that it deletes the marked values.
+ * 6. Delete entity from cassandra using the map manager.
+ **/
+ private Id deleteAsync(MapManager mapManager, ApplicationScope applicationScope, Id entityId ) {
+ try {
+ //Step 4 && 5
+ asyncEventService.queueEntityDelete(applicationScope, entityId);
+ //Step 6
+ //delete from our UUID index
+ mapManager.delete(entityId.getUuid().toString());
+ return entityId;
+ }catch (Exception e){
+ throw new RuntimeException(e);
+ }
+
+ }
+ /**
+ * Get the map manager for uuid mapping
+ */
+ private MapManager getMapManagerForTypes( ApplicationScope applicationScope) {
+ Id mapOwner = new SimpleId( applicationScope.getApplication().getUuid(), TYPE_APPLICATION );
+
+ final MapScope ms = CpNamingUtils.getEntityTypeMapScope(mapOwner);
+
+ MapManager mm = mapManagerFactory.createMapManager(ms);
+
+ return mm;
+ }
}
http://git-wip-us.apache.org/repos/asf/usergrid/blob/a691ada9/stack/core/src/main/java/org/apache/usergrid/persistence/Query.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/persistence/Query.java b/stack/core/src/main/java/org/apache/usergrid/persistence/Query.java
index 0074cc9..52e3b4e 100644
--- a/stack/core/src/main/java/org/apache/usergrid/persistence/Query.java
+++ b/stack/core/src/main/java/org/apache/usergrid/persistence/Query.java
@@ -158,7 +158,9 @@ public class Query {
return query;
}
-
+ public static Query all( ){
+ return fromQL("select *");
+ }
/**
* Create a query from a property equals
http://git-wip-us.apache.org/repos/asf/usergrid/blob/a691ada9/stack/core/src/test/java/org/apache/usergrid/persistence/ApplicationServiceIT.java
----------------------------------------------------------------------
diff --git a/stack/core/src/test/java/org/apache/usergrid/persistence/ApplicationServiceIT.java b/stack/core/src/test/java/org/apache/usergrid/persistence/ApplicationServiceIT.java
index 5274987..d438304 100644
--- a/stack/core/src/test/java/org/apache/usergrid/persistence/ApplicationServiceIT.java
+++ b/stack/core/src/test/java/org/apache/usergrid/persistence/ApplicationServiceIT.java
@@ -19,8 +19,20 @@
*/
package org.apache.usergrid.persistence;
+import com.google.common.base.Optional;
+import com.google.inject.Injector;
import org.apache.usergrid.AbstractCoreIT;
+import org.apache.usergrid.cassandra.SpringResource;
+import org.apache.usergrid.corepersistence.service.AggregationService;
+import org.apache.usergrid.corepersistence.service.AggregationServiceFactory;
import org.apache.usergrid.corepersistence.util.CpNamingUtils;
+import org.apache.usergrid.persistence.core.scope.ApplicationScope;
+import org.apache.usergrid.persistence.graph.Edge;
+import org.apache.usergrid.persistence.graph.GraphManager;
+import org.apache.usergrid.persistence.graph.GraphManagerFactory;
+import org.apache.usergrid.persistence.graph.SearchByEdgeType;
+import org.apache.usergrid.persistence.graph.impl.SimpleSearchByEdge;
+import org.apache.usergrid.persistence.graph.impl.SimpleSearchByEdgeType;
import org.apache.usergrid.persistence.model.entity.Id;
import org.junit.Assert;
import org.junit.Test;
@@ -29,14 +41,16 @@ import org.slf4j.LoggerFactory;
import rx.Observable;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.Map;
+import java.util.UUID;
/**
* testy test
*/
public class ApplicationServiceIT extends AbstractCoreIT {
- private static final Logger LOG = LoggerFactory.getLogger(ApplicationServiceIT.class);
+ private static final Logger LOG = LoggerFactory.getLogger( ApplicationServiceIT.class );
public ApplicationServiceIT() {
super();
@@ -46,16 +60,36 @@ public class ApplicationServiceIT extends AbstractCoreIT {
public void testDeletes() throws Exception{
EntityManager entityManager = this.app.getEntityManager();
Map<String,Object> map = new HashMap<>();
- Entity entity = entityManager.create("tests", map);
+ for(int i =0;i<10;i++) {
+ map.put("somekey", UUID.randomUUID());
+ Entity entity = entityManager.create("tests", map);
+ }
this.app.refreshIndex();
Thread.sleep(500);
+ ApplicationScope appScope = CpNamingUtils.getApplicationScope(entityManager.getApplicationId());
Observable<Id> ids =
- this.app.getApplicationService().deleteAllEntities(CpNamingUtils.getApplicationScope(entityManager.getApplicationId()));
- ids.toBlocking().last();
+ this.app.getApplicationService().deleteAllEntities(appScope);
+ int count = ids.count().toBlocking().last();
+ Assert.assertEquals(count, 13);
this.app.refreshIndex();
- Thread.sleep(500);
- entity = entityManager.get(entity);
- Assert.assertNull(entity);
+ Thread.sleep(5000);
+ Injector injector = SpringResource.getInstance().getBean(Injector.class);
+ GraphManagerFactory factory = injector.getInstance(GraphManagerFactory.class);
+ GraphManager graphManager = factory.createEdgeManager(appScope);
+ SimpleSearchByEdgeType simpleSearchByEdgeType = new SimpleSearchByEdgeType(
+ appScope.getApplication(),
+ CpNamingUtils.getEdgeTypeFromCollectionName("tests")
+ , Long.MAX_VALUE, SearchByEdgeType.Order.DESCENDING,
+ Optional.<Edge>absent() );
+
+ Iterator<Edge> results = graphManager.loadEdgesFromSource(simpleSearchByEdgeType).toBlocking().getIterator();
+ if(results.hasNext()){
+ Assert.fail();
+
+ }else{
+
+ //success
+ }
}
}
[3/8] usergrid git commit: move delete call into resource
Posted by sn...@apache.org.
move delete call into resource
Project: http://git-wip-us.apache.org/repos/asf/usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/usergrid/commit/657dad3e
Tree: http://git-wip-us.apache.org/repos/asf/usergrid/tree/657dad3e
Diff: http://git-wip-us.apache.org/repos/asf/usergrid/diff/657dad3e
Branch: refs/heads/two-dot-o-dev
Commit: 657dad3ed5da8f185c939165d68083d7d14edc80
Parents: 10149d7
Author: Shawn Feldman <sf...@apache.org>
Authored: Thu Sep 3 14:49:04 2015 -0600
Committer: Shawn Feldman <sf...@apache.org>
Committed: Thu Sep 3 14:49:04 2015 -0600
----------------------------------------------------------------------
.../service/ApplicationServiceImpl.java | 17 +++-
.../java/org/apache/usergrid/Application.java | 7 ++
.../org/apache/usergrid/CoreApplication.java | 4 +
.../java/org/apache/usergrid/CoreITSetup.java | 3 +
.../org/apache/usergrid/CoreITSetupImpl.java | 6 ++
.../persistence/ApplicationServiceIT.java | 61 +++++++++++++
.../usergrid/rest/ApplicationsResource.java | 93 ++++++++++++++++++++
.../apache/usergrid/rest/SystemResource.java | 38 ++------
8 files changed, 193 insertions(+), 36 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/usergrid/blob/657dad3e/stack/core/src/main/java/org/apache/usergrid/corepersistence/service/ApplicationServiceImpl.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/service/ApplicationServiceImpl.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/service/ApplicationServiceImpl.java
index 72dd677..07f7c13 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/service/ApplicationServiceImpl.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/service/ApplicationServiceImpl.java
@@ -19,10 +19,14 @@
*/
package org.apache.usergrid.corepersistence.service;
+import com.google.inject.Inject;
import org.apache.usergrid.corepersistence.asyncevents.AsyncEventService;
import org.apache.usergrid.corepersistence.asyncevents.EventBuilder;
import org.apache.usergrid.corepersistence.rx.impl.AllEntityIdsObservable;
import org.apache.usergrid.corepersistence.util.CpNamingUtils;
+import org.apache.usergrid.persistence.collection.EntityCollectionManager;
+import org.apache.usergrid.persistence.collection.EntityCollectionManagerFactory;
+import org.apache.usergrid.persistence.collection.serialization.impl.migration.EntityIdScope;
import org.apache.usergrid.persistence.core.scope.ApplicationScope;
import org.apache.usergrid.persistence.model.entity.Id;
import rx.Observable;
@@ -33,12 +37,15 @@ import rx.Observable;
public class ApplicationServiceImpl implements ApplicationService{
private final AllEntityIdsObservable allEntityIdsObservable;
+ private final EntityCollectionManagerFactory entityCollectionManagerFactory;
private final AsyncEventService asyncEventService;
private final EventBuilder eventBuilder;
- public ApplicationServiceImpl(AllEntityIdsObservable allEntityIdsObservable, AsyncEventService asyncEventService, EventBuilder eventBuilder){
+ @Inject
+ public ApplicationServiceImpl(AllEntityIdsObservable allEntityIdsObservable, EntityCollectionManagerFactory entityCollectionManagerFactory, AsyncEventService asyncEventService, EventBuilder eventBuilder){
this.allEntityIdsObservable = allEntityIdsObservable;
+ this.entityCollectionManagerFactory = entityCollectionManagerFactory;
this.asyncEventService = asyncEventService;
this.eventBuilder = eventBuilder;
}
@@ -50,12 +57,16 @@ public class ApplicationServiceImpl implements ApplicationService{
//EventBuilder eventBuilder = injector.getInstance(EventBuilder.class);
Observable appObservable = Observable.just(applicationScope);
+ EntityCollectionManager entityCollectionManager = entityCollectionManagerFactory.createCollectionManager(applicationScope);
Observable<Id> countObservable = allEntityIdsObservable.getEntities(appObservable)
//.map(entity -> eventBuilder.buildEntityDelete(applicationScope, entity.getId()).getEntitiesCompacted())
- .doOnNext(entity -> asyncEventService.queueEntityDelete(applicationScope, entity.getId()))
- .map(entityIdScope -> entityIdScope.getId());
+ .map(entityIdScope -> ((EntityIdScope) entityIdScope).getId())
+ .doOnNext(id ->
+ entityCollectionManager.mark((Id) id)
+ .doOnNext(id2 -> asyncEventService.queueEntityDelete(applicationScope, (Id) id2))
+ );
return countObservable;
}
}
http://git-wip-us.apache.org/repos/asf/usergrid/blob/657dad3e/stack/core/src/test/java/org/apache/usergrid/Application.java
----------------------------------------------------------------------
diff --git a/stack/core/src/test/java/org/apache/usergrid/Application.java b/stack/core/src/test/java/org/apache/usergrid/Application.java
index 56028bb..378a4f7 100644
--- a/stack/core/src/test/java/org/apache/usergrid/Application.java
+++ b/stack/core/src/test/java/org/apache/usergrid/Application.java
@@ -20,6 +20,7 @@ package org.apache.usergrid;
import java.util.Map;
import java.util.UUID;
+import org.apache.usergrid.corepersistence.service.ApplicationService;
import org.junit.rules.TestRule;
import org.apache.usergrid.persistence.Entity;
@@ -158,4 +159,10 @@ public interface Application extends TestRule {
* @return
*/
public EntityManager getEntityManager();
+
+ /**
+ * get application service
+ * @return
+ */
+ ApplicationService getApplicationService();
}
http://git-wip-us.apache.org/repos/asf/usergrid/blob/657dad3e/stack/core/src/test/java/org/apache/usergrid/CoreApplication.java
----------------------------------------------------------------------
diff --git a/stack/core/src/test/java/org/apache/usergrid/CoreApplication.java b/stack/core/src/test/java/org/apache/usergrid/CoreApplication.java
index 465d238..f152389 100644
--- a/stack/core/src/test/java/org/apache/usergrid/CoreApplication.java
+++ b/stack/core/src/test/java/org/apache/usergrid/CoreApplication.java
@@ -25,6 +25,7 @@ import java.util.concurrent.ExecutionException;
import com.google.inject.Injector;
import org.apache.usergrid.corepersistence.index.IndexLocationStrategyFactory;
+import org.apache.usergrid.corepersistence.service.ApplicationService;
import org.apache.usergrid.corepersistence.util.CpNamingUtils;
import org.apache.usergrid.persistence.index.*;
import org.apache.usergrid.persistence.model.entity.Id;
@@ -244,4 +245,7 @@ public class CoreApplication implements Application, TestRule {
public EntityManager getEntityManager() {
return em;
}
+
+ @Override
+ public ApplicationService getApplicationService(){ return setup.getApplicationService();}
}
http://git-wip-us.apache.org/repos/asf/usergrid/blob/657dad3e/stack/core/src/test/java/org/apache/usergrid/CoreITSetup.java
----------------------------------------------------------------------
diff --git a/stack/core/src/test/java/org/apache/usergrid/CoreITSetup.java b/stack/core/src/test/java/org/apache/usergrid/CoreITSetup.java
index 6da0515..7a0ebae 100644
--- a/stack/core/src/test/java/org/apache/usergrid/CoreITSetup.java
+++ b/stack/core/src/test/java/org/apache/usergrid/CoreITSetup.java
@@ -20,6 +20,7 @@ package org.apache.usergrid;
import java.util.UUID;
import com.google.inject.Injector;
+import org.apache.usergrid.corepersistence.service.ApplicationService;
import org.apache.usergrid.persistence.index.EntityIndex;
import org.junit.rules.TestRule;
@@ -44,4 +45,6 @@ public interface CoreITSetup extends TestRule {
Injector getInjector();
TestEntityIndex getEntityIndex();
+
+ ApplicationService getApplicationService();
}
http://git-wip-us.apache.org/repos/asf/usergrid/blob/657dad3e/stack/core/src/test/java/org/apache/usergrid/CoreITSetupImpl.java
----------------------------------------------------------------------
diff --git a/stack/core/src/test/java/org/apache/usergrid/CoreITSetupImpl.java b/stack/core/src/test/java/org/apache/usergrid/CoreITSetupImpl.java
index 30e8b35..d2129a4 100644
--- a/stack/core/src/test/java/org/apache/usergrid/CoreITSetupImpl.java
+++ b/stack/core/src/test/java/org/apache/usergrid/CoreITSetupImpl.java
@@ -19,6 +19,7 @@ package org.apache.usergrid;
import com.google.inject.Injector;
import org.apache.usergrid.cassandra.SpringResource;
+import org.apache.usergrid.corepersistence.service.ApplicationService;
import org.apache.usergrid.mq.QueueManagerFactory;
import org.apache.usergrid.persistence.Entity;
import org.apache.usergrid.persistence.EntityManagerFactory;
@@ -113,6 +114,11 @@ public class CoreITSetupImpl implements CoreITSetup, TestEntityIndex {
return qmf;
}
+ @Override
+ public ApplicationService getApplicationService(){
+ return injector.getInstance(ApplicationService.class);
+ }
+
@Override
public CassandraService getCassSvc() {
http://git-wip-us.apache.org/repos/asf/usergrid/blob/657dad3e/stack/core/src/test/java/org/apache/usergrid/persistence/ApplicationServiceIT.java
----------------------------------------------------------------------
diff --git a/stack/core/src/test/java/org/apache/usergrid/persistence/ApplicationServiceIT.java b/stack/core/src/test/java/org/apache/usergrid/persistence/ApplicationServiceIT.java
new file mode 100644
index 0000000..5274987
--- /dev/null
+++ b/stack/core/src/test/java/org/apache/usergrid/persistence/ApplicationServiceIT.java
@@ -0,0 +1,61 @@
+/*
+ *
+ * * Licensed to the Apache Software Foundation (ASF) under one or more
+ * * contributor license agreements. 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. For additional information regarding
+ * * copyright in this work, please see the NOTICE file in the top level
+ * * directory of this distribution.
+ *
+ */
+package org.apache.usergrid.persistence;
+
+import org.apache.usergrid.AbstractCoreIT;
+import org.apache.usergrid.corepersistence.util.CpNamingUtils;
+import org.apache.usergrid.persistence.model.entity.Id;
+import org.junit.Assert;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import rx.Observable;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * testy test
+ */
+public class ApplicationServiceIT extends AbstractCoreIT {
+ private static final Logger LOG = LoggerFactory.getLogger(ApplicationServiceIT.class);
+
+
+ public ApplicationServiceIT() {
+ super();
+ }
+
+ @Test
+ public void testDeletes() throws Exception{
+ EntityManager entityManager = this.app.getEntityManager();
+ Map<String,Object> map = new HashMap<>();
+ Entity entity = entityManager.create("tests", map);
+ this.app.refreshIndex();
+ Thread.sleep(500);
+ Observable<Id> ids =
+ this.app.getApplicationService().deleteAllEntities(CpNamingUtils.getApplicationScope(entityManager.getApplicationId()));
+ ids.toBlocking().last();
+ this.app.refreshIndex();
+ Thread.sleep(500);
+ entity = entityManager.get(entity);
+ Assert.assertNull(entity);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/usergrid/blob/657dad3e/stack/rest/src/main/java/org/apache/usergrid/rest/ApplicationsResource.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/main/java/org/apache/usergrid/rest/ApplicationsResource.java b/stack/rest/src/main/java/org/apache/usergrid/rest/ApplicationsResource.java
new file mode 100644
index 0000000..4504387
--- /dev/null
+++ b/stack/rest/src/main/java/org/apache/usergrid/rest/ApplicationsResource.java
@@ -0,0 +1,93 @@
+/*
+ *
+ * * Licensed to the Apache Software Foundation (ASF) under one or more
+ * * contributor license agreements. 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. For additional information regarding
+ * * copyright in this work, please see the NOTICE file in the top level
+ * * directory of this distribution.
+ *
+ */
+package org.apache.usergrid.rest;
+
+import com.sun.jersey.api.json.JSONWithPadding;
+import org.apache.usergrid.rest.security.annotations.RequireSystemAccess;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Component;
+
+import javax.ws.rs.*;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.UriInfo;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+import java.util.concurrent.atomic.AtomicInteger;
+
+/**
+ * Classy class class.
+ */
+@Component
+@Scope( "singleton" )
+@Produces( {
+ MediaType.APPLICATION_JSON, "application/javascript", "application/x-javascript", "text/ecmascript",
+ "application/ecmascript", "text/jscript"
+} )
+public class ApplicationsResource extends AbstractContextResource {
+
+ private static final Logger logger = LoggerFactory.getLogger(ApplicationsResource.class);
+
+
+ public ApplicationsResource() {
+
+ logger.info( "ApplicationsResource initialized" );
+ } {
+
+ }
+
+ @RequireSystemAccess
+ @DELETE
+ @Path( "{applicationId}" )
+ public JSONWithPadding clearApplication( @Context UriInfo ui,
+ @PathParam("applicationId") UUID applicationId,
+ @QueryParam( "confirmApplicationId" ) UUID confirmApplicationId,
+ @QueryParam( "callback" ) @DefaultValue( "callback" ) String callback )
+ throws Exception {
+
+ if(confirmApplicationId == null || !confirmApplicationId.equals(applicationId)){
+ throw new IllegalArgumentException("please make confirmApplicationId equal to applicationId");
+ }
+
+ ApiResponse response = createApiResponse();
+ response.setAction( "clear application" );
+
+ logger.info( "clearing up application" );
+ AtomicInteger itemsDeleted = new AtomicInteger(0);
+ try {
+ management.deleteAllEntities(applicationId)
+ .count()
+ .doOnNext(count -> itemsDeleted.set(count))
+ .toBlocking().lastOrDefault(0);
+ }
+ catch ( Exception e ) {
+ logger.error( "Unable to delete all items, deleted: " + itemsDeleted.get(), e );
+ }
+ Map<String,Object> data = new HashMap<>();
+ data.put("count",itemsDeleted.get());
+ response.setData(data);
+ response.setSuccess();
+ return new JSONWithPadding( response, callback );
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/usergrid/blob/657dad3e/stack/rest/src/main/java/org/apache/usergrid/rest/SystemResource.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/main/java/org/apache/usergrid/rest/SystemResource.java b/stack/rest/src/main/java/org/apache/usergrid/rest/SystemResource.java
index 20f0fa4..f266441 100644
--- a/stack/rest/src/main/java/org/apache/usergrid/rest/SystemResource.java
+++ b/stack/rest/src/main/java/org/apache/usergrid/rest/SystemResource.java
@@ -79,39 +79,6 @@ public class SystemResource extends AbstractContextResource {
return new JSONWithPadding( response, callback );
}
- @RequireSystemAccess
- @DELETE
- @Path( "applications/{applicationId}" )
- public JSONWithPadding clearApplication( @Context UriInfo ui,
- @PathParam("applicationId") UUID applicationId,
- @QueryParam( "confirmApplicationId" ) UUID confirmApplicationId,
- @QueryParam( "callback" ) @DefaultValue( "callback" ) String callback )
- throws Exception {
-
- if(confirmApplicationId == null || !confirmApplicationId.equals(applicationId)){
- throw new IllegalArgumentException("please make confirmApplicationId equal to applicationId");
- }
-
- ApiResponse response = createApiResponse();
- response.setAction( "clear application" );
-
- logger.info( "clearing up application" );
- AtomicInteger itemsDeleted = new AtomicInteger(0);
- try {
- management.deleteAllEntities(applicationId)
- .count()
- .doOnNext(count -> itemsDeleted.set(count))
- .toBlocking().lastOrDefault(0);
- }
- catch ( Exception e ) {
- logger.error( "Unable to delete all items, deleted: " + itemsDeleted.get(), e );
- }
- Map<String,Object> data = new HashMap<>();
- data.put("count",itemsDeleted.get());
- response.setData(data);
- response.setSuccess();
- return new JSONWithPadding( response, callback );
- }
@Path( "migrate" )
@@ -128,4 +95,9 @@ public class SystemResource extends AbstractContextResource {
public DatabaseResource database() {
return getSubResource( DatabaseResource.class );
}
+
+ @Path( "applications" )
+ public ApplicationsResource applications() {
+ return getSubResource( ApplicationsResource.class );
+ }
}
[7/8] usergrid git commit: changing observable and tests
Posted by sn...@apache.org.
changing observable and tests
Project: http://git-wip-us.apache.org/repos/asf/usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/usergrid/commit/c90b6427
Tree: http://git-wip-us.apache.org/repos/asf/usergrid/tree/c90b6427
Diff: http://git-wip-us.apache.org/repos/asf/usergrid/diff/c90b6427
Branch: refs/heads/two-dot-o-dev
Commit: c90b6427a032cb878b730cf1b3f5a493d2a3f417
Parents: d21deaa
Author: Shawn Feldman <sf...@apache.org>
Authored: Thu Sep 3 17:47:43 2015 -0600
Committer: Shawn Feldman <sf...@apache.org>
Committed: Thu Sep 3 17:47:43 2015 -0600
----------------------------------------------------------------------
.../service/ApplicationServiceImpl.java | 14 ++++++--------
.../org/apache/usergrid/rest/SystemResourceIT.java | 3 ++-
2 files changed, 8 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/usergrid/blob/c90b6427/stack/core/src/main/java/org/apache/usergrid/corepersistence/service/ApplicationServiceImpl.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/service/ApplicationServiceImpl.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/service/ApplicationServiceImpl.java
index 2e4700a..42d5e51 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/service/ApplicationServiceImpl.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/service/ApplicationServiceImpl.java
@@ -85,15 +85,13 @@ public class ApplicationServiceImpl implements ApplicationService{
Observable<Id> countObservable = allEntityIdsObservable.getEntities(appObservable)
//.map(entity -> eventBuilder.buildEntityDelete(applicationScope, entity.getId()).getEntitiesCompacted())
.map(entityIdScope -> ((EntityIdScope) entityIdScope).getId())
- .skip(1)
+ .skip(1)//skip application entity
.map(id -> {
- return entityCollectionManager.mark((Id) id)
- .mergeWith(graphManager.markNode((Id) id, createGraphOperationTimestamp()))
- .map(id2 -> id).toBlocking().last();
- }
- ).doOnNext(id -> deleteAsync(mapManager ,applicationScope, (Id) id));
-
-
+ entityCollectionManager.mark((Id) id)
+ .mergeWith(graphManager.markNode((Id) id, createGraphOperationTimestamp())).toBlocking().last();
+ return id;
+ })
+ .doOnNext(id -> deleteAsync(mapManager, applicationScope, (Id) id));
return countObservable;
}
http://git-wip-us.apache.org/repos/asf/usergrid/blob/c90b6427/stack/rest/src/test/java/org/apache/usergrid/rest/SystemResourceIT.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/SystemResourceIT.java b/stack/rest/src/test/java/org/apache/usergrid/rest/SystemResourceIT.java
index 5c89422..4523b56 100644
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/SystemResourceIT.java
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/SystemResourceIT.java
@@ -25,6 +25,7 @@ import org.apache.usergrid.rest.test.resource.model.QueryParameters;
import java.util.LinkedHashMap;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
@@ -60,7 +61,7 @@ public class SystemResourceIT extends AbstractRestIT {
assertNotNull( result );
assertNotNull( "ok",result.getStatus() );
- assertTrue((int)((LinkedHashMap)result.getData()).get("count")==4);
+ assertEquals(((LinkedHashMap) result.getData()).get("count"), 3);
}
[8/8] usergrid git commit: Merge branch 'two-dot-o-dev' of
https://git-wip-us.apache.org/repos/asf/usergrid into two-dot-o-dev
Posted by sn...@apache.org.
Merge branch 'two-dot-o-dev' of https://git-wip-us.apache.org/repos/asf/usergrid into two-dot-o-dev
Project: http://git-wip-us.apache.org/repos/asf/usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/usergrid/commit/e25f2c39
Tree: http://git-wip-us.apache.org/repos/asf/usergrid/tree/e25f2c39
Diff: http://git-wip-us.apache.org/repos/asf/usergrid/diff/e25f2c39
Branch: refs/heads/two-dot-o-dev
Commit: e25f2c39c161a3761e6c9631ceff6bd558c8178b
Parents: c90b642 4c406ed
Author: Dave Johnson <sn...@apache.org>
Authored: Fri Sep 4 09:41:34 2015 -0400
Committer: Dave Johnson <sn...@apache.org>
Committed: Fri Sep 4 09:41:34 2015 -0400
----------------------------------------------------------------------
stack/rest/src/main/resources/usergrid-rest-deploy-context.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
[6/8] usergrid git commit: fixed tests so edges don't get left behind
Posted by sn...@apache.org.
fixed tests so edges don't get left behind
Project: http://git-wip-us.apache.org/repos/asf/usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/usergrid/commit/d21deaaa
Tree: http://git-wip-us.apache.org/repos/asf/usergrid/tree/d21deaaa
Diff: http://git-wip-us.apache.org/repos/asf/usergrid/diff/d21deaaa
Branch: refs/heads/two-dot-o-dev
Commit: d21deaaa4a466e14593afc6c778e823c5aaef577
Parents: a691ada
Author: Shawn Feldman <sf...@apache.org>
Authored: Thu Sep 3 17:28:13 2015 -0600
Committer: Shawn Feldman <sf...@apache.org>
Committed: Thu Sep 3 17:28:13 2015 -0600
----------------------------------------------------------------------
.../apache/usergrid/persistence/ApplicationServiceIT.java | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/usergrid/blob/d21deaaa/stack/core/src/test/java/org/apache/usergrid/persistence/ApplicationServiceIT.java
----------------------------------------------------------------------
diff --git a/stack/core/src/test/java/org/apache/usergrid/persistence/ApplicationServiceIT.java b/stack/core/src/test/java/org/apache/usergrid/persistence/ApplicationServiceIT.java
index d438304..9b20f72 100644
--- a/stack/core/src/test/java/org/apache/usergrid/persistence/ApplicationServiceIT.java
+++ b/stack/core/src/test/java/org/apache/usergrid/persistence/ApplicationServiceIT.java
@@ -84,10 +84,14 @@ public class ApplicationServiceIT extends AbstractCoreIT {
Iterator<Edge> results = graphManager.loadEdgesFromSource(simpleSearchByEdgeType).toBlocking().getIterator();
if(results.hasNext()){
- Assert.fail();
-
- }else{
+ Assert.fail("should be empty");
+ }else{
+ Results searchCollection = entityManager.searchCollection(entityManager.getApplication(), "tests", Query.all());
+ Assert.assertEquals(searchCollection.size(),0);
+ AggregationServiceFactory aggregationServiceFactory = injector.getInstance(AggregationServiceFactory.class);
+ long size = aggregationServiceFactory.getAggregationService().getCollectionSize(appScope,"tests");
+ Assert.assertEquals(size,0);
//success
}
}
[2/8] usergrid git commit: queue up deletes
Posted by sn...@apache.org.
queue up deletes
Project: http://git-wip-us.apache.org/repos/asf/usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/usergrid/commit/10149d74
Tree: http://git-wip-us.apache.org/repos/asf/usergrid/tree/10149d74
Diff: http://git-wip-us.apache.org/repos/asf/usergrid/diff/10149d74
Branch: refs/heads/two-dot-o-dev
Commit: 10149d740349cf37fbab0099f19379f2842c655a
Parents: 09e8183
Author: Shawn Feldman <sf...@apache.org>
Authored: Thu Sep 3 13:58:59 2015 -0600
Committer: Shawn Feldman <sf...@apache.org>
Committed: Thu Sep 3 13:58:59 2015 -0600
----------------------------------------------------------------------
.../usergrid/corepersistence/service/ApplicationService.java | 3 ++-
.../corepersistence/service/ApplicationServiceImpl.java | 7 ++++---
.../main/java/org/apache/usergrid/rest/SystemResource.java | 1 +
.../org/apache/usergrid/management/ManagementService.java | 3 ++-
.../usergrid/management/cassandra/ManagementServiceImpl.java | 3 ++-
5 files changed, 11 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/usergrid/blob/10149d74/stack/core/src/main/java/org/apache/usergrid/corepersistence/service/ApplicationService.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/service/ApplicationService.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/service/ApplicationService.java
index 18b1e60..73547a7 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/service/ApplicationService.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/service/ApplicationService.java
@@ -20,6 +20,7 @@
package org.apache.usergrid.corepersistence.service;
import org.apache.usergrid.persistence.core.scope.ApplicationScope;
+import org.apache.usergrid.persistence.model.entity.Id;
import rx.Observable;
/**
@@ -27,5 +28,5 @@ import rx.Observable;
*/
public interface ApplicationService {
- Observable<Integer> deleteAllEntities(ApplicationScope applicationScope);
+ Observable<Id> deleteAllEntities(ApplicationScope applicationScope);
}
http://git-wip-us.apache.org/repos/asf/usergrid/blob/10149d74/stack/core/src/main/java/org/apache/usergrid/corepersistence/service/ApplicationServiceImpl.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/service/ApplicationServiceImpl.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/service/ApplicationServiceImpl.java
index 0becab4..72dd677 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/service/ApplicationServiceImpl.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/service/ApplicationServiceImpl.java
@@ -24,6 +24,7 @@ import org.apache.usergrid.corepersistence.asyncevents.EventBuilder;
import org.apache.usergrid.corepersistence.rx.impl.AllEntityIdsObservable;
import org.apache.usergrid.corepersistence.util.CpNamingUtils;
import org.apache.usergrid.persistence.core.scope.ApplicationScope;
+import org.apache.usergrid.persistence.model.entity.Id;
import rx.Observable;
/**
@@ -42,7 +43,7 @@ public class ApplicationServiceImpl implements ApplicationService{
this.eventBuilder = eventBuilder;
}
@Override
- public Observable<Integer> deleteAllEntities(ApplicationScope applicationScope) {
+ public Observable<Id> deleteAllEntities(ApplicationScope applicationScope) {
if(applicationScope.getApplication().getUuid().equals(CpNamingUtils.MANAGEMENT_APPLICATION_ID)){
throw new IllegalArgumentException("Can't delete from management app");
}
@@ -51,10 +52,10 @@ public class ApplicationServiceImpl implements ApplicationService{
Observable appObservable = Observable.just(applicationScope);
- Observable<Integer> countObservable = allEntityIdsObservable.getEntities(appObservable)
+ Observable<Id> countObservable = allEntityIdsObservable.getEntities(appObservable)
//.map(entity -> eventBuilder.buildEntityDelete(applicationScope, entity.getId()).getEntitiesCompacted())
.doOnNext(entity -> asyncEventService.queueEntityDelete(applicationScope, entity.getId()))
- .count();
+ .map(entityIdScope -> entityIdScope.getId());
return countObservable;
}
}
http://git-wip-us.apache.org/repos/asf/usergrid/blob/10149d74/stack/rest/src/main/java/org/apache/usergrid/rest/SystemResource.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/main/java/org/apache/usergrid/rest/SystemResource.java b/stack/rest/src/main/java/org/apache/usergrid/rest/SystemResource.java
index ace8fd0..20f0fa4 100644
--- a/stack/rest/src/main/java/org/apache/usergrid/rest/SystemResource.java
+++ b/stack/rest/src/main/java/org/apache/usergrid/rest/SystemResource.java
@@ -99,6 +99,7 @@ public class SystemResource extends AbstractContextResource {
AtomicInteger itemsDeleted = new AtomicInteger(0);
try {
management.deleteAllEntities(applicationId)
+ .count()
.doOnNext(count -> itemsDeleted.set(count))
.toBlocking().lastOrDefault(0);
}
http://git-wip-us.apache.org/repos/asf/usergrid/blob/10149d74/stack/services/src/main/java/org/apache/usergrid/management/ManagementService.java
----------------------------------------------------------------------
diff --git a/stack/services/src/main/java/org/apache/usergrid/management/ManagementService.java b/stack/services/src/main/java/org/apache/usergrid/management/ManagementService.java
index 4b05b94..25a693b 100644
--- a/stack/services/src/main/java/org/apache/usergrid/management/ManagementService.java
+++ b/stack/services/src/main/java/org/apache/usergrid/management/ManagementService.java
@@ -30,6 +30,7 @@ import org.apache.usergrid.persistence.index.query.Identifier;
import org.apache.usergrid.persistence.entities.Application;
import org.apache.usergrid.persistence.entities.Group;
import org.apache.usergrid.persistence.entities.User;
+import org.apache.usergrid.persistence.model.entity.Id;
import org.apache.usergrid.security.oauth.AccessInfo;
import org.apache.usergrid.security.shiro.PrincipalCredentialsToken;
import org.apache.usergrid.services.ServiceResults;
@@ -345,5 +346,5 @@ public interface ManagementService {
* @param applicationId
* @return
*/
- Observable<Integer> deleteAllEntities(UUID applicationId);
+ Observable<Id> deleteAllEntities(UUID applicationId);
}
http://git-wip-us.apache.org/repos/asf/usergrid/blob/10149d74/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 437b1a4..1ef5659 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
@@ -48,6 +48,7 @@ import org.apache.usergrid.persistence.exceptions.ApplicationAlreadyExistsExcept
import org.apache.usergrid.persistence.exceptions.DuplicateUniquePropertyExistsException;
import org.apache.usergrid.persistence.exceptions.EntityNotFoundException;
import org.apache.usergrid.persistence.index.query.Identifier;
+import org.apache.usergrid.persistence.model.entity.Id;
import org.apache.usergrid.security.AuthPrincipalInfo;
import org.apache.usergrid.security.AuthPrincipalType;
import org.apache.usergrid.security.crypto.EncryptionService;
@@ -3067,7 +3068,7 @@ public class ManagementServiceImpl implements ManagementService {
}
@Override
- public Observable<Integer> deleteAllEntities(UUID applicationId){
+ public Observable<Id> deleteAllEntities(UUID applicationId){
if(applicationId.equals(CpNamingUtils.MANAGEMENT_APPLICATION_ID)){
throw new IllegalArgumentException("Can't delete from management app");
}