Skip to content
This repository has been archived by the owner on May 12, 2021. It is now read-only.

Commit

Permalink
Fix Application Key regeneration issue when redeploying cartridge
Browse files Browse the repository at this point in the history
  • Loading branch information
chamilad committed Feb 10, 2016
1 parent 5781994 commit 0a5fec3
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
import org.apache.stratos.autoscaler.applications.ClusterInformation;
import org.apache.stratos.autoscaler.applications.MTClusterInformation;
import org.apache.stratos.autoscaler.applications.STClusterInformation;
import org.apache.stratos.autoscaler.applications.ApplicationHolder;
import org.apache.stratos.autoscaler.applications.payload.PayloadData;
import org.apache.stratos.autoscaler.applications.pojo.*;
import org.apache.stratos.autoscaler.client.IdentityApplicationManagementServiceClient;
Expand Down Expand Up @@ -270,7 +271,19 @@ private Application buildCompositeAppStructure(ApplicationContext applicationCon
Map<String, SubscribableInfoContext> subscribableInfoCtxts)
throws ApplicationDefinitionException, CartridgeGroupNotFoundException, CartridgeNotFoundException {

Application application = new Application(applicationContext.getApplicationId());
Application application;

// check if application already exists, and get existing key if true
ApplicationHolder.acquireReadLock();
Applications persistedApplications = ApplicationHolder.getApplications();
if (persistedApplications != null && persistedApplications.applicationExists(applicationContext.getApplicationId())) {
String existingKey = persistedApplications.getApplication(applicationContext.getApplicationId()).getKey();
application = new Application(applicationContext.getApplicationId(), existingKey);
} else {
application = new Application(applicationContext.getApplicationId());
}

ApplicationHolder.releaseReadLock();

// Set tenant information
application.setTenantId(applicationContext.getTenantId());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,13 @@ public Application(String id) {
this.setInstanceIdToInstanceContextMap(new HashMap<String, ApplicationInstance>());
}

public Application(String id, String key) {
super();
this.id = id;
this.key = key;
this.setInstanceIdToInstanceContextMap(new HashMap<String, ApplicationInstance>());
}

public String getUniqueIdentifier() {
return id;
}
Expand Down

0 comments on commit 0a5fec3

Please sign in to comment.