public static Library createFromMavenIds(String groupId, String artifactId, String version) { return new Library(String.format(Project.MAVEN_KEY_FORMAT, groupId, artifactId), version); }
public Library(String key, String version) { setKey(key); this.version = version; }
Snapshot persistLibrary(Date analysisDate, Library library) { ResourceModel model = findOrCreateModel(library, null); model = session.save(model); // TODO to be removed library.setId(model.getId()); library.setUuid(model.getUuid()); library.setEffectiveKey(library.getKey()); Snapshot snapshot = findLibrarySnapshot(model.getId(), library.getVersion()); if (snapshot == null) { snapshot = new Snapshot(model, null); snapshot.setCreatedAtMs(dateToLong(analysisDate)); snapshot.setBuildDateMs(System.currentTimeMillis()); snapshot.setVersion(library.getVersion()); snapshot.setStatus(Snapshot.STATUS_PROCESSED); // see http://jira.codehaus.org/browse/SONAR-1850 // The qualifier must be LIB, even if the resource is TRK, because this snapshot has no measures. snapshot.setQualifier(Qualifiers.LIBRARY); snapshot = session.save(snapshot); } session.commit(); return snapshot; }
protected Resource toResource(final Project project, Artifact artifact, SensorContext context) { Project depWithBranch = Project.createFromMavenIds(artifact.getGroupId(), artifact.getArtifactId(), project.getBranch()); Resource result = context.getResource(depWithBranch); if (result == null || !((Project) result).getAnalysisVersion().equals(artifact.getBaseVersion())) { Library lib = Library.createFromMavenIds(artifact.getGroupId(), artifact.getArtifactId(), artifact.getBaseVersion()); index.addResource(lib); // Temporary hack since we need snapshot id to persist dependencies resourcePersister.persist(); result = context.getResource(lib); } return result; }
@Override public int hashCode() { int result = super.hashCode(); result = 31 * result + getKey().hashCode(); result = 31 * result + version.hashCode(); return result; }
private Resource toResource(Project project, InputDependency dependency, SensorContext context) { Project depProject = new Project(dependency.key(), project.getBranch(), dependency.key()); Resource result = context.getResource(depProject); if (result == null || !((Project) result).getAnalysisVersion().equals(dependency.version())) { Library lib = new Library(dependency.key(), dependency.version()); index.addResource(lib); // Temporary hack since we need snapshot id to persist dependencies resourcePersister.persist(); result = context.getResource(lib); } return result; }
@Override public void analyse(Project project, SensorContext context) { try { VisualStudioSolution solution = VisualUtils.getSolution(project); List<VisualStudioProject> projects = solution.getProjects(); for (VisualStudioProject vsProject : projects) { // TODO find a way to get dependencies associated to assemblies // CLRAssembly assembly = new CLRAssembly(vsProject); // Resource<?> savedAssembly = context.getResource(assembly); List<BinaryReference> binaryReferences = vsProject .getBinaryReferences(); for (BinaryReference binaryReference : binaryReferences) { Resource<?> lib = new Library(binaryReference.getAssemblyName(), binaryReference.getVersion()); Resource<?> savedLib = context.getResource(lib); if (savedLib == null) { context.saveResource(lib); savedLib = context.getResource(lib); } Dependency dependency = new Dependency(index.getProject(), savedLib); dependency.setUsage(binaryReference.getScope()); dependency.setWeight(1); context.saveDependency(dependency); } } } catch (DotNetProjectException e) { log.error("Error during binary dependency analysis", e); } }