use of org.eclipse.sw360.datahandler.thrift.vendors.Vendor in project sw360portal by sw360.
the class ReleaseSummary method makeSummary.
@Override
public List<Release> makeSummary(SummaryType type, Collection<Release> fullDocuments) {
if (fullDocuments == null)
return Collections.emptyList();
Set<String> vendorIds = fullDocuments.stream().map(Release::getVendorId).filter(Objects::nonNull).filter(s -> !s.isEmpty()).collect(Collectors.toSet());
Map<String, Vendor> vendorById = ThriftUtils.getIdMap(vendorRepository.get(vendorIds));
List<Release> documents = new ArrayList<>(fullDocuments.size());
for (Release fullDocument : fullDocuments) {
Release document = summary(type, fullDocument, vendorById::get);
if (document != null)
documents.add(document);
}
return documents;
}
use of org.eclipse.sw360.datahandler.thrift.vendors.Vendor in project sw360portal by sw360.
the class ReleaseSummary method summary.
protected Release summary(SummaryType type, Release document, Function<String, Vendor> vendorProvider) {
Release copy = new Release();
if (type == SummaryType.DETAILED_EXPORT_SUMMARY) {
setDetailedExportSummaryFields(document, copy);
} else {
setShortSummaryFields(document, copy);
if (type != SummaryType.SHORT) {
setAdditionalFieldsForSummariesOtherThanShortAndDetailedExport(document, copy);
}
}
if (document.isSetVendorId()) {
final String vendorId = document.getVendorId();
if (!Strings.isNullOrEmpty(vendorId)) {
Vendor vendor = vendorProvider.apply(vendorId);
copy.setVendor(vendor);
}
}
return copy;
}
use of org.eclipse.sw360.datahandler.thrift.vendors.Vendor in project sw360portal by sw360.
the class ComponentDatabaseHandlerTest method setUp.
@Before
public void setUp() throws Exception {
assertTestString(dbName);
assertTestString(attachmentsDbName);
// Set up vendors
vendors = new HashMap<>();
vendors.put("V1", new Vendor().setId("V1").setShortname("Microsoft").setFullname("Microsoft Corporation").setUrl("http://www.microsoft.com"));
vendors.put("V2", new Vendor().setId("V2").setShortname("Apache").setFullname("The Apache Software Foundation").setUrl("http://www.apache.org"));
vendors.put("V3", new Vendor().setId("V3").setShortname("Oracle").setFullname("Oracle Corporation Inc").setUrl("http://www.oracle.com"));
components = new ArrayList<>();
Component component1 = new Component().setId("C1").setName("component1").setDescription("d1").setCreatedBy(email1).setMainLicenseIds(new HashSet<>(Arrays.asList("lic1"))).setCreatedOn("2017-07-20");
component1.addToReleaseIds("R1A");
component1.addToReleaseIds("R1B");
components.add(component1);
Component component2 = new Component().setId("C2").setName("component2").setDescription("d2").setCreatedBy(email2).setMainLicenseIds(new HashSet<>(Arrays.asList("lic2"))).setCreatedOn("2017-07-21");
component2.addToReleaseIds("R2A");
component2.addToReleaseIds("R2B");
component2.addToReleaseIds("R2C");
components.add(component2);
Component component3 = new Component().setId("C3").setName("component3").setDescription("d3").setCreatedBy(email1).setMainLicenseIds(new HashSet<>(Arrays.asList("lic3"))).setCreatedOn("2017-07-22");
component3.addToSubscribers(email1);
component3.addToLanguages("E");
components.add(component3);
releases = new ArrayList<>();
Release release1a = new Release().setId("R1A").setComponentId("C1").setName("component1").setVersion("releaseA").setCreatedBy(email1).setVendorId("V1");
releases.add(release1a);
Release release1b = new Release().setId("R1B").setComponentId("C1").setName("component1").setVersion("releaseB").setCreatedBy(email2).setVendorId("V2");
release1b.setEccInformation(new EccInformation().setAL("AL"));
release1b.addToSubscribers(email1);
releases.add(release1b);
Release release2a = new Release().setId("R2A").setComponentId("C2").setName("component2").setVersion("releaseA").setCreatedBy(email1).setVendorId("V3");
releases.add(release2a);
Release release2b = new Release().setId("R2B").setComponentId("C2").setName("component2").setVersion("releaseB").setCreatedBy(email2).setVendorId("V1");
releases.add(release2b);
release2b.addToSubscribers(email2);
Release release2c = new Release().setId("R2C").setComponentId("C2").setName("component2").setVersion("releaseC").setCreatedBy(email1).setVendorId("V2");
releases.add(release2c);
// Create the database
TestUtils.createDatabase(DatabaseSettings.getConfiguredHttpClient(), dbName);
// Prepare the database
DatabaseConnector databaseConnector = new DatabaseConnector(DatabaseSettings.getConfiguredHttpClient(), dbName);
for (Vendor vendor : vendors.values()) {
databaseConnector.add(vendor);
}
for (Component component : components) {
databaseConnector.add(component);
}
for (Release release : releases) {
databaseConnector.add(release);
}
componentMap = ThriftUtils.getIdMap(components);
releaseMap = ThriftUtils.getIdMap(releases);
// Prepare the handler
handler = new ComponentDatabaseHandler(DatabaseSettings.getConfiguredHttpClient(), dbName, attachmentsDbName, moderator, releaseModerator);
}
use of org.eclipse.sw360.datahandler.thrift.vendors.Vendor in project sw360portal by sw360.
the class ProjectDatabaseHandlerTest method testGetLinkedProjects.
@Test
public void testGetLinkedProjects() throws Exception {
// we wrap the potentially infinite loop in an executor
final ExecutorService service = Executors.newSingleThreadExecutor();
Project project = handler.getProjectById("P1", user);
final Future<List<ProjectLink>> completionFuture = service.submit(() -> handler.getLinkedProjects(project, true, user));
service.shutdown();
service.awaitTermination(10, TimeUnit.SECONDS);
final List<ProjectLink> linkedProjects = completionFuture.get();
ReleaseLink releaseLinkR1A = new ReleaseLink("R1A", "vendor", "component1", "releaseA", "vendor component1 releaseA", false).setReleaseRelationship(ReleaseRelationship.REFERRED).setMainlineState(MainlineState.MAINLINE).setNodeId("R1A").setComponentType(ComponentType.OSS);
ReleaseLink releaseLinkR1B = new ReleaseLink("R1B", "vendor", "component1", "releaseB", "vendor component1 releaseB", false).setReleaseRelationship(ReleaseRelationship.REFERRED).setMainlineState(MainlineState.MAINLINE).setNodeId("R1B").setComponentType(ComponentType.OSS);
ReleaseLink releaseLinkR2A = new ReleaseLink("R2A", "vendor", "component2", "releaseA", "vendor component2 releaseA", false).setReleaseRelationship(ReleaseRelationship.REFERRED).setMainlineState(MainlineState.MAINLINE).setNodeId("R2A").setComponentType(ComponentType.COTS);
ReleaseLink releaseLinkR2B = new ReleaseLink("R2B", "vendor", "component2", "releaseB", "vendor component2 releaseB", false).setReleaseRelationship(ReleaseRelationship.REFERRED).setMainlineState(MainlineState.MAINLINE).setNodeId("R2B").setComponentType(ComponentType.COTS);
ProjectLink link3 = new ProjectLink("P3", "project3").setRelation(ProjectRelationship.REFERRED).setNodeId("P3").setParentNodeId("P2").setProjectType(ProjectType.CUSTOMER).setState(ProjectState.ACTIVE).setTreeLevel(2).setLinkedReleases(Arrays.asList(releaseLinkR2A, releaseLinkR2B)).setSubprojects(Collections.emptyList());
ProjectLink link4 = new ProjectLink("P4", "project4").setRelation(ProjectRelationship.CONTAINED).setNodeId("P4").setParentNodeId("P2").setProjectType(ProjectType.CUSTOMER).setState(ProjectState.ACTIVE).setTreeLevel(2).setSubprojects(Collections.emptyList());
ProjectLink link2 = new ProjectLink("P2", "project2").setRelation(ProjectRelationship.CONTAINED).setNodeId("P2").setParentNodeId("P1").setProjectType(ProjectType.CUSTOMER).setState(ProjectState.ACTIVE).setTreeLevel(1).setLinkedReleases(Arrays.asList(releaseLinkR1A, releaseLinkR1B)).setSubprojects(Arrays.asList(link3, link4));
ProjectLink link1 = new ProjectLink("P1", "project1").setRelation(ProjectRelationship.UNKNOWN).setNodeId("P1").setProjectType(ProjectType.CUSTOMER).setState(ProjectState.ACTIVE).setTreeLevel(0).setSubprojects(Arrays.asList(link2));
stripRandomPartsOfNodeIds(linkedProjects);
assertThat(linkedProjects, contains(link1));
}
use of org.eclipse.sw360.datahandler.thrift.vendors.Vendor in project sw360portal by sw360.
the class ComponentPortlet method fillVendor.
private void fillVendor(Release release) throws TException {
VendorService.Iface client = thriftClients.makeVendorClient();
if (release.isSetVendorId()) {
Vendor vendor = client.getByID(release.getVendorId());
release.setVendor(vendor);
}
}
Aggregations