anchor.diff:  
   == Tip
   
  -Note that the class `org.talend.sdk.component.runtime.beam.transform.DelegatingTransform` fully delegates
  -to another transform the "expansion". Therefore you can extend it and just implement the configuration mapping:
  +Note that the `org.talend.sdk.component.runtime.beam.transform.DelegatingTransform` class fully delegates the "expansion" to another transform. Therefore, you can extend it and implement the configuration mapping:
   
   [source,java]
   ----
  
positive.code: 
  == Advanced
  
  In terms of classloading, when you write an IO all the Beam SDK Java core stack is assumed in Talend Component Kit runtime
  as provided so never include it in compile scope - it would be ignored anyway.
  
  === Coder
  
  If you need a JSonCoder you can use `org.talend.sdk.component.runtime.beam.factory.service.PluginCoderFactory` service
  which gives you access the JSON-P and JSON-B coders.
  
  There is also an Avro coder using the `FileContainer` format to ensure it
  is self-contained for `IndexedRecord` and doesn't need - as default Apache Beam `AvroCoder` - to set the
  schema when creating a pipeline. It takes a bit more space and therefore is a bit slower
  but for `DoFn` it is fine since they shouldn't rely on serialization in a lot of cases.
  See `org.talend.sdk.component.runtime.beam.transform.avro.IndexedRecordCoder`.
  
  === JsonObject to IndexedRecord
  
  The mainstream model is `JsonObject` but it is common to have a legacy system using
  `IndexedRecord`. To mitigate the transition you can use the following `PTransforms`:
  
  - `IndexedRecordToJson`: to convert from an `IndexedRecord` to a `JsonObject`
  - `JsonToIndexedRecord`: to convert from an `JsonObject` to a `IndexedRecord`
  
  
  === Sample
  
  Here is a sample input based on beam Kafka:
  
  [source,java]
  ----
  
negative.code: [[wrapping-a-beam-io__start]]
  == Limitations
  
  This part is limited to specific kinds of link:https://beam.apache.org/[Beam] `PTransform`:
  
  - `PTransform<PBegin, PCollection<?>>` for inputs.
  - `PTransform<PCollection<?>, PDone>` for outputs. Outputs must use a single (composite or not) `DoFn` in their `apply` method.
  
  == Wrapping an input
  
  To illustrate the input wrapping, this procedure uses the following input as a starting point (based on existing Beam inputs):
  
  [source,java]
  ----
  