@Override public String toString() { FileModel rootFileModel = null; if (current != null) { try { rootFileModel = current.getRootFileModel(); } catch (NoSuchElementException e) { // Workaround for Ferma behavior rootFileModel = null; } } String checksum = rootFileModel == null ? null : StringUtils.substring(rootFileModel.getMD5Hash(), 0, 8); String name = rootFileModel == null ? current.getName() : rootFileModel.getFileName(); String projectInfo = current == null ? null : checksum + " " + name + " (" + current.getProjectType() + ')'; String strategyInfo = traversalStrategy == null ? null : traversalStrategy.getClass().getSimpleName(); return "Trav@" + this.hashCode() + "{cur: " + projectInfo + ", strategy: " + strategyInfo + ", prev: " + previous + '}'; }
@Override public String toString() { FileModel rootFileModel = null; if (current != null) { try { rootFileModel = current.getRootFileModel(); } catch (NoSuchElementException e) { // Workaround for Ferma behavior rootFileModel = null; } } String checksum = rootFileModel == null ? null : StringUtils.substring(rootFileModel.getMD5Hash(), 0, 8); String name = rootFileModel == null ? current.getName() : rootFileModel.getFileName(); String projectInfo = current == null ? null : checksum + " " + name + " (" + current.getProjectType() + ')'; String strategyInfo = traversalStrategy == null ? null : traversalStrategy.getClass().getSimpleName(); return "Trav@" + this.hashCode() + "{cur: " + projectInfo + ", strategy: " + strategyInfo + ", prev: " + previous + '}'; }
/** * Tries to guess the packaging of the archive - whether it's an EAR, WAR, JAR. * Maybe not needed as we can rely on the suffix? */ private static String guessPackaging(ProjectModel projectModel) { String projectType = projectModel.getProjectType(); if (projectType != null) return projectType; LOG.warning("WINDUP-983 getProjectType() returned null for: " + projectModel.getRootFileModel().getPrettyPath()); String suffix = StringUtils.substringAfterLast(projectModel.getRootFileModel().getFileName(), "."); if ("jar war ear sar har ".contains(suffix+" ")){ projectModel.setProjectType(suffix); // FIXME: Remove when WINDUP-983 is fixed. return suffix; } // Should we try something more? Used APIs? What if it's a source? return "unknown"; }
/** * Tries to guess the packaging of the archive - whether it's an EAR, WAR, JAR. * Maybe not needed as we can rely on the suffix? */ private static String guessPackaging(ProjectModel projectModel) { String projectType = projectModel.getProjectType(); if (projectType != null) return projectType; LOG.warning("WINDUP-983 getProjectType() returned null for: " + projectModel.getRootFileModel().getPrettyPath()); String suffix = StringUtils.substringAfterLast(projectModel.getRootFileModel().getFileName(), "."); if ("jar war ear sar har ".contains(suffix+" ")){ projectModel.setProjectType(suffix); // FIXME: Remove when WINDUP-983 is fixed. return suffix; } // Should we try something more? Used APIs? What if it's a source? return "unknown"; }
@Override public void perform(GraphRewrite event, EvaluationContext context) { List<FileModel> inputPaths = WindupConfigurationService.getConfigurationModel(event.getGraphContext()) .getInputPaths(); if (inputPaths.size() > 1) { createGlobalAppDependencyGraphReport(event.getGraphContext()); } inputPaths.stream() .filter(inputPath -> !ProjectModel.TYPE_VIRTUAL.equals(inputPath.getProjectModel().getProjectType())) .forEach(inputPath -> createSingleAppDependencyGraphReport(event.getGraphContext(), inputPath.getProjectModel())); }
@Override public void perform(GraphRewrite event, EvaluationContext context) { List<FileModel> inputPaths = WindupConfigurationService.getConfigurationModel(event.getGraphContext()) .getInputPaths(); if (inputPaths.size() > 1) { createGlobalAppDependencyGraphReport(event.getGraphContext()); } inputPaths.stream() .filter(inputPath -> !ProjectModel.TYPE_VIRTUAL.equals(inputPath.getProjectModel().getProjectType())) .forEach(inputPath -> createSingleAppDependencyGraphReport(event.getGraphContext(), inputPath.getProjectModel())); }
static Kind getKind(ProjectModel projectModel) if (projectModel.getProjectType() == null) projectType = projectModel.getProjectType();
/** * Adds the dependencies typical for particular deployment types. * This is not accurate and doesn't cover the real needs of the project. * Basically it's just to have "something" for the initial implementation. */ private boolean addDeploymentTypeBasedDependencies(ProjectModel projectModel, Pom modulePom) { if (projectModel.getProjectType() == null) return true; switch (projectModel.getProjectType()){ case "ear": break; case "war": modulePom.getDependencies().add(new SimpleDependency(Dependency.Role.API, ApiDependenciesData.DEP_API_SERVLET_31)); break; case "ejb": modulePom.getDependencies().add(new SimpleDependency(Dependency.Role.API, ApiDependenciesData.DEP_API_EJB_32)); modulePom.getDependencies().add(new SimpleDependency(Dependency.Role.API, ApiDependenciesData.DEP_API_CDI)); modulePom.getDependencies().add(new SimpleDependency(Dependency.Role.API, ApiDependenciesData.DEP_API_JAVAX_ANN)); break; case "ejb-client": modulePom.getDependencies().add(new SimpleDependency(Dependency.Role.API, ApiDependenciesData.DEP_API_EJB_CLIENT)); break; } return false; }
/** * Adds the dependencies typical for particular deployment types. * This is not accurate and doesn't cover the real needs of the project. * Basically it's just to have "something" for the initial implementation. */ private boolean addDeploymentTypeBasedDependencies(ProjectModel projectModel, Pom modulePom) { if (projectModel.getProjectType() == null) return true; switch (projectModel.getProjectType()){ case "ear": break; case "war": modulePom.getDependencies().add(new SimpleDependency(Dependency.Role.API, ApiDependenciesData.DEP_API_SERVLET_31)); break; case "ejb": modulePom.getDependencies().add(new SimpleDependency(Dependency.Role.API, ApiDependenciesData.DEP_API_EJB_32)); modulePom.getDependencies().add(new SimpleDependency(Dependency.Role.API, ApiDependenciesData.DEP_API_CDI)); modulePom.getDependencies().add(new SimpleDependency(Dependency.Role.API, ApiDependenciesData.DEP_API_JAVAX_ANN)); break; case "ejb-client": modulePom.getDependencies().add(new SimpleDependency(Dependency.Role.API, ApiDependenciesData.DEP_API_EJB_CLIENT)); break; } return false; }
static Kind getKind(ProjectModel projectModel) if (projectModel.getProjectType() == null) projectType = projectModel.getProjectType();
if (application != null && ProjectModel.TYPE_VIRTUAL.equals(application.getProjectType())) return; .equals(fileModel.getProjectModel().getProjectType())) .forEach(fileModel -> { DependencyGraphItem analyzedApplicationDependencyGraphItem = new DependencyGraphItem(
if (application != null && ProjectModel.TYPE_VIRTUAL.equals(application.getProjectType())) return; .equals(fileModel.getProjectModel().getProjectType())) .forEach(fileModel -> { DependencyGraphItem analyzedApplicationDependencyGraphItem = new DependencyGraphItem(