# EclipseWtpFacet

API Documentation: | `EclipseWtpFacet`

Enables fine-tuning wtp facet details of the Eclipse plugin

Advanced configuration closures beforeMerged and whenMerged receive `WtpFacet` object as parameter.

    plugins {
        id 'war' // or 'ear' or 'java'
        id 'eclipse-wtp'
    }

    eclipse {
      wtp {
        facet {
          //you can add some extra wtp facets or update existing ones; mandatory keys: 'name', 'version':
          facet name: 'someCoolFacet', version: '1.3'

          file {
            //if you want to mess with the resulting XML in whatever way you fancy
            withXml {
              def node = it.asNode()
              node.appendNode('xml', 'is what I love')
            }

            //beforeMerged and whenMerged closures are the highest voodoo for the tricky edge cases.
            //the type passed to the closures is WtpFacet

            //closure executed after wtp facet file content is loaded from existing file
            //but before gradle build information is merged
            beforeMerged { wtpFacet ->
              //tinker with WtpFacet here
            }

            //closure executed after wtp facet file content is loaded from existing file
            //and after gradle build information is merged
            whenMerged { wtpFacet ->
              //you can tinker with the WtpFacet here
            }
          }
        }
      }
    }

### Properties

Property | Description
`facets` | The facets to be added as elements.
`file` | See `EclipseWtpFacet.file(org.gradle.api.Action)`

### Methods

Method | Description
`facet(args)` | Adds a facet.
`file(action)` | Enables advanced configuration like tinkering with the output XML or affecting the way existing wtp facet file content is merged with gradle build information.

### Script blocks

Block | Description
`file` | Enables advanced configuration like tinkering with the output XML or affecting the way existing wtp facet file content is merged with gradle build information

### Property details

#### ``List`<`Facet`>` `facets`

The facets to be added as elements.

For examples see docs for `EclipseWtpFacet`

Default with `eclipse` and `war` plugins:
  Java and web facets.

#### `XmlFileContentMerger` `file` (read-only)

See `EclipseWtpFacet.file(org.gradle.api.Action)`

### Method details

#### `void` `facet`(``Map`<`String`, ?>` args)

Adds a facet.

If a facet already exists with the given name then its version will be updated.

In the case of a "jst.ejb" facet, it will also be added as a fixed facet.

For examples see docs for `EclipseWtpFacet`

#### `void` `file`(``Action`<? super `XmlFileContentMerger`>` action)

Enables advanced configuration like tinkering with the output XML or affecting the way existing wtp facet file content is merged with gradle build information.

For example see docs for `EclipseWtpFacet`

### Script block details

#### `file` { }

Enables advanced configuration like tinkering with the output XML or affecting the way existing wtp facet file content is merged with gradle build information

The object passed to whenMerged{} and beforeMerged{} closures is of type `WtpFacet`

For example see docs for `EclipseWtpFacet`

Delegates to:
  `XmlFileContentMerger` from `file`