Skip to content

Photon v5 (WIP)

Florian Schleich edited this page Jan 13, 2025 · 1 revision

Intro

Photon v5 will introduce major changes to architecture and build system, including the following:

  • updated to Gradle v8.5
  • migrated from JDK8 to JDK11
  • migrated from java.io to java.nio
  • migrated from javax to jakarta (where applicable)
  • added S3 support via aws-java-nio-spi-for-s3
  • consolidated ApplicationComposition, AbstractApplicationComposition and IMFCompositionPlaylistype into IMFCompositionPlaylist
  • moved validation code into new package com.netflix.imflibrary.validation
  • separated validations for (revisions of) applications, core constraints, cpl and plug-ins
  • introduced interface ConstraintsValidator and factory ConstraintsValidatorFactory
  • replaced use of SequenceTypeEnum with Strings for SequenceType/Namespace for easier extensibility
  • renamed IMPAnalyzer.analyzePackage to IMPAnalyzer.analyzeDelivery to reflect actual scope
  • consolidated MXF utility methods in new class MXFUtils
  • moved some virtual track validation methods to ConstraintsValidatorUtils, some to core constraints validation classes, and deleted others

Validation Architecture

Analysis and validation of Compositions and their elements is largely kept separate in Photon, starting with v5. The following is a snapshot of the validation class architecture:

Concrete *Validator classes implement the ConstraintsValidator interface, and IMPValidator uses the ConstraintsValidatorFactory to instantiate the concrete validators.

Clone this wiki locally