Blog from March, 2022

Problem raised on PTL meeting, I was to create a ticket to LF IT but went with writing a simple script to actually gather manifests from a set of ONAP images.

The goal of this page is to ahve a public place where progress of creating best practices for package manifests to contain usefull information is tracked.


Some of the stuff that I feel should be there:

  • uniquely identify the package (name, semver version), from what it was build (e.g. git url + commit sha)
  • contain license tag and license file (in the package not in manifest)
  • we should handle copyrights too- I'm unsure how those should be published (maybe there is some java/maven way im not aware of)

We already do have all the information available at hand, it just doesn't get transferred to jar packages.

Image list that was taken for analysis, I think it gives representable sample but if someone feels that some other images should be included, let me know I'll re-run this.


$ cat onap-dockers-sample
nexus3.onap.org:10001/onap/aai-graphadmin:1.9.2
nexus3.onap.org:10001/onap/aai-resources:1.9.3
nexus3.onap.org:10001/onap/aai-schema-service:1.9.3
nexus3.onap.org:10001/onap/aai-traversal:1.9.3
nexus3.onap.org:10001/onap/babel:1.9.2
nexus3.onap.org:10001/onap/ccsdk-blueprintsprocessor:1.2.1
nexus3.onap.org:10001/onap/ccsdk-cds-ui-server:1.2.1
nexus3.onap.org:10001/onap/ccsdk-commandexecutor:1.2.1
nexus3.onap.org:10001/onap/ccsdk-py-executor:1.2.1
nexus3.onap.org:10001/onap/ccsdk-sdclistener:1.2.1
nexus3.onap.org:10001/onap/dmaap/datarouter-node:2.1.9
nexus3.onap.org:10001/onap/dmaap/datarouter-prov:2.1.9
nexus3.onap.org:10001/onap/dmaap/dmaap-mr:1.3.0
nexus3.onap.org:10001/onap/model-loader:1.9.1
nexus3.onap.org:10001/onap/sdc-backend-all-plugins:1.9.5
nexus3.onap.org:10001/onap/sdc-backend-init:1.9.5
nexus3.onap.org:10001/onap/sdc-frontend:1.9.5
nexus3.onap.org:10001/onap/sdc-helm-validator:1.3.0
nexus3.onap.org:10001/onap/sdc-onboard-backend:1.9.5
nexus3.onap.org:10001/onap/sdc-workflow-backend:1.7.0
nexus3.onap.org:10001/onap/sdc-workflow-frontend:1.7.0
nexus3.onap.org:10001/onap/so/api-handler-infra:1.9.2
nexus3.onap.org:10001/onap/so/bpmn-infra:1.9.2
nexus3.onap.org:10001/onap/so/catalog-db-adapter:1.9.2
nexus3.onap.org:10001/onap/so/openstack-adapter:1.9.2
nexus3.onap.org:10001/onap/so/request-db-adapter:1.9.2
nexus3.onap.org:10001/onap/so/sdc-controller:1.9.2
nexus3.onap.org:10001/onap/so/sdnc-adapter:1.9.2
nexus3.onap.org:10001/onap/so/so-admin-cockpit:1.8.2
nexus3.onap.org:10001/onap/so/so-cnf-adapter:1.9.2
nexus3.onap.org:10001/onap/so/so-etsi-nfvo-ns-lcm:1.8.2
nexus3.onap.org:10001/onap/so/so-etsi-sol003-adapter:1.8.2
nexus3.onap.org:10001/onap/so/so-etsi-sol005-adapter:1.8.3
nexus3.onap.org:10001/onap/so/so-nssmf-adapter:1.9.1
nexus3.onap.org:10001/onap/so/so-oof-adapter:1.8.3
nexus3.onap.org:10001/onap/vid:8.0.2


All the manifests for all the jars found in the images listed above are are attached below (directories correspond to images with /  switched to _  , manifests have the same name as jars in the image but with -manifest suffix)

manifests.tar


Example manifests for aai-graphadmin

nexus3.onap.org:10001_onap_aai-graphadmin:1.9.2
$ cat *-manifest
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Built-By: jenkins
Start-Class: org.onap.aai.GraphAdminApp
Spring-Boot-Classes: BOOT-INF/classes/
Spring-Boot-Lib: BOOT-INF/lib/
Spring-Boot-Version: 1.5.21.RELEASE
Created-By: Apache Maven 3.5.4
Build-Jdk: 1.8.0_292
Main-Class: org.springframework.boot.loader.PropertiesLauncher

Manifest-Version: 1.0
Created-By: 1.8.0_212 (IcedTea)

Manifest-Version: 1.0
CLDR-Version: 21.0.1
Created-By: 1.8.0_212 (IcedTea)

Manifest-Version: 1.0
Created-By: 1.8.0_212 (IcedTea)

Manifest-Version: 1.0
Created-By: 1.8.0_212 (IcedTea)

Manifest-Version: 1.0
Implementation-Title: Java Runtime Environment
Implementation-Version: 1.8.0_212
Specification-Vendor: Oracle Corporation
Specification-Title: Java Platform API Specification
Implementation-Vendor-Id: com.sun
Extension-Name: javax.crypto
Specification-Version: 1.8
Created-By: 1.8.0_212 (IcedTea)
Implementation-Vendor: IcedTea

Manifest-Version: 1.0
Implementation-Title: Java Runtime Environment
Implementation-Version: 1.8.0_212
Specification-Vendor: Oracle Corporation
Specification-Title: Java Platform API Specification
Specification-Version: 1.8
Created-By: 1.8.0_212 (IcedTea)
Implementation-Vendor: IcedTea

Manifest-Version: 1.0
Created-By: 1.8.0_212 (IcedTea)

Manifest-Version: 1.0
Crypto-Strength: limited
Manifest-Version: 1.0
Premain-Class: sun.management.Agent
Agent-Class: sun.management.Agent
Created-By: 1.8.0_212 (IcedTea)

Manifest-Version: 1.0
Created-By: 1.8.0_212 (IcedTea)
Main-Class: jdk.nashorn.tools.Shell

Name: jdk/nashorn/
Name: jdk/nashorn/
Implementation-Title: Oracle Nashorn
Implementation-Version: 1.8.0_212-b04
Implementation-Vendor: Oracle Corporation

Manifest-Version: 1.0
Implementation-Title: Java Runtime Environment
Implementation-Version: 1.8.0_212
Specification-Vendor: Oracle Corporation
Specification-Title: Java Platform API Specification
Specification-Version: 1.8
Created-By: 1.8.0_212 (IcedTea)
Implementation-Vendor: IcedTea

Manifest-Version: 1.0
Implementation-Title: Java Runtime Environment
Implementation-Version: 1.8.0_212
Specification-Vendor: Oracle Corporation
Specification-Title: Java Platform API Specification
Specification-Version: 1.8
Created-By: 1.8.0_212 (IcedTea)
Implementation-Vendor: IcedTea

Name: javax/swing/JRadioButton.class
Java-Bean: True

Name: javax/swing/JTextPane.class
Java-Bean: True

Name: javax/swing/JWindow.class
Java-Bean: True

Name: javax/swing/JRadioButtonMenuItem.class
Java-Bean: True

Name: javax/swing/JDialog.class
Java-Bean: True

Name: javax/swing/JSlider.class
Java-Bean: True

Name: javax/swing/JMenuBar.class
Java-Bean: True

Name: javax/swing/JList.class
Java-Bean: True

Name: javax/swing/JTable.class
Java-Bean: True

Name: javax/swing/JTextArea.class
Java-Bean: True

Name: javax/swing/JTabbedPane.class
Java-Bean: True

Name: javax/swing/JPanel.class
Java-Bean: True

Name: javax/swing/JApplet.class
Java-Bean: True

Name: javax/swing/JInternalFrame.class
Java-Bean: True

Name: javax/swing/JToggleButton.class
Java-Bean: True

Name: javax/swing/JSpinner.class
Java-Bean: True

Name: javax/swing/JComboBox.class
Java-Bean: True

Name: javax/swing/JOptionPane.class
Java-Bean: True

Name: javax/swing/JPasswordField.class
Java-Bean: True

Name: javax/swing/JTree.class
Java-Bean: True

Name: javax/swing/JMenuItem.class
Java-Bean: True

Name: javax/swing/JFrame.class
Java-Bean: True

Name: javax/swing/JScrollPane.class
Java-Bean: True

Name: javax/swing/JSeparator.class
Java-Bean: True

Name: javax/swing/JLabel.class
Java-Bean: True

Name: javax/swing/JToolBar.class
Java-Bean: True

Name: javax/swing/JButton.class
Java-Bean: True

Name: javax/swing/JTextField.class
Java-Bean: True

Name: javax/swing/JEditorPane.class
Java-Bean: True

Name: javax/swing/JPopupMenu.class
Java-Bean: True

Name: javax/swing/JMenu.class
Java-Bean: True

Name: javax/swing/JScrollBar.class
Java-Bean: True

Name: javax/swing/JCheckBoxMenuItem.class
Java-Bean: True

Name: javax/swing/JCheckBox.class
Java-Bean: True

Name: javax/swing/JProgressBar.class
Java-Bean: True

Name: javax/swing/JSplitPane.class
Java-Bean: True

Name: javax/swing/JFormattedTextField.class
Java-Bean: True

Manifest-Version: 1.0
Implementation-Title: Java Runtime Environment
Implementation-Version: 1.8.0_212
Specification-Vendor: Oracle Corporation
Specification-Title: Java Platform API Specification
Implementation-Vendor-Id: com.sun
Extension-Name: javax.crypto
Specification-Version: 1.8
Created-By: 1.8.0_212 (IcedTea)
Implementation-Vendor: IcedTea

Manifest-Version: 1.0
Implementation-Title: Java Runtime Environment
Implementation-Version: 1.8.0_212
Specification-Vendor: Oracle Corporation
Specification-Title: Java Platform API Specification
Implementation-Vendor-Id: com.sun
Extension-Name: javax.crypto
Specification-Version: 1.8
Created-By: 1.8.0_212 (IcedTea)
Implementation-Vendor: IcedTea

Manifest-Version: 1.0
Implementation-Title: Java Runtime Environment
Implementation-Version: 1.8.0_212
Specification-Vendor: Oracle Corporation
Specification-Title: Java Platform API Specification
Implementation-Vendor-Id: com.sun
Extension-Name: javax.crypto
Specification-Version: 1.8
Created-By: 1.8.0_212 (IcedTea)
Implementation-Vendor: IcedTea

Manifest-Version: 1.0
Crypto-Strength: unlimited
Manifest-Version: 1.0
Implementation-Title: Java Runtime Environment
Implementation-Version: 1.8.0_212
Specification-Vendor: Oracle Corporation
Specification-Title: Java Platform API Specification
Specification-Version: 1.8
Created-By: 1.8.0_212 (IcedTea)
Implementation-Vendor: IcedTea
Main-Class: