= Update the ee Subsystem

The *ee* Subsystem in {server-target-productName} provides support for new Java EE 7 features.

* You can configure instances of Java EE 7 concurrency utilities, such as container-managed `Executors`.
* You can define the Java EE 7 default resources, such as the default data source, by specifying the original JNDI addresses.

By default, the tool updates the *ee* subsystem configuration to include the new features.
If you prefer, you can configure the environment properties to customize the process of updating the *ee* subsystem configuration.

|===
| Property Name |Property Description

| `subsystem.ee.update.skip` | If set to `true`, the tool skips the update of the *ee* subsystem.
| `subsystem.ee.update.setup-ee-concurrency-utilities.skip` | If set to `true`, the tool does not add the default instances of concurrency utilities
| `subsystem.ee.update.setup-javaee7-default-bindings.skip` | If set to `true`, the tool does not set up Java EE 7 default resources.
| `subsystem.ee.update.setup-javaee7-default-bindings.defaultDataSourceName` | Specifies the name of the default data source to look for in the source configuration.
| `subsystem.ee.update.setup-javaee7-default-bindings.defaultDataSourceJndiName` | Specifies the JNDI name for the default data source.
| `subsystem.ee.update.setup-javaee7-default-bindings.defaultJmsConnectionFactoryName` | Specifies the name of the JMS connection factory.
| `subsystem.ee.update.setup-javaee7-default-bindings.defaultJmsConnectionFactoryJndiName` | Specifies the JNDI name for the default JMS connection factory.
|===

WARNING: JNDI names that are specified are assumed to be valid. JNDI names are not validated by the tool.

For concurrency utilities instances, the tool automatically configures the exact same instances that are present in all {server-target-productName} default configurations and does not require any user interaction.
The log simply indicates the instances were added:

[source,options="nowrap"]
----
INFO  [ServerMigrationTask#49] Default ContextService added to EE subsystem configuration.
INFO  [ServerMigrationTask#49] Default ManagedThreadFactory added to EE subsystem configuration.
INFO  [ServerMigrationTask#49] Default ManagedExecutorService added to EE subsystem configuration.
INFO  [ServerMigrationTask#49] Default ManagedScheduledExecutorService added to EE subsystem configuration.
----

When defining Java EE 7 default resources, by default the tool looks for the resources present in default {server-source-productName} configurations and select these if present.

[source,options="nowrap"]
----
INFO  [ServerMigrationTask#50] Java EE Default Datasource configured with JNDI name java:jboss/datasources/ExampleDS.
----

In the case where the tool does not find such resources, then user input is required.
The tool lists all available resources in the configuration, and then asks the user to select the one that should be set as the default, or to manually provide the JNDI address of the original resource.
The following is an example of the interaction that occurs when migrating a configuration file with two configured data sources, `ExampleDS1` and `ExampleDS2` and defining the default data source:

[source,options="nowrap"]
----
INFO  [ServerMigrationTask#22] Default datasource not found.
0. ExampleDS
1. Unconfigured data source, I want to enter the JNDI name...
Please select Java EE's Default Datasource: (0): 0
INFO  [ServerMigrationTask#22] Java EE Default Datasource configured with JNDI name java:jboss/datasources/ExampleDS.

Save this Java EE Default Datasource JNDI name and use it when migrating other config files?
yes/no? y
----

NOTE: If you run the migration tool in `non-interactive` mode and the expected {server-source-productName} default resources are not available, for example the default JMS connection factory, the tool will not configure those resources.