Java tutorial
/* * Copyright Bosch Software Innovations GmbH, 2017. * Part of the SW360 Portal Project. * * SPDX-License-Identifier: EPL-1.0 * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html */ package org.eclipse.sw360.rest.resourceserver.vulnerability; import java.util.List; import org.apache.thrift.TException; import org.apache.thrift.protocol.TCompactProtocol; import org.apache.thrift.protocol.TProtocol; import org.apache.thrift.transport.THttpClient; import org.apache.thrift.transport.TTransportException; import org.eclipse.sw360.datahandler.permissions.VulnerabilityPermissions; import org.eclipse.sw360.datahandler.thrift.users.User; import org.eclipse.sw360.datahandler.thrift.vulnerabilities.Vulnerability; import org.eclipse.sw360.datahandler.thrift.vulnerabilities.VulnerabilityDTO; import org.eclipse.sw360.datahandler.thrift.vulnerabilities.VulnerabilityService; import org.eclipse.sw360.datahandler.thrift.vulnerabilities.VulnerabilityWithReleaseRelations; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @Service @Slf4j @RequiredArgsConstructor(onConstructor = @__(@Autowired)) public class Sw360VulnerabilityService { @Value("${sw360.thrift-server-url:http://localhost:8080}") private String thriftServerUrl; public List<Vulnerability> getVulnerabilities(User sw360User) { try { VulnerabilityService.Iface sw360VulnerabilityClient = getThriftVulnerabilityClient(); return sw360VulnerabilityClient.getVulnerabilities(sw360User); } catch (TException e) { throw new RuntimeException(e); } } public Vulnerability getVulnerabilityByExternalId(String externalId, User sw360User) { try { VulnerabilityService.Iface sw360VulnerabilityClient = getThriftVulnerabilityClient(); return sw360VulnerabilityClient.getVulnerabilityByExternalId(externalId, sw360User); } catch (TException e) { throw new RuntimeException(e); } } public Vulnerability getVulnerabilityWithReleaseRelationsByExternalId(String externalId, User sw360User) { try { VulnerabilityService.Iface sw360VulnerabilityClient = getThriftVulnerabilityClient(); final VulnerabilityWithReleaseRelations vulWithRel = sw360VulnerabilityClient .getVulnerabilityWithReleaseRelationsByExternalId(externalId, sw360User); return vulWithRel.getVulnerability(); } catch (TException e) { throw new RuntimeException(e); } } public List<VulnerabilityDTO> getVulnerabilitiesByReleaseId(String releaseId, User sw360User) { try { VulnerabilityService.Iface sw360VulnerabilityClient = getThriftVulnerabilityClient(); return sw360VulnerabilityClient.getVulnerabilitiesByReleaseId(releaseId, sw360User); } catch (TException e) { throw new RuntimeException(e); } } public List<VulnerabilityDTO> getVulnerabilitiesByProjectId(String projectId, User sw360User) { try { VulnerabilityService.Iface sw360VulnerabilityClient = getThriftVulnerabilityClient(); return sw360VulnerabilityClient.getVulnerabilitiesByProjectId(projectId, sw360User); } catch (TException e) { throw new RuntimeException(e); } } private VulnerabilityService.Iface getThriftVulnerabilityClient() throws TTransportException { THttpClient thriftClient = new THttpClient(thriftServerUrl + "/vulnerabilities/thrift"); TProtocol protocol = new TCompactProtocol(thriftClient); return new VulnerabilityService.Client(protocol); } }