private String getCIJobPath(ApplicationInfo appInfo) { StringBuilder builder = new StringBuilder(Utility.getProjectHome()); builder.append(appInfo.getAppDirName()); builder.append(File.separator); builder.append(FOLDER_DOT_PHRESCO); builder.append(File.separator); builder.append(CI_JOB_INFO_NAME); return builder.toString(); }
@Override public void postFeatureConfiguration( ApplicationInfo appInfo, List<Configuration> configs, String featureName) throws PhrescoException { try { String propertyValue = getPropertyValue(appInfo, Constants.POM_PROP_KEY_SQL_FILE_DIR); File featureManifest = new File( Utility.getProjectHome() + appInfo.getAppDirName() + getThirdPartyFolder(appInfo) + File.separator + featureName + File.separator + XML); File featureSqlDir = new File(Utility.getProjectHome() + appInfo.getAppDirName() + propertyValue); if (CollectionUtils.isNotEmpty(configs)) { String envName = configs.get(0).getEnvName(); storeConfigObj(configs, featureManifest, featureSqlDir, envName); } } catch (Exception e) { throw new PhrescoException(e); } }
@Override public PossibleValues getValues(Map<String, Object> map) throws IOException, ParserConfigurationException, SAXException, ConfigurationException, PhrescoException { String rootModulePath = ""; String subModuleName = ""; PossibleValues possibleValues = new PossibleValues(); ApplicationInfo applicationInfo = (ApplicationInfo) map.get(KEY_APP_INFO); String rootModule = (String) map.get(KEY_ROOT_MODULE); if (StringUtils.isNotEmpty(rootModule)) { rootModulePath = Utility.getProjectHome() + rootModule; subModuleName = applicationInfo.getAppDirName(); } else { rootModulePath = Utility.getProjectHome() + applicationInfo.getAppDirName(); } String buildInfoPath = getBuildInfoPath(rootModulePath, subModuleName).toString(); List<BuildInfo> buildInfos = Utility.getBuildInfos(new File(buildInfoPath)); if (buildInfos != null) { for (BuildInfo buildInfo : buildInfos) { Value value = new Value(); value.setValue(Integer.toString(buildInfo.getBuildNo())); String dependency = getDependency(buildInfo.getBuildNo(), rootModulePath, subModuleName); if (!StringUtils.isEmpty(dependency)) { value.setDependency(dependency); } possibleValues.getValue().add(value); } } return possibleValues; }
private List<String> createAppInfoIds(ProjectInfo projectInfo) { List<ApplicationInfo> appInfos = projectInfo.getAppInfos(); List<String> appInfoIds = new ArrayList<String>(); for (ApplicationInfo applicationInfo : appInfos) { appInfoIds.add(applicationInfo.getId()); } return appInfoIds; }
@Override public void postUpdate( ApplicationInfo appInfo, List<ArtifactGroup> artifactGroups, List<ArtifactGroup> deletedFeatures) throws PhrescoException { File pomFile = new File( Utility.getProjectHome() + appInfo.getAppDirName() + File.separator + Constants.POM_NAME); ProjectUtils projectUtils = new ProjectUtils(); projectUtils.deletePluginExecutionFromPom(pomFile); if (CollectionUtils.isNotEmpty(deletedFeatures)) { projectUtils.removeExtractedFeatures(appInfo, deletedFeatures); } if (CollectionUtils.isNotEmpty(artifactGroups)) { projectUtils.updatePOMWithPluginArtifact(pomFile, artifactGroups); excludeModule(appInfo, artifactGroups); } BufferedReader breader = projectUtils.ExtractFeature(appInfo); try { String line = ""; while ((line = breader.readLine()) != null) { if (line.startsWith("[ERROR]")) { System.err.println(line); } } } catch (IOException e) { throw new PhrescoException(e); } }
private void updateDrupalVersion(File path, ApplicationInfo info) throws PhrescoException { try { File xmlFile = new File(path, Constants.POM_NAME); PomProcessor processor = new PomProcessor(xmlFile); String selectedVersion = info.getTechInfo().getVersion(); processor.setProperty(Constants.DRUPAL_VERSION, selectedVersion); processor.save(); } catch (PhrescoPomException e) { throw new PhrescoException(e); } }
@Override public void postConfiguration(ApplicationInfo appInfo, List<Configuration> configurations) throws PhrescoException { String envName = configurations.get(0).getEnvName(); String featureName = configurations.get(0).getProperties().getProperty(Constants.FEATURE_NAME); String propertyValue = getPropertyValue(appInfo, Constants.POM_PROP_KEY_SQL_FILE_DIR); File featureManifest = new File( Utility.getProjectHome() + appInfo.getAppDirName() + getThirdPartyFolder(appInfo) + File.separator + featureName + File.separator + XML); File featureSqlDir = new File(Utility.getProjectHome() + appInfo.getAppDirName() + propertyValue); if (StringUtils.isNotEmpty(featureName)) { storeConfigObj(configurations, featureManifest, featureSqlDir, envName); } }
@Override public List<Configuration> preConfiguration( ApplicationInfo appInfo, String featureName, String envName) throws PhrescoException { File featureManifest = new File( Utility.getProjectHome() + appInfo.getAppDirName() + getThirdPartyFolder(appInfo) + File.separator + featureName + File.separator + XML); List<Configuration> configs = getConfigObjFromXml(featureManifest.getPath()); return configs; }
private void excludeModule(ApplicationInfo appInfo, List<ArtifactGroup> artifactGroups) throws PhrescoException { try { File projectPath = new File( Utility.getProjectHome() + File.separator + appInfo.getAppDirName() + File.separator + Constants.POM_NAME); PomProcessor processor = new PomProcessor(projectPath); StringBuilder exclusionStringBuff = new StringBuilder(); StringBuilder exclusionValueBuff = new StringBuilder(); if (CollectionUtils.isEmpty(artifactGroups)) { return; } for (ArtifactGroup artifactGroup : artifactGroups) { List<CoreOption> appliesTo = artifactGroup.getAppliesTo(); for (CoreOption coreOption : appliesTo) { if (coreOption.isCore()) { exclusionValueBuff.append(artifactGroup.getName().toLowerCase()); exclusionValueBuff.append(","); exclusionStringBuff.append("**\\"); exclusionStringBuff.append(artifactGroup.getName().toLowerCase()); exclusionStringBuff.append("\\**"); exclusionStringBuff.append(","); } } } String exclusionValue = exclusionStringBuff.toString(); if (exclusionValue.lastIndexOf(',') != -1) { exclusionValue = exclusionValue.substring(0, exclusionValue.lastIndexOf(',')); } String exclusiontoolValue = exclusionValueBuff.toString(); if (exclusiontoolValue.lastIndexOf(',') != -1) { exclusiontoolValue = exclusiontoolValue.substring(0, exclusiontoolValue.lastIndexOf(',')); } processor.setProperty("sonar.exclusions", exclusionValue); processor.setProperty("sonar.phpDepend.argumentLine", "--ignore=" + exclusiontoolValue); processor.setProperty("sonar.phpPmd.argumentLine", "--exclude" + exclusiontoolValue); processor.save(); } catch (PhrescoPomException e) { throw new PhrescoException(e); } }
private String getThirdPartyFolder(ApplicationInfo appInfo) throws PhrescoException { File pomPath = new File( Utility.getProjectHome() + appInfo.getAppDirName() + File.separator + Constants.POM_NAME); try { PomProcessor processor = new PomProcessor(pomPath); String property = processor.getProperty(Constants.POM_PROP_KEY_MODULE_SOURCE_DIR); if (StringUtils.isNotEmpty(property)) { return property; } } catch (PhrescoPomException e) { throw new PhrescoException(e); } return ""; }
private String getPropertyValue(ApplicationInfo appInfo, String propertyKey) throws PhrescoException { File pomPath = new File( Utility.getProjectHome() + appInfo.getAppDirName() + File.separator + Constants.POM_NAME); try { PomProcessor processor = new PomProcessor(pomPath); String property = processor.getProperty(propertyKey); if (StringUtils.isNotEmpty(property)) { return property; } } catch (PhrescoPomException e) { throw new PhrescoException(e); } return ""; }
@Override public void postCreate(ApplicationInfo appInfo) throws PhrescoException { File path = new File(Utility.getProjectHome() + appInfo.getAppDirName()); updateDrupalVersion(path, appInfo); }
private static ApplicationInfo getApplicationInfo() { ApplicationInfo info = new ApplicationInfo(); info.setAppDirName("TestProject"); info.setCode("TestProject"); info.setId("TestProject"); info.setCustomerIds(Collections.singletonList("photon")); info.setEmailSupported(false); info.setPhoneEnabled(false); info.setTabletEnabled(false); info.setDescription("Simple java web service Project"); info.setHelpText("Help"); info.setName("TestProject"); TechnologyInfo techInfo = new TechnologyInfo(); techInfo.setId("tech-php"); info.setTechInfo(techInfo); info.setPilot(false); info.setUsed(false); info.setDisplayName("TestProject"); info.setSelectedJSLibs(Collections.singletonList("99aa3901-a088-4142-8158-000f1e80f1bf")); info.setVersion("1.0"); return info; }