---
apiVersion: v1
kind: ConfigMap
metadata:
  labels:
    funktion.fabric8.io/kind: Connector
  name: fop
data:
  deployment.yml: |
    ---
    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
      labels:
        funktion.fabric8.io/kind: Subscription
        connector: fop
    spec:
      replicas: 1
      template:
        metadata:
          labels:
            funktion.fabric8.io/kind: Subscription
            connector: fop
        spec:
          containers:
          - image: funktion/connector-fop:${project.version}
            name: connector
  schema.yml: |
    ---
    component:
      kind: component
      scheme: fop
      syntax: fop:outputType
      title: FOP
      description: The fop component allows you to render a message into different output formats using Apache FOP.
      label: transformation
      deprecated: false
      async: false
      producerOnly: true
      javaType: org.apache.camel.component.fop.FopComponent
      groupId: org.apache.camel
      artifactId: camel-fop
      version: 2.18.3
    componentProperties: {}
    properties:
      outputType:
        kind: path
        group: producer
        required: true
        type: string
        javaType: org.apache.camel.component.fop.FopOutputType
        enum:
        - pdf
        - ps
        - pcl
        - png
        - jpeg
        - svg
        - xml
        - mif
        - rtf
        - txt
        deprecated: false
        secret: false
        description: The primary output format is PDF but other output formats are also supported.
        order: 0
      fopFactory:
        kind: parameter
        group: producer
        type: object
        javaType: org.apache.fop.apps.FopFactory
        deprecated: false
        secret: false
        description: Allows to use a custom configured or implementation of org.apache.fop.apps.FopFactory.
        order: 1
      userConfigURL:
        kind: parameter
        group: producer
        type: string
        javaType: java.lang.String
        deprecated: false
        secret: false
        description: The location of a configuration file which can be loaded from classpath or file system.
        order: 2
      synchronous:
        kind: parameter
        group: advanced
        label: advanced
        type: boolean
        javaType: boolean
        deprecated: false
        secret: false
        defaultValue: false
        description: Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported).
        order: 3
  documentation.adoc: |+
    [[FOP-FOPComponent]]
    FOP Component
    ~~~~~~~~~~~~~

    *Available as of Camel 2.10*

    The FOP component allows you to render a message into different output
    formats using http://xmlgraphics.apache.org/fop/index.html[Apache FOP].

    Maven users will need to add the following dependency to their `pom.xml`
    for this component:

    [source,xml]
    ------------------------------------------------------------
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-fop</artifactId>
        <version>x.x.x</version>
        <!-- use the same version as your Camel core version -->
    </dependency>
    ------------------------------------------------------------

    [[FOP-URIformat]]
    URI format
    ^^^^^^^^^^

    [source,java]
    ----------------------------
    fop://outputFormat?[options]
    ----------------------------

    [[FOP-OutputFormats]]
    Output Formats
    ^^^^^^^^^^^^^^

    The primary output format is PDF but other output
    http://xmlgraphics.apache.org/fop/0.95/output.html[formats] are also
    supported:

    [width="100%",cols="10%,10%,80%",options="header",]
    |=======================================================================
    |name |outputFormat |description

    |PDF |application/pdf |Portable Document Format

    |PS |application/postscript |Adobe Postscript

    |PCL |application/x-pcl |Printer Control Language

    |PNG |image/png |PNG images

    |JPEG |image/jpeg |JPEG images

    |SVG |image/svg+xml |Scalable Vector Graphics

    |XML |application/X-fop-areatree |Area tree representation

    |MIF |application/mif |FrameMaker's MIF

    |RTF |application/rtf |Rich Text Format

    |TXT |text/plain |Text
    |=======================================================================

    The complete list of valid output formats can be found
    http://svn.apache.org/repos/asf/xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/util/MimeConstants.java[here]

    [[FOP-EndpointOptions]]
    Endpoint Options
    ^^^^^^^^^^^^^^^^

    // component options: START
    The FOP component has no options.
    // component options: END



    // endpoint options: START
    The FOP component supports 4 endpoint options which are listed below:

    {% raw %}
    [width="100%",cols="2,1,1m,1m,5",options="header"]
    |=======================================================================
    | Name | Group | Default | Java Type | Description
    | outputType | producer |  | FopOutputType | *Required* The primary output format is PDF but other output formats are also supported.
    | fopFactory | producer |  | FopFactory | Allows to use a custom configured or implementation of org.apache.fop.apps.FopFactory.
    | userConfigURL | producer |  | String | The location of a configuration file which can be loaded from classpath or file system.
    | synchronous | advanced | false | boolean | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported).
    |=======================================================================
    {% endraw %}
    // endpoint options: END


    The location of a configuration file with the following
    http://xmlgraphics.apache.org/fop/1.0/configuration.html[structure].
    From *Camel 2.12* onwards the file is loaded from the classpath by
    default. You can use `file:`, or `classpath:` as prefix to load the
    resource from file or classpath. In previous releases the file is always
    loaded from file system.

    fopFactory

     

    Allows to use a custom configured or implementation of
    `org.apache.fop.apps.FopFactory`.

    [[FOP-MessageOperations]]
    Message Operations
    ^^^^^^^^^^^^^^^^^^

    [width="100%",cols="10%,10%,80%",options="header",]
    |=======================================================================
    |name |default value |description

    |CamelFop.Output.Format |  | Overrides the output format for that message

    |CamelFop.Encrypt.userPassword |  | PDF user password

    |CamelFop.Encrypt.ownerPassword |  | PDF owner passoword

    |CamelFop.Encrypt.allowPrint | true |Allows printing the PDF

    |CamelFop.Encrypt.allowCopyContent |true |Allows copying content of the PDF

    |CamelFop.Encrypt.allowEditContent |true |Allows editing content of the PDF

    |CamelFop.Encrypt.allowEditAnnotations |true |Allows editing annotation of the PDF

    |CamelFop.Render.producer |Apache FOP |Metadata element for the system/software that produces the document

    |CamelFop.Render.creator |  | Metadata element for the user that created the document

    |CamelFop.Render.creationDate |  | Creation Date

    |CamelFop.Render.author |  | Author of the content of the document

    |CamelFop.Render.title |  | Title of the document

    |CamelFop.Render.subject |  | Subject of the document

    |CamelFop.Render.keywords |  | Set of keywords applicable to this document
    |=======================================================================

    [[FOP-Example]]
    Example
    ^^^^^^^

    Below is an example route that renders PDFs from xml data and xslt
    template and saves the PDF files in target folder:

    [source,java]
    ---------------------------------
    from("file:source/data/xml")
        .to("xslt:xslt/template.xsl")
        .to("fop:application/pdf")
        .to("file:target/data");
    ---------------------------------

    For more information, see these resources...

    [[FOP-SeeAlso]]
    See Also
    ^^^^^^^^

    * link:configuring-camel.html[Configuring Camel]
    * link:component.html[Component]
    * link:endpoint.html[Endpoint]
    * link:getting-started.html[Getting Started]

