Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add App version field as a first class variable of SP #5942

Open
wants to merge 8 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ public class ApplicationBasicInfo implements Serializable {

private int applicationId;
private String applicationName;
private String applicationVersion;
private String description;

private String applicationResourceId;
Expand Down Expand Up @@ -80,6 +81,26 @@ public void setApplicationName(String applicationName) {
this.applicationName = applicationName;
}

/**
* Get application version.
*
* @return Application version.
*/
public String getApplicationVersion() {

return applicationVersion;
}

/**
* Set application version.
*
* @param applicationVersion Application version.
*/
public void setApplicationVersion(String applicationVersion) {

this.applicationVersion = applicationVersion;
}

/**
* Get application description.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ public class ServiceProvider implements Serializable {
private static final Log log = LogFactory.getLog(ServiceProvider.class);
private static final String CONSENT_CONFIG_ELEM = "ConsentConfig";

private static final String APPLICATION_VERSION = "ApplicationVersion";
private static final String ACCESS_URL = "AccessUrl";
private static final String IMAGE_URL = "ImageUrl";
private static final String TEMPLATE_ID = "TemplateId";
Expand All @@ -66,6 +67,9 @@ public class ServiceProvider implements Serializable {
@XmlElement(name = "ApplicationName")
private String applicationName;

@XmlElement(name = APPLICATION_VERSION)
private String applicationVersion;

@XmlElement(name = "Description")
private String description;

Expand Down Expand Up @@ -201,6 +205,8 @@ public static ServiceProvider build(OMElement serviceProviderOM) {
log.error("Service provider not loaded from the file. Application Name is null.");
return null;
}
} else if (APPLICATION_VERSION.equals(elementName)) {
serviceProvider.setApplicationVersion(element.getText());
} else if ("Description".equals(elementName)) {
serviceProvider.setDescription(element.getText());
} else if (IMAGE_URL.equals(elementName)) {
Expand Down Expand Up @@ -454,6 +460,22 @@ public void setApplicationName(String applicationName) {
this.applicationName = applicationName;
}

/**
* @return Application version.
*/
public String getApplicationVersion() {

return applicationVersion;
}

/**
* @param applicationVersion Application version.
*/
public void setApplicationVersion(String applicationVersion) {

this.applicationVersion = applicationVersion;
}

/**
* @return
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@ private ApplicationConstants() {
public static final String STANDARD_APPLICATION = "standardAPP";
public static final String WELLKNOWN_APPLICATION_TYPE = "appType";
public static final String SERVICE_PROVIDERS = "ServiceProviders";
public static final String LATEST_APP_VERSION = "v1.0.0";
public static final String BASE_APP_VERSION = "v0.0.0";

public static final String AUTH_TYPE_DEFAULT = "default";
public static final String AUTH_TYPE_LOCAL = "local";
Expand Down Expand Up @@ -150,6 +152,7 @@ public static class ApplicationTableColumns {

public static final String ID = "ID";
public static final String APP_NAME = "APP_NAME";
public static final String APP_VERSION = "VERSION";
public static final String DESCRIPTION = "DESCRIPTION";

public static final String USERNAME = "USERNAME";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -234,6 +234,9 @@ public ServiceProvider createApplicationWithTemplate(ServiceProvider serviceProv
}
}

// Set default application version.
serviceProvider.setApplicationVersion(ApplicationConstants.LATEST_APP_VERSION);

doPreAddApplicationChecks(serviceProvider, tenantDomain, username);
ApplicationDAO appDAO = ApplicationMgtSystemConfig.getInstance().getApplicationDAO();
serviceProvider.setOwner(getUser(tenantDomain, username).orElseThrow(() ->
Expand Down Expand Up @@ -2543,6 +2546,9 @@ public String createApplication(ServiceProvider application, String tenantDomain
}
}

// Set default application version.
application.setApplicationVersion(ApplicationConstants.LATEST_APP_VERSION);

doPreAddApplicationChecks(application, tenantDomain, username);
ApplicationDAO applicationDAO = ApplicationMgtSystemConfig.getInstance().getApplicationDAO();
String resourceId = doAddApplication(application, tenantDomain, username, applicationDAO::addApplication);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -360,6 +360,11 @@ public int createApplication(ServiceProvider application, String tenantDomain)

Connection connection = IdentityDatabaseUtil.getDBConnection(true);
try {
// Set application version to the latest if not set.
if (application.getApplicationVersion() == null) {
application.setApplicationVersion(ApplicationConstants.LATEST_APP_VERSION);
}
// Create basic application.
ApplicationCreateResult result = persistBasicApplicationInformation(connection, application, tenantDomain);
IdentityDatabaseUtil.commitTransaction(connection);
return result.getApplicationId();
Expand Down Expand Up @@ -404,6 +409,7 @@ private ApplicationCreateResult persistBasicApplicationInformation(Connection co
String username = UserCoreUtil.removeDomainFromName(qualifiedUsername);
String userStoreDomain = IdentityUtil.extractDomainFromName(qualifiedUsername);
String applicationName = application.getApplicationName();
String applicationVersion = application.getApplicationVersion();
String description = application.getDescription();

if (log.isDebugEnabled()) {
Expand Down Expand Up @@ -438,6 +444,7 @@ private ApplicationCreateResult persistBasicApplicationInformation(Connection co
storeAppPrepStmt.setString(10, resourceId);
storeAppPrepStmt.setString(11, application.getImageUrl());
storeAppPrepStmt.setString(12, templatedAccessUrl);
storeAppPrepStmt.setString(13, applicationVersion);
storeAppPrepStmt.execute();

results = storeAppPrepStmt.getGeneratedKeys();
Expand Down Expand Up @@ -981,6 +988,7 @@ private void updateBasicApplicationData(ServiceProvider serviceProvider, Connect
throws SQLException, UserStoreException, IdentityApplicationManagementException {

int applicationId = serviceProvider.getApplicationID();
String applicationVersion = serviceProvider.getApplicationVersion();
String applicationName = serviceProvider.getApplicationName();
String description = serviceProvider.getDescription();
boolean isSaasApp = serviceProvider.isSaasApp();
Expand Down Expand Up @@ -1056,6 +1064,7 @@ private void updateBasicApplicationData(ServiceProvider serviceProvider, Connect
}
statement.setInt(ApplicationTableColumns.TENANT_ID, tenantID);
statement.setInt(ApplicationTableColumns.ID, applicationId);
statement.setString(ApplicationTableColumns.APP_VERSION, applicationVersion);

statement.executeUpdate();
}
Expand Down Expand Up @@ -1837,6 +1846,7 @@ public ServiceProvider getApplication(String applicationName,
localServiceProvider.setApplicationName(applicationName);
localServiceProvider.setDescription("Local Service Provider");
localServiceProvider.setSpProperties(prepareLocalSpProperties());
localServiceProvider.setApplicationVersion();
applicationId = createServiceProvider(tenantDomain, localServiceProvider);
}
return getApplication(applicationId);
Expand Down Expand Up @@ -2608,6 +2618,7 @@ private ServiceProvider getBasicApplicationData(int appId, Connection connection
serviceProvider.setApplicationID(rs.getInt(ApplicationTableColumns.ID));
serviceProvider.setApplicationResourceId(rs.getString(ApplicationTableColumns.UUID));
serviceProvider.setApplicationName(rs.getString(ApplicationTableColumns.APP_NAME));
serviceProvider.setApplicationVersion(rs.getString(ApplicationTableColumns.APP_VERSION));
serviceProvider.setDescription(rs.getString(ApplicationTableColumns.DESCRIPTION));
serviceProvider.setImageUrl(rs.getString(ApplicationTableColumns.IMAGE_URL));

Expand Down Expand Up @@ -3810,6 +3821,7 @@ public ApplicationBasicInfo[] getAllApplicationBasicInfo()
basicInfo.setApplicationId(appNameResultSet.getInt("ID"));
basicInfo.setApplicationName(appNameResultSet.getString("APP_NAME"));
basicInfo.setDescription(appNameResultSet.getString("DESCRIPTION"));
basicInfo.setApplicationVersion(appNameResultSet.getString(ApplicationTableColumns.APP_VERSION));
appInfo.add(basicInfo);
}

Expand Down Expand Up @@ -4075,6 +4087,7 @@ public ApplicationBasicInfo[] getApplicationBasicInfo(String filter)
basicInfo.setApplicationId(appNameResultSet.getInt("ID"));
basicInfo.setApplicationName(appNameResultSet.getString("APP_NAME"));
basicInfo.setDescription(appNameResultSet.getString("DESCRIPTION"));
basicInfo.setApplicationVersion(appNameResultSet.getString(ApplicationTableColumns.APP_VERSION));
appInfo.add(basicInfo);
}
} catch (SQLException e) {
Expand Down Expand Up @@ -4935,6 +4948,7 @@ public boolean isApplicationExists(String serviceProviderName, String tenantName
}

try (Connection connection = IdentityDatabaseUtil.getDBConnection(false)) {
// Todo: change the query to something basic without getting all info.
try (PreparedStatement checkAppExistence = connection
.prepareStatement(ApplicationMgtDBQueries.LOAD_BASIC_APP_INFO_BY_APP_NAME)) {
checkAppExistence.setString(1, serviceProviderName);
Expand Down Expand Up @@ -6250,6 +6264,7 @@ private ApplicationBasicInfo buildApplicationBasicInfo(ResultSet appNameResultSe
basicInfo.setApplicationName(appNameResultSet.getString(ApplicationTableColumns.APP_NAME));
basicInfo.setDescription(appNameResultSet.getString(ApplicationTableColumns.DESCRIPTION));
basicInfo.setUuid(appNameResultSet.getString(ApplicationTableColumns.UUID));
basicInfo.setApplicationVersion(appNameResultSet.getString(ApplicationTableColumns.APP_VERSION));

basicInfo.setApplicationResourceId(appNameResultSet.getString(ApplicationTableColumns.UUID));
basicInfo.setImageUrl(appNameResultSet.getString(ApplicationTableColumns.IMAGE_URL));
Expand Down Expand Up @@ -6308,6 +6323,7 @@ private ApplicationBasicInfo buildApplicationBasicInfoWithInboundConfig(ResultSe
basicInfo.setApplicationId(appNameResultSet.getInt(ApplicationTableColumns.ID));
basicInfo.setApplicationName(appNameResultSet.getString(ApplicationTableColumns.APP_NAME));
basicInfo.setDescription(appNameResultSet.getString(ApplicationTableColumns.DESCRIPTION));
basicInfo.setApplicationVersion(appNameResultSet.getString(ApplicationTableColumns.APP_VERSION));

basicInfo.setApplicationResourceId(appNameResultSet.getString(ApplicationTableColumns.UUID));
basicInfo.setImageUrl(appNameResultSet.getString(ApplicationTableColumns.IMAGE_URL));
Expand Down
Loading
Loading