/**
* Copyright (C) 2015 Orange
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.francetelecom.clara.cloud.logicalmodel.samplecatalog;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.francetelecom.clara.cloud.logicalmodel.LogicalDeployment;
import com.francetelecom.clara.cloud.logicalmodel.LogicalRelationalService;
import com.francetelecom.clara.cloud.logicalmodel.LogicalRelationalServiceSqlDialectEnum;
import com.francetelecom.clara.cloud.logicalmodel.LogicalServiceAccessTypeEnum;
import com.francetelecom.clara.cloud.logicalmodel.LogicalWebGUIService;
import com.francetelecom.clara.cloud.logicalmodel.ProcessingNode;
/**
* A sample app featuring two distinct EAR: 2 Springoo, sharing the same database
*/
public class TwoEarsLogicalModelCatalog extends BaseReferenceLogicalModelsCatalog {
protected static Logger logger = LoggerFactory.getLogger(com.francetelecom.clara.cloud.logicalmodel.samplecatalog.TwoEarsLogicalModelCatalog.class.getName());
public final String APP_CODE = "springoo";
@Override
public LogicalDeployment createLogicalModel(String logicalModelName, LogicalDeployment existingLDToUpdate) {
if (existingLDToUpdate == null) {
existingLDToUpdate = new LogicalDeployment();
}
// Execution Node 1
ProcessingNode jeeProcessing1 = createJeeProcessing(this, "TwoEarJEE_1", APP_CODE);
existingLDToUpdate.addExecutionNode(jeeProcessing1);
// Execution Node 2
ProcessingNode jeeProcessing2 = createJeeProcessing(this, "TwoEarJEE_2", APP_CODE);
existingLDToUpdate.addExecutionNode(jeeProcessing2);
// =============================================================
// == Create Common database elements
// =============================================================
LogicalRelationalService rds0 = createLogicalRelationalService(this, "TwoEarRds", "postgres-MyDataSource",
LogicalRelationalServiceSqlDialectEnum.POSTGRESQL_DEFAULT, 1000, APP_CODE);
existingLDToUpdate.addLogicalService(rds0);
jeeProcessing1.addLogicalServiceUsage(rds0, LogicalServiceAccessTypeEnum.NOT_APPLICABLE);
jeeProcessing2.addLogicalServiceUsage(rds0, LogicalServiceAccessTypeEnum.NOT_APPLICABLE);
// =============================================================
// == Create Elements for TwoEarJEE_1
// =============================================================
// Web GUI 1
LogicalWebGUIService web1 = createLogicalWebGuiService("TwoEarWebUi_1", APP_CODE, true, false, 1, 20);
existingLDToUpdate.addLogicalService(web1);
jeeProcessing1.addLogicalServiceUsage(web1, LogicalServiceAccessTypeEnum.NOT_APPLICABLE);
// =============================================================
// == Create Elements for TwoEarJEE_2
// =============================================================
// Web GUI 2
LogicalWebGUIService web2 = createLogicalWebGuiService("TwoEarWebUi_2", APP_CODE, false, false, 1, 20);
existingLDToUpdate.addLogicalService(web2);
jeeProcessing2.addLogicalServiceUsage(web2, LogicalServiceAccessTypeEnum.NOT_APPLICABLE);
return existingLDToUpdate;
}
@Override
public Map<String, String> getAppUrlsAndKeywords(URL baseUrl) {
HashMap<String, String> urls = new HashMap<String, String>();
if (baseUrl.toString().contains("springoo")) {
urls.put("/web/divers/choice.jsp", "springoo");
}
return urls;
}
@Override
public boolean isInstantiable() {
return true;
}
@Override
public String getAppDescription() {
return "TwoEarsSample description";
}
@Override
public String getAppCode() {
return "TwoEarsSampleCODE";
}
@Override
public String getAppLabel() {
return "TwoEarsSample";
}
@Override
public String getAppReleaseDescription() {
return "TwoEarsSample release description";
}
@Override
public String getAppReleaseVersion() {
return "G00R01";
}
}