Suche Datenquelle für lizenz-informationen

BlackViruZ

Aktives Mitglied
Hallo Meine Geehrten Kollegen ;-)

Hier eine Einleitung für den Hintergrund - Wers eilig hat bitte nach unten zur Fetten Überschrift springen ;-)
Hier mal ein etwas.. sagen wir.. weniger explizit programmatisches Problem :D
Ich schreibe derzeit für mein Unternehmen ein Maven 3 Plugin zur License Compliance welches folgendes macht:
Es löst die Abhängigkeiten eines Maven projekts während dem builds auf, versucht die verschiedenen Lizenzen der einzelnen Artefakte festzustellen, und gibt 'validiert' die lizenzen anschließend gegen die Infomation eines Dokuments (xml) welches die lizenzen in verschiedene Kategorien einteilt.
Kenner von Maven builds werden nun sagen "das gibt es schon" - da stimme ich euch zu - Es gibt bereits das "license-verifier" plugin von soebes.com, allerdings hat dieses plugin diverse Features nicht die wir brauchen.
Das Hauptfeature welches mein Plugin bietet ist einfache Erweiterbarkeit. So werden beispielsweise anstatt ausschließlich die lizenzen aus den POM files der verschiedenen Projekte zu entnehmen habe werden bei meinem Plugin potenziell mehrere Datenquellen nacheinander zur Rate gezogen um die Lizenzen festzustellen.



Nun für die tapferen, die es geschafft haben sich durch die Einleitung zu kämpfen (oder Sie übersprugen haben ^^) hier das Problem ;-):
Als eine der Quellen war (von meinen Vorgesetzten) aus die seite olex.openlogic.com genannt worden. Damals hies es, die Seite würde eine API zum zugriff auf die zugrundeliegende Datenbank anbieten - Was nicht der fall ist.
Daraufhin wollte ich via HTTP request die HTML antworten parsen. Das Problem hierbei: die Seite lädt.. sagen wir mal gelinde.. EXTREM viel dynamisch via javascript nach.. Habe mich bisher nie wirklich viel parsing von Webseiten beschäftigt und wollte fragen ob mir jemand helfen kann, eine methode zu finden festzustellen wie jetzt wenigstens der interessante content geladen wird, bzw mit was für einem aufruf ich zu diesem komme.

Alternativ wäre auch eine Möglichkeit einen anderen Webservice zu wählen, der mehr für Programmatische Bearbeitung geeignet ist. Ich habe ehrlich gesagt, dass gefühl, dass OpenLogic die OLEX Page bewusst ungeeignet designed hat.
Ich habe auch bereits versucht mit OpenLogic in Kontakt zu treten und einfach mal nachzufragen ob es Teil ihres Geschäftsmodell ist, oder ob man mir helfen kann. Leider kann ich als einzige Antwort bis jetzt Spam verzeichnen.
 
Zuletzt bearbeitet:

kama

Top Contributor
Hallo,

Kenner von Maven builds werden nun sagen "das gibt es schon" - da stimme ich euch zu - Es gibt bereits das "license-verifier" plugin von soebes.com, allerdings hat dieses plugin diverse Features nicht die wir brauchen.
Da wäre eine Anfrage bzw. ein Vorschlag für Erweiterungen oder eine Mitarbeit durchaus eine Alternative...weiterhin wäre ein Blick in die Roadmap hilfreich...

Weiterhin gibt es noch: Introduction

Das Hauptfeature welches mein Plugin bietet ist einfache Erweiterbarkeit.
Darüber kann man jetzt streiten was Du mit "einfache Erweiterbarkeit" meinst bzw. darunter verstehst...

So werden beispielsweise anstatt ausschließlich die lizenzen aus den POM files der verschiedenen Projekte zu entnehmen habe werden bei meinem Plugin potenziell mehrere Datenquellen nacheinander zur Rate gezogen um die Lizenzen festzustellen.
Die POM ist die primäre Quelle für solche Informationen (license Tag). Danach kann man ein LICENSE.txt file etc. im JAR selbst abfragen und dann kann man ja noch über eine Plugin Struktur nachdenkden die andere Dienste abfragt (hier wäre eine Idee wie so etwas aussieht durchaus hilfreich)...Die Frage die sich dabei stellt ist die Verläßlichkeit solcher Informationen die außerhalb der POM vorliegen...

...
Daraufhin wollte ich via HTTP request die HTML antworten parsen. Das Problem hierbei: die Seite lädt.. sagen wir mal gelinde.. EXTREM viel dynamisch via javascript nach.. Habe mich bisher nie wirklich viel parsing von Webseiten beschäftigt und wollte fragen ob mir jemand helfen kann, eine methode zu finden festzustellen wie jetzt wenigstens der interessante content geladen wird, bzw mit was für einem aufruf ich zu diesem komme.
Ich würde mir zuerst einmal gedanken machen, ob das rechtlich überhaupt zuläßig ist...

Alternativ wäre auch eine Möglichkeit einen anderen Webservice zu wählen, der mehr für Programmatische Bearbeitung geeignet ist. Ich habe ehrlich gesagt, dass gefühl, dass OpenLogic die OLEX Page bewusst ungeeignet designed hat.
Logischerweise die wollen geld verdienen...

Gruß
Karl Heinz Marbaise
 

BlackViruZ

Aktives Mitglied
Hallo Karl,

Wie Du vermutlich schon richtig geraten hast haben wir ja bereits einmal miteinander gesprochen ^^

Hallo,

Da wäre eine Anfrage bzw. ein Vorschlag für Erweiterungen oder eine Mitarbeit durchaus eine Alternative...weiterhin wäre ein Blick in die Roadmap hilfreich...

Weiterhin gibt es noch: Introduction

Hierbei kann ich nur wiederholen, dass ich nicht weiß, unter welcher Lizenz meine Arbeit später gehandhabt wird und wieweit es veröffentlicht wird.
Da ich in einer großen Firma arbeite schlagen solche Fragen oft große Wellen und es dauert eine Weile bis das Meer sich wieder beruhigt hat und man zu seiner Antwort kommt.. das ist ein bisschen wie in der griechischen Mythologie.. xD
Daher ist die Mitarbeit an diesem Projekt von meinerseite (zumindest im Arbeitszeitlichen Rahmen) leider nicht möglich.

Darüber kann man jetzt streiten was Du mit "einfache Erweiterbarkeit" meinst bzw. darunter verstehst...

Durchaus, es ist nicht meine Absicht deine Arbeit in irgendeiner Art und Weise zu kritisieren. Das Plugin an welchem Du arbeitest ist gut - keine Frage, aber wir benötigen halt ein paar zusätzliche Funktionen.

Daher wirst Du eventuell verstehen, dass Entscheidungsträger meiner Firma beschlossen haben fehlende Funktionalitäten selbst zu implementieren, statt auf das Fortschreiten eines Projektes zu warten.

Die POM ist die primäre Quelle für solche Informationen (license Tag). Danach kann man ein LICENSE.txt file etc. im JAR selbst abfragen und dann kann man ja noch über eine Plugin Struktur nachdenkden die andere Dienste abfragt (hier wäre eine Idee wie so etwas aussieht durchaus hilfreich)...Die Frage die sich dabei stellt ist die Verläßlichkeit solcher Informationen die außerhalb der POM vorliegen...

Nach dem derzeitigem Stand wird das POM file auch in meinem Projekt als Primäre Informationsquelle zur Rate gezogen. (Das Plugin ist quasi fast "fertig").
Daran die LICENSE.txt Files zur Rate zu ziehen hab ich noch nicht gedacht, gute Idee :)
Das Thema mit der Verlässlichkeit ist eine Unumgänliche Frage, daher wird bei meinem Ansatz die zur Rate gezogenen Informationsquelle bei der Ausgabe, so dass man deren Verlässlichkeit im zweifelsfalle selbst kontrollieren kann. Auch das ausschließen via Pluginkonfiguration von Informationsquellen ist in Planung.

Die Struktur sieht in meinem Plugin in etwa folgendermassen aus:
  • Ich laufe in einem vorgelagertem goal (nicht aggregate) durch den build durch und sammle alle Abhängikeiten in den verschiedenen modulen
  • Die Filter werden gemäß der Konfiguration initialisiert und in eine Liste geschrieben
  • Die verschiedenen "LiceneResolvers" werden gemäß der Konfiguration initialisiert und in eine Liste geschrieben - erster Resolver in der Liste ist standard mäßig der POM resolver
  • Die Resolver verfügen über eine Id, die später zur Rückverfolgung von der Auflösung da ist.
  • Nun wird über die Liste mit den Artifacten iteriert, dabei wird zunächst überprüft ob bereits ein Artifact mit der gleichen Id "resolved" wurde.
  • Ist dies der fall, werden die ersten beiden Punkte der DependencyTrail als zusätzliches Modul und direkte - nicht transitive abhängigkeit vom Projekt (von dem das Artifact abhängig ist) vermerkt.
  • Nachdem sichergestellt ist, dass es sich um ein bis jetzt noch unbekanntes Artifact handelt, wird über die Liste mit den LicenseResolvern solange iteriert, bis es keine weiteren LicenseResolver mehr gibt, oder das Artefact "resolved" wurde.
  • Dabei wird vermerkt durch welchen "resolver" das ganze geschehen ist.
  • Danach wird die neue Datenstruktur in einem Weiteren schritt in verschiedenen Ausgabeformaten gerendert (nach konfiguration) - bis ist nur XML und die Konsolen ausgabe implementiert (Konsolen ausgabe ist immer aktiv).


Wie gesagt ist nur der grobe plan wie mein Plugin das ganze handelt..

Ich würde mir zuerst einmal gedanken machen, ob das rechtlich überhaupt zuläßig ist...

Logischerweise die wollen geld verdienen...

Ja da habe ich auch schon meine Bedenken gehabt, konnte bis jetzt aber nichts widersprüchliches auf der Webseite finden.
Allerdings ist es wie gesagt auch nur eine der gewünschten Quellen - deswegen habe ich ja auch nach bekannten alternativen quellen gefragt :)

Freundliche Grüße,
Daniel
 
Zuletzt bearbeitet:

kama

Top Contributor
Hallo Daniel,

Karl Heinz ;-)

Wie Du vermutlich schon richtig geraten hast haben wir ja bereits einmal miteinander gesprochen ^^
war schon klar....

Hierbei kann ich nur wiederholen, dass ich nicht weiß, unter welcher Lizenz meine Arbeit später gehandhabt wird und wieweit es veröffentlicht wird.
Da ich in einer großen Firma arbeite schlagen solche Fragen oft große Wellen und es dauert eine Weile bis das Meer sich wieder beruhigt hat und man zu seiner Antwort kommt.. das ist ein bisschen wie in der griechischen Mythologie.. xD
Daher ist die Mitarbeit an diesem Projekt von meinerseite (zumindest im Arbeitszeitlichen Rahmen) leider nicht möglich.
Hm...Ich habe sehr gute Erfahrungen damit gemacht einfach meinen Vorgesetzten zu Fragen und habe bisher immer positive Antworten erhalten....Abgesehen davon ist ja die Frage, ob das Plugin auch unter die Gleiche Lizenz fällt wie das Ergebnis (sprich die Applikation)...

Durchaus, es ist nicht meine Absicht deine Arbeit in irgendeiner Art und Weise zu kritisieren. Das Plugin an welchem Du arbeitest ist gut - keine Frage, aber wir benötigen halt ein paar zusätzliche Funktionen.
Da habe ich mich eventuelle ein wenig unklar ausgedrückt....Ich vermisse halt ein paar konkrete Vorschläge ? Da hätte ich mir etwas gewünscht wie: "Es wäre toll, wenn da an der und der Stelle ein Interface gemacht würde, dann kann man das per DI erweitern" oder so etwas in der Art...

Daher wirst Du eventuell verstehen, dass Entscheidungsträger meiner Firma beschlossen haben fehlende Funktionalitäten selbst zu implementieren, statt auf das Fortschreiten eines Projektes zu warten.
Ich formuliere jetzt mal provokant: Wir wolllen alles umsonst aber nichts dafür bezahlen....kenne ich bei Entscheidungsträgern....

Gruß
Karl Heinz Marbaise
 

BlackViruZ

Aktives Mitglied

Hallo Karl Heinz - Sorry ^^

Hm...Ich habe sehr gute Erfahrungen damit gemacht einfach meinen Vorgesetzten zu Fragen und habe bisher immer positive Antworten erhalten....
Vorgesetzten habe ich bereits gefragt - er weiß es selbst noch nicht ;-)
Habe demnächst ein Meeting in größerer Runde, eventuell klären sich dann einige Fragen ;-)
Da habe ich mich eventuelle ein wenig unklar ausgedrückt....Ich vermisse halt ein paar konkrete Vorschläge ? Da hätte ich mir etwas gewünscht wie: "Es wäre toll, wenn da an der und der Stelle ein Interface gemacht würde, dann kann man das per DI erweitern" oder so etwas in der Art...
Konkrete Vorschläge, habe ich ja vorhin durch die grobe Arbeitsweise meines Projektes indirekt gemacht ^_^
Ich formuliere jetzt mal provokant: Wir wolllen alles umsonst aber nichts dafür bezahlen....kenne ich bei Entscheidungsträgern....
Das ist wohl weit verbreitet - kann ich aber nix für ^^

Nachdem wir jetzt den Konflikt etwas beleuchtet haben vielleicht doch noch mal zurück zum Thema - fallen vielleicht noch jmd irgendwelche Informationsquellen ein?
Eine Idee von unserer Seite ist noch das anlegen einer eigenen Datenbank/csv file/ ähnliches in dem Artifakte mit bekannten Lizenzen gelistet werden (sprich falls ein Artifakt nicht gefunden wurde wird es manuell nachgeguckt und dort eingetragen, damit es für andere Projekte / zukünftige builds dann bekannt ist).

Bei den LICENSE.txt files ist mir ein Problem eingefallen welches einer Lösung Bedarf - der Inhalt entspricht keinem speziellem format - sprich es gibt mMn 2 varianten - 1. man listet explizit welche LICENSE files bekannt sind und welcher Lizenz sie entsprechen oder 2. man versucht einen Parsing ansatz zu implementieren anhand oft verwendeter Lizenz-formate (was natürlich dann eine recht wage angelegenheit ist.. ^^)
Fällt jmd dazu eine bessere Idee ein?

--

Ich habe die Terms of Use von olex nochmal genauer angesehen, da ist eine recht wage formulierte Klausel mit Interlectual Property - das wird dann wohl auch den Entscheidungsträgern reichen diese informationsquelle aufzugeben ^^

MfG Daniel
 

BlackViruZ

Aktives Mitglied
Im vorraus: Sorry, dass ich mein Thema hiermit pushe, ich mag Doppelposts auch nicht, aber mein letzter Beitrag hier ist ja schon etwas angestaubt.

Ich habe noch (vorallem in Ausrichtung auf Zukünftige Spezifikationen) von anderer Stelle den tipp für spdx bekommen.
Hat schonmal jmd zufällig damit gearbeitet? Gibt es schon eine Plattform auf der SPDX am besten im RDF format getauscht werden?

MfG und danke
Daniel
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Suche nach String mit unbekannten characters Allgemeine Java-Themen 53
M Binäre Suche Allgemeine Java-Themen 6
M geometrische Suche Allgemeine Java-Themen 8
S Programm schreiben, das mir aufgrund von Schlagwörtern, die ich im Internet suche, relevante Themen sofort anzeigt. Allgemeine Java-Themen 1
I HTML / XHTML Seite nach Excel exportieren. Suche Lib Allgemeine Java-Themen 12
W Suche Ursache für NPE - woher kommt sie? (Hilfe beim Debugging) Allgemeine Java-Themen 19
W Collections Suche Collection, um Strings mit Indizees versehen Allgemeine Java-Themen 47
O Suche Scripter für alt:V Project! Allgemeine Java-Themen 0
D Suche Quellcode! Allgemeine Java-Themen 8
O Suche Unterstützung für ein OpenSource-Projekt (grafischer Editor) Allgemeine Java-Themen 13
B Bei Email: FW / AW... - Hilfe bei String suche Allgemeine Java-Themen 21
J Suche Alternative zu Jasper Reports Allgemeine Java-Themen 4
W Collections Suche etwas Sorted-List-Artiges...hat jemand eine Idee? Allgemeine Java-Themen 13
M Suche Alternative zu JFreeChart Allgemeine Java-Themen 11
S Warmup für Lineare-Suche mit Zeitmessung Allgemeine Java-Themen 2
K OOP Suche Hilfe + Erklärung für eine Hausaufgabe Allgemeine Java-Themen 1
B Suche nach einem Testprogramm für meine BA Allgemeine Java-Themen 0
D Objekt-Suche mit mehreren optionalen Parametern Allgemeine Java-Themen 6
A NetBeans Suche Programmierer für eine Belegarbeit Allgemeine Java-Themen 11
O Suche größeres Beispiel für WebserverAnwendung mit Java Allgemeine Java-Themen 2
G Google-Suche ist nicht auslesbar?! Allgemeine Java-Themen 18
M Suche aktuelle Apache Poi Bibliothek zum Einbinden in mein Programm Allgemeine Java-Themen 2
L Suche nach CalDav Server API Allgemeine Java-Themen 0
HarleyDavidson Best Practice Suche "Container" für Modulapplikationen Allgemeine Java-Themen 0
S Suche Konzept: Korrektheit des Aufrufers feststellen Allgemeine Java-Themen 7
KaffeeFan Methoden Suche Methode um Programm kurz warten zu lassen Allgemeine Java-Themen 22
B Suche geeignete Datenstruktur Allgemeine Java-Themen 5
L Erste Schritte Suche Java Wiki System? Allgemeine Java-Themen 5
L Suche Geräte für Java SE Embedded Allgemeine Java-Themen 0
S Rekursive Suche in einem Netz Allgemeine Java-Themen 5
F Über Java Google Suche nutzen Allgemeine Java-Themen 11
A Suche Android Programmierer Allgemeine Java-Themen 0
W Suche Framework zur Prüfung von IPv4 und IPv6 Allgemeine Java-Themen 2
A Java - Suche nach Datensatz mit DateChooser Allgemeine Java-Themen 0
S Pattern.Match Suche: For Schleife einbinden und in Liste schreiben Allgemeine Java-Themen 3
M Suche Framework/API für Monitoring-Anwendung Allgemeine Java-Themen 3
F Suche kostenlose GUI für Eclipse Allgemeine Java-Themen 10
H Suche mit Wildcards und boolschen Operatoren Allgemeine Java-Themen 4
B Suche passende Datenstruktur für 2 Einträge Allgemeine Java-Themen 19
A Binäre Suche im Array mit StackOverflowError Allgemeine Java-Themen 3
T Verkettete Suche Allgemeine Java-Themen 6
S RxTx - langsame Port suche Allgemeine Java-Themen 3
D Suche Matrix Libraries Allgemeine Java-Themen 11
S Suche Dependency Injection Container Allgemeine Java-Themen 6
J Suche: Tool zum Auffinden gleichnamiger Klassen (Name und Package gleich) in unteschiedlichen JARs Allgemeine Java-Themen 5
BinaryLogic Input/Output Suche Wörterbuch-Datei Einzahl/Mehrzahl Allgemeine Java-Themen 2
A Suche Algorithmus zum Erstellen eines planaren Graphen Allgemeine Java-Themen 5
D Suche Librarys ähnlich datatables.net + Login Allgemeine Java-Themen 3
Gossi Threads Suche ein (einfaches) Beispiel Allgemeine Java-Themen 5
P Erste Schritte Suche in ArrayList mit Maps Allgemeine Java-Themen 4
F Suche Performanceoptimierung bei Stringsortierung Allgemeine Java-Themen 51
J Lucene suche in Json (CouchDB) Allgemeine Java-Themen 2
X Suche Softwareimplementierung von Cryptographischen Algorithmen Allgemeine Java-Themen 3
S Suche Tipps für Einstieg in JavaCC Allgemeine Java-Themen 2
R Suche in logfiles mit Lucene / Solr Allgemeine Java-Themen 2
P Suche Datenstruktur Allgemeine Java-Themen 2
M Suche Java-Projekt zum Thema Elektrotechnik Allgemeine Java-Themen 6
F Suche Begriff Allgemeine Java-Themen 2
hdi Suche Icon-Sammlung Allgemeine Java-Themen 7
G Suche "richtiges" Framework/Library Allgemeine Java-Themen 14
slawaweis Suche Klassen für Event Managment und Time Allgemeine Java-Themen 2
P Probleme mit wikipedia quellcode zur binären Suche Allgemeine Java-Themen 6
C Suche Permutationsalgo Allgemeine Java-Themen 6
E Suche nach Foto-Dummy Allgemeine Java-Themen 8
B Suche Paket zum auslesen von Metadaten von Bildern. Allgemeine Java-Themen 4
N suche globale Tastenabfrage Allgemeine Java-Themen 6
P SUCHE: gute Geo Library (freeware) Allgemeine Java-Themen 2
P Suche performante PDF Library Allgemeine Java-Themen 20
data89 Bilder mit Java prüfen - suche dringend Hilfe Allgemeine Java-Themen 8
faetzminator Regex zur Suche von "value-losen" Attributen in HTML Tags Allgemeine Java-Themen 7
S Suche im JTree nach Neuaufbau Allgemeine Java-Themen 4
W Problem bei der Suche (binarySearch) vom deutschen Sonderzeichen "ß" im einem Array Allgemeine Java-Themen 6
D Suche nach passender Datenstruktur Allgemeine Java-Themen 4
S suche library die diagramme darstellen kann Allgemeine Java-Themen 2
T Suche Anhaltspunkt für plattformübergreifende, "unique machine id" ... Allgemeine Java-Themen 12
P WebSerive Suche Allgemeine Java-Themen 15
hdi Suche nach Begriff aus der Programmierung Allgemeine Java-Themen 11
X Suche Java Klasse die Feiertage berechnen kann Allgemeine Java-Themen 2
B suche Deutsche Übersetzung für neuste Eclipse Version Allgemeine Java-Themen 6
Daniel_L Suche nach ganzen Wörtern (wholeword) in Strings? Allgemeine Java-Themen 4
G Regex-Suche nach Worten Allgemeine Java-Themen 3
Antoras Suche Projektarbeit für Gruppe mit 3 Leuten Allgemeine Java-Themen 5
G Perfomante Suche in grosser Datei Allgemeine Java-Themen 6
T Suche Tool Allgemeine Java-Themen 11
D Suche sowas wie Map nur für mehrere Werte Allgemeine Java-Themen 13
D Suche Hilfe zum Rechnerübergreifenden Dateizugriff. Allgemeine Java-Themen 3
M suche speziellen Sortieralgorithmus Allgemeine Java-Themen 3
E javax.comm: Suche eine open source Alternative zu rxtx Allgemeine Java-Themen 8
J Suche regex-Pattern fuer Liste von Zahlen zwischen 0-100 Allgemeine Java-Themen 6
T Suche den großen Calendar Thread ! Allgemeine Java-Themen 2
P Suche Benis IP/Netzwerkadresse JTExtField Allgemeine Java-Themen 2
J Suche Doku um generischen Code zu erstellen. Allgemeine Java-Themen 9
G suche Property alternative Allgemeine Java-Themen 4
C Fehler im Quellcode. Suche in einem Baum Allgemeine Java-Themen 3
S Suche Pendant zu einem VB Befehl Allgemeine Java-Themen 2
T Suche gute JAVA Steuerelemente Allgemeine Java-Themen 2
V Suche RegEx zu (gelöstem) Problem Allgemeine Java-Themen 3
B Suche Browser-Control Allgemeine Java-Themen 4
G Suche Programmierumgebung mit Appletviewer Allgemeine Java-Themen 16
G Suche kostenlosen c++ to java converter. Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben