How to add a datasource to Wildfly

This tutorial explains 3 methods how to add a datasource to the application server Wildfly from Redhat. If you don’t have Wildfly installed on your machine, you can follow my other posts:

Prerequisites

Even if these steps are driver-agnostic, the example will use MySQL Connector (in other words, the JDBC Driver for MySQL) and Wildfly 10.0.0-Final.

For the next steps, you will need:

  • Wildfly installed and started
  • MySQL, MariaDB, PostgreSQL or any datasource compatible with Wildfly
  • The RDMS started and a database created (e.g. database: tutorial)

Notice that all these 3 methods have those steps in common:

  1. Add the JDBC Driver (a.k.a. Connector)
  2. Configure you datasource

Method 1: Add datasource via Admin-Console (the easy method)

1. Add the JDBC Driver

  1. Open the console from the browser (http://localhost:9990/console for a local server)Screen Shot 2016-07-23 at 16.21.50
  2. Then in Deployments, to add to open the wizardScreen Shot 2016-07-23 at 16.25.10
  3. After having clicked next, upload your Connector (i.e. JDBC Driver)Screen Shot 2016-07-23 at 16.26.50Here is the MySQL page to download the driver: MySQL Connector URL
  4. After uploading it, you may want to change the connector name. My recommendation is to name your connector with the provider-name, type and the project’s name that will use it, since your application server my have some projects with different versions of the same connector provider. Screen Shot 2016-07-23 at 16.34.17Note that the name is how the deployment is known to the users and must be unique. The runtime name is how is known to the server. This way you may have multiple names but refering to the same runtime name.
    Do not forget to enable your new deployment! (It should be enabled by default)
  5. Press finish to deploy your connector to your application server.

2. Configure you datasource

  1. Add a new datasource by clicking on ‘Start’ on the right of ‘Create a Datasource’. This will define a datasource to be used by deployed applications.
    Screen Shot 2016-07-23 at 16.48.22
  2. Then select ‘Subsystems’ and ‘Datasources’ and either Non-XA or XA depending of your project type. This tutorial needs a Non-XA datasource. Then click ‘Add’.
    Screen Shot 2016-07-23 at 16.53.52
  3. Then click ‘Add’, choose your datasource (MySQL Datasource for this tutorial) and click next.
    Screen Shot 2016-07-23 at 16.55.30
  4. Give to the attributes name and a JNDI name to your datasource. The JNDI name is like a name in a directory service allowing your programs to discover the data and object. Both name and JNDI name have to be unique. Then click ‘next’.
    Screen Shot 2016-07-23 at 17.00.40
  5. Then select your JDBC Driver you have deployed before. To do that, click on ‘Detected Driver’ and select it and click ‘next’
    Screen Shot 2016-07-23 at 17.27.23
  6. Then add the attributes you will need to connect to your RDMS server.
    Screen Shot 2016-07-23 at 17.53.37
  7. On the next screen, you can easily test your connection. In case of failure, the details will guide you to the solution.
    Screen Shot 2016-07-23 at 18.03.07

Pros / Cons

+ Easy to configure
+ No coding
– Need to use the management console, could be a security issue for a company
– Need to reboot your server to add a datasource.

Method 2: Add datasource via standalone.xml

The file that configures your server is named ‘standalone.xml’ and it is located in your wildfly installation directory under:

{WILDFLY_DIR}/standalone/configuration/standalone.xml

Important: The management console is updating the standalone.xml. Hence all we have done in method 1 is actually an abstraction of what we will do here.

1. Add the JDBC Driver

  1. With help of your window manager, go under
    {WILDFLY_DIR}/modules/system/layers/base/
  2. Then create a subdirectory for your JDBC Driver representing the package structure of your Connector. So create the subfolder:
    {WILDFLY_DIR}/modules/system/layers/base/com/mysql
  3. Copy your JDBC Driver into the directory you have just created.
  4. Create a XML file in the directory named module.xml.
  5. $ pwd
    /usr/local/opt/wildfly-as
    $ cd modules/system/layers/base/com/mysql/
    $ touch module.xml
  6. Then copy this into the module.xml you created:
    <?xml version="1.0" encoding="UTF-8"?>
    <module xmlns="urn:jboss:module:1.3" name="com.mysql">
      <resources>
        <resource-root path="mysql-connector-java-5.1.39-bin.jar"/>
      </resources>
      <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
      </dependencies>
    </module>
  7. Edit the standalone.xml file located:
    {WILDFLY_DIR}/standalone/configuration/standalone.xml
  8. Find the <drivers> element (after the <datasource> element). Then is add this snippet:
    <drivers>
     <driver name="mysql" module="com.mysql">
      <datasource-class>com.mysql.jdbc.Driver</data-source-class>
     </driver>
    </drivers>
  9. That’s it, the driver has been added to Wildfly. Now let’s configure the datasource.

2. Configure you datasource

  1. Just above the driver snippet, add this datasoure snippet:
    <datasource jta="true" jndi-name="java:/MySqlDS" pool-name="MySqlDS" enabled="true" use-ccm="true">
      <connection-url>jdbc:mysql://localhost:3306/mysqldb</connection-url>
      <driver>mysql</driver>
      <security>
        <user-name>root</user-name>
        <password></password>
      </security>
      <validation>
      <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
      <background-validation>true</background-validation>
      <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/>
      </validation>
     </datasource>

    Make sure that the name of the driver (between the <driver> element are the name given to your driver). You can also configure the username, password and database name.

  2. Restart Wildfly and verify by checking the connection to the database through the mangement console:
    Screen Shot 2016-07-23 at 18.03.07

Pros / Cons

+ Standanlone.xml file can be part of your deployment, which is handy.
– Critical if multiple application run on the same server.
– Need to reboot your server to add a datasource.

Method 3: Add datasource via CLI

CLI stands for Command Line Interface and is a command line management tool for JBoss Application Server. It allows a developer / operator to execute management operations and includes these features:

 

  • connect to the specific controller or server instance;
  • view the available managed components, their attributes and operations;
  • deploy and undeploy standard packages at runtime in standalone and domain modes;

The two main advantages of the CLI is:

  • You can automate your interactation with Wildfly through a script.
  • You can run this on a running Wildfly server.

The CLI is located at:

{WILDFLY_DIR}/bin/cli-client.sh

1. Add the JDBC Driver

  1. Start the command line interface with the following command:
    ./jboss-cli.sh --connect controller=127.0.0.1
  2. Then install the JDBC jar by loading it into a module.
    module add --name=com.mysql --resources=~/Downloads/mysql-connector-java-5.1.39/mysql-connector-java-5.1.39-bin.jar --dependencies=javax.api,javax.transaction.api

    Important: pay attention to where to add a space, and where not to add a space, this is scripting 😉

2. Configure you datasource

  1. Add the driver to the data-sources subsystem.
    /subsystem=datasources/jdbc-driver=mysql:add(driver-name="mysql",driver-module-name="com.mysql",driver-class-name=com.mysql.jdbc.Driver)

    It returns {“outcome” => “success”} in case of success.

  2. Create the datasource that uses the JDBC driver we just installed.
    data-source add --jndi-name=java:/MySqlDS --name=MySqlPool --connection-url=jdbc:mysql://localhost:3306/mysqldb --driver-name=mysql --user-name=root
  3. Test your connection and that’s it.Screen Shot 2016-07-23 at 18.03.07

    Pros / Cons

    + Best option from a dev-ops perspective. A script can be run before deploying an application and the script can be part of your deployment as well.
    + Plays very well with technologies like Docker.
    + Configuration can be changed at runtime! So no reboot required.

References

byteslounge: container vs application managed entity manager

mastertheboss: configuring a datasource with postgresql and wildfly

Thanks to

  • David Kühner for the technical review

How to add a datasource to Wildfly

How to install MariaDB on Mac

Like the Wildfly Application Server installation, we will install MariaDB through Homebrew, the package management software.

Compiling MariaDB

Open a terminal and type

macbookpro$ brew update
macbookpro$ brew search mariadb

mariadb                                   mariadb-connector-c                                                                                                   
homebrew/versions/mariadb100              Caskroom/cask/navicat-for-mariadb                                                                                     
macbookpro$ brew install mariadb
==> Installing dependencies for mariadb: openssl
==> Installing mariadb dependency: openssl
==> Downloading https://homebrew.bintray.com/bottles/openssl-1.0.2h_1.el_capitan.bottle.tar.gz
######################################################################## 100.0%
==> Pouring openssl-1.0.2h_1.el_capitan.bottle.tar.gz
==> Caveats
A CA file has been bootstrapped using certificates from the system
keychain. To add additional certificates, place .pem files in
  /usr/local/etc/openssl/certs

and run
  /usr/local/opt/openssl/bin/c_rehash

This formula is keg-only, which means it was not symlinked into /usr/local.

Apple has deprecated use of OpenSSL in favor of its own TLS and crypto libraries

Generally there are no consequences of this for you. If you build your
own software and it requires this formula, you'll need to add to your
build variables:

    LDFLAGS:  -L/usr/local/opt/openssl/lib
    CPPFLAGS: -I/usr/local/opt/openssl/include

==> Summary
🍺  /usr/local/Cellar/openssl/1.0.2h_1: 1,691 files, 12M
==> Installing mariadb
==> Downloading https://homebrew.bintray.com/bottles/mariadb-10.1.15.el_capitan.bottle.tar.gz
######################################################################## 100.0%
==> Pouring mariadb-10.1.15.el_capitan.bottle.tar.gz
==> /usr/local/Cellar/mariadb/10.1.15/bin/mysql_install_db --verbose --user=philippe.wanner --basedir=/usr/local/Cellar/mariadb/10.1.15 --datadir=/usr/local/var/mysql --tmpdir=/tmp
==> Caveats
A "/etc/my.cnf" from another install may interfere with a Homebrew-built
server starting up correctly.

To connect:
    mysql -uroot

To have launchd start mariadb now and restart at login:
  brew services start mariadb
Or, if you don't want/need a background service you can just run:
  mysql.server start
==> Summary
🍺  /usr/local/Cellar/mariadb/10.1.15: 573 files, 137.1M

Run the MariaDB installer

macbookpro$ unset TMPDIR
macbookpro$ mysql_install_db

Then you see the following

Installing MariaDB/MySQL system tables in '/usr/local/var/mysql' ...
2016-07-03 13:37:37 140735229489152 [Note] /usr/local/Cellar/mariadb/10.1.15/bin/mysqld (mysqld 10.1.15-MariaDB) starting as process 13274 ...
2016-07-03 13:37:37 140735229489152 [Note] InnoDB: Using mutexes to ref count buffer pool pages
2016-07-03 13:37:37 140735229489152 [Note] InnoDB: The InnoDB memory heap is disabled
2016-07-03 13:37:37 140735229489152 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2016-07-03 13:37:37 140735229489152 [Note] InnoDB: Memory barrier is not used
2016-07-03 13:37:37 140735229489152 [Note] InnoDB: Compressed tables use zlib 1.2.5
2016-07-03 13:37:37 140735229489152 [Note] InnoDB: Using SSE crc32 instructions
2016-07-03 13:37:37 140735229489152 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2016-07-03 13:37:37 140735229489152 [Note] InnoDB: Completed initialization of buffer pool
2016-07-03 13:37:37 140735229489152 [Note] InnoDB: Highest supported file format is Barracuda.
2016-07-03 13:37:37 140735229489152 [Note] InnoDB: 128 rollback segment(s) are active.
2016-07-03 13:37:37 140735229489152 [Note] InnoDB: Waiting for purge to start
2016-07-03 13:37:37 140735229489152 [Note] InnoDB:  Percona XtraDB (http://www.percona.com) 5.6.30-76.3 started; log sequence number 1616819
2016-07-03 13:37:37 123145313034240 [Note] InnoDB: Dumping buffer pool(s) not yet started
OK
Filling help tables...
2016-07-03 13:37:39 140735229489152 [Note] /usr/local/Cellar/mariadb/10.1.15/bin/mysqld (mysqld 10.1.15-MariaDB) starting as process 13278 ...
2016-07-03 13:37:39 140735229489152 [Note] InnoDB: Using mutexes to ref count buffer pool pages
2016-07-03 13:37:39 140735229489152 [Note] InnoDB: The InnoDB memory heap is disabled
2016-07-03 13:37:39 140735229489152 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2016-07-03 13:37:39 140735229489152 [Note] InnoDB: Memory barrier is not used
2016-07-03 13:37:39 140735229489152 [Note] InnoDB: Compressed tables use zlib 1.2.5
2016-07-03 13:37:39 140735229489152 [Note] InnoDB: Using SSE crc32 instructions
2016-07-03 13:37:39 140735229489152 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2016-07-03 13:37:39 140735229489152 [Note] InnoDB: Completed initialization of buffer pool
2016-07-03 13:37:39 140735229489152 [Note] InnoDB: Highest supported file format is Barracuda.
2016-07-03 13:37:39 140735229489152 [Note] InnoDB: 128 rollback segment(s) are active.
2016-07-03 13:37:39 140735229489152 [Note] InnoDB: Waiting for purge to start
2016-07-03 13:37:39 140735229489152 [Note] InnoDB:  Percona XtraDB (http://www.percona.com) 5.6.30-76.3 started; log sequence number 1616829
2016-07-03 13:37:39 123145313034240 [Note] InnoDB: Dumping buffer pool(s) not yet started
OK
Creating OpenGIS required SP-s...
2016-07-03 13:37:42 140735229489152 [Note] /usr/local/Cellar/mariadb/10.1.15/bin/mysqld (mysqld 10.1.15-MariaDB) starting as process 13282 ...
2016-07-03 13:37:42 140735229489152 [Note] InnoDB: Using mutexes to ref count buffer pool pages
2016-07-03 13:37:42 140735229489152 [Note] InnoDB: The InnoDB memory heap is disabled
2016-07-03 13:37:42 140735229489152 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2016-07-03 13:37:42 140735229489152 [Note] InnoDB: Memory barrier is not used
2016-07-03 13:37:42 140735229489152 [Note] InnoDB: Compressed tables use zlib 1.2.5
2016-07-03 13:37:42 140735229489152 [Note] InnoDB: Using SSE crc32 instructions
2016-07-03 13:37:42 140735229489152 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2016-07-03 13:37:42 140735229489152 [Note] InnoDB: Completed initialization of buffer pool
2016-07-03 13:37:42 140735229489152 [Note] InnoDB: Highest supported file format is Barracuda.
2016-07-03 13:37:42 140735229489152 [Note] InnoDB: 128 rollback segment(s) are active.
2016-07-03 13:37:42 140735229489152 [Note] InnoDB: Waiting for purge to start
2016-07-03 13:37:42 140735229489152 [Note] InnoDB:  Percona XtraDB (http://www.percona.com) 5.6.30-76.3 started; log sequence number 1616839
2016-07-03 13:37:42 123145313034240 [Note] InnoDB: Dumping buffer pool(s) not yet started
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MariaDB root USER !
To do so, start the server, then issue the following commands:

'/usr/local/Cellar/mariadb/10.1.15/bin/mysqladmin' -u root password 'new-password'
'/usr/local/Cellar/mariadb/10.1.15/bin/mysqladmin' -u root -h Philippes-MacBook-Pro.local password 'new-password'

Alternatively you can run:
'/usr/local/Cellar/mariadb/10.1.15/bin/mysql_secure_installation'

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the MariaDB Knowledgebase at http://mariadb.com/kb or the
MySQL manual for more instructions.

You can start the MariaDB daemon with:
cd '/usr/local/Cellar/mariadb/10.1.15' ; /usr/local/Cellar/mariadb/10.1.15/bin/mysqld_safe --datadir='/usr/local/var/mysql'

You can test the MariaDB daemon with mysql-test-run.pl
cd '/usr/local/Cellar/mariadb/10.1.15/mysql-test' ; perl mysql-test-run.pl

Please report any problems at http://mariadb.org/jira

The latest information about MariaDB is available at http://mariadb.org/.
You can find additional information about the MySQL part at:
http://dev.mysql.com
Support MariaDB development by buying support/new features from MariaDB
Corporation Ab. You can contact us about this at sales@mariadb.com.
Alternatively consider joining our community based development effort:
http://mariadb.com/kb/en/contributing-to-the-mariadb-project/

Start MariaDB Server

You have two way to do this:

Run MariaDB through Homebrew

[Once] Install the brew services (if not yet done)

macbookpro$ brew tap homebrew/services
==> Tapping homebrew/services
Cloning into '/usr/local/Library/Taps/homebrew/homebrew-services'...
remote: Counting objects: 7, done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 7 (delta 0), reused 3 (delta 0), pack-reused 0
Unpacking objects: 100% (7/7), done.
Checking connectivity... done.
Tapped 0 formulae (32 files, 46.2K)

Run brew service MariaDB

macbookpro$ brew services start mariadb
==> Successfully started `mariadb` (label: homebrew.mxcl.mariadb)

Note that the following brew services command also exist:

  • brew services restart mariadb
  • brew services stop mariadb

Run MariaDB in background process

macbookpro$ mysql.server start
Starting MySQL
. SUCCESS!

Use MariaDB

macbookpro$ mysql -uroot
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.1.15-MariaDB Homebrew

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>
How to install MariaDB on Mac

How to install Wildfly on Mac

The easiest way is to install through Homebrew, the free open-source package managment system.

Install Wildfly

Download and install through brew package managment

macbookpro$ brew update
Already up-to-date.
macbookpro$ brew search wildfly
wildfly-as
macbookpro$ brew install wildfly-as
==> Downloading https://download.jboss.org/wildfly/10.0.0.Final/wildfly-10.0.0.Final.tar.gz
##########                                                                14.6%
==> Caveats
The home of WildFly Application Server 10 is:
  /usr/local/opt/wildfly-as/libexec
You may want to add the following to your .bash_profile:
  export JBOSS_HOME=/usr/local/opt/wildfly-as/libexec
  export PATH=${PATH}:${JBOSS_HOME}/bin
==> Summary
🍺  /usr/local/Cellar/wildfly-as/10.0.0.Final: 1,180 files, 153.4M, built in 7 minutes 18 seconds

And you are almost all set.

Add the environment variables

macbookpro$ cd /usr/local/opt/wildfly-as/libexec/bin
macbookpro$ ./standalone.sh
=========================================================================

  JBoss Bootstrap Environment

  JBOSS_HOME: /usr/local/opt/wildfly-as/libexec

  JAVA: java

  JAVA_OPTS:  -server -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true

=========================================================================

12:49:37,085 INFO  [org.jboss.modules] (main) JBoss Modules version 1.5.1.Final
12:49:38,033 INFO  [org.jboss.msc] (main) JBoss MSC version 1.2.6.Final
12:49:38,115 INFO  [org.jboss.as] (MSC service thread 1-6) WFLYSRV0049: WildFly Full 10.0.0.Final (WildFly Core 2.0.10.Final) starting
12:49:38,974 INFO  [org.jboss.as.server] (Controller Boot Thread) WFLYSRV0039: Creating http management service using socket-binding (management-http)
12:49:38,987 INFO  [org.xnio] (MSC service thread 1-6) XNIO version 3.3.4.Final
12:49:38,992 INFO  [org.xnio.nio] (MSC service thread 1-6) XNIO NIO Implementation Version 3.3.4.Final
12:49:39,023 WARN  [org.jboss.as.txn] (ServerService Thread Pool -- 54) WFLYTX0013: Node identifier property is set to the default value. Please make sure it is unique.
12:49:39,034 INFO  [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 38) WFLYCLINF0001: Activating Infinispan subsystem.
12:49:39,038 INFO  [org.wildfly.extension.io] (ServerService Thread Pool -- 37) WFLYIO001: Worker 'default' has auto-configured to 16 core threads with 128 task threads based on your 8 available processors
12:49:39,046 INFO  [org.jboss.as.jsf] (ServerService Thread Pool -- 44) WFLYJSF0007: Activated the following JSF Implementations: [main]
12:49:39,081 INFO  [org.jboss.as.naming] (ServerService Thread Pool -- 46) WFLYNAM0001: Activating Naming Subsystem
12:49:39,088 INFO  [org.jboss.as.webservices] (ServerService Thread Pool -- 56) WFLYWS0002: Activating WebServices Extension
12:49:39,105 INFO  [org.jboss.as.security] (ServerService Thread Pool -- 53) WFLYSEC0002: Activating Security Subsystem
12:49:39,111 INFO  [org.jboss.as.security] (MSC service thread 1-1) WFLYSEC0001: Current PicketBox version=4.9.4.Final
12:49:39,112 INFO  [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 33) WFLYJCA0004: Deploying JDBC-compliant driver class org.h2.Driver (version 1.3)
12:49:39,121 INFO  [org.wildfly.extension.undertow] (ServerService Thread Pool -- 55) WFLYUT0003: Undertow 1.3.15.Final starting
12:49:39,121 INFO  [org.wildfly.extension.undertow] (MSC service thread 1-5) WFLYUT0003: Undertow 1.3.15.Final starting
12:49:39,122 INFO  [org.jboss.as.connector] (MSC service thread 1-8) WFLYJCA0009: Starting JCA Subsystem (WildFly/IronJacamar 1.3.2.Final)
12:49:39,135 INFO  [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-2) WFLYJCA0018: Started Driver service with driver-name = h2
12:49:39,159 INFO  [org.jboss.remoting] (MSC service thread 1-6) JBoss Remoting version 4.0.18.Final
12:49:39,194 INFO  [org.jboss.as.naming] (MSC service thread 1-5) WFLYNAM0003: Starting Naming Service
12:49:39,194 INFO  [org.jboss.as.mail.extension] (MSC service thread 1-4) WFLYMAIL0001: Bound mail session [java:jboss/mail/Default]
12:49:39,317 INFO  [org.wildfly.extension.undertow] (ServerService Thread Pool -- 55) WFLYUT0014: Creating file handler for path '/usr/local/opt/wildfly-as/libexec/welcome-content' with options [directory-listing: 'false', follow-symlink: 'false', case-sensitive: 'true', safe-symlink-paths: '[]']
12:49:39,347 INFO  [org.wildfly.extension.undertow] (MSC service thread 1-8) WFLYUT0012: Started server default-server.
12:49:39,349 INFO  [org.wildfly.extension.undertow] (MSC service thread 1-3) WFLYUT0018: Host default-host starting
12:49:39,393 INFO  [org.jboss.as.ejb3] (MSC service thread 1-3) WFLYEJB0482: Strict pool mdb-strict-max-pool is using a max instance size of 32 (per class), which is derived from the number of CPUs on this host.
12:49:39,393 INFO  [org.jboss.as.ejb3] (MSC service thread 1-2) WFLYEJB0481: Strict pool slsb-strict-max-pool is using a max instance size of 128 (per class), which is derived from thread worker pool sizing.
12:49:39,457 INFO  [org.wildfly.extension.undertow] (MSC service thread 1-8) WFLYUT0006: Undertow HTTP listener default listening on 127.0.0.1:8080
12:49:39,541 INFO  [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-5) WFLYJCA0001: Bound data source [java:jboss/datasources/ExampleDS]
12:49:39,647 INFO  [org.jboss.as.server.deployment.scanner] (MSC service thread 1-2) WFLYDS0013: Started FileSystemDeploymentService for directory /usr/local/opt/wildfly-as/libexec/standalone/deployments
12:49:39,815 INFO  [org.infinispan.factories.GlobalComponentRegistry] (MSC service thread 1-1) ISPN000128: Infinispan version: Infinispan 'Mahou' 8.1.0.Final
12:49:39,815 INFO  [org.infinispan.factories.GlobalComponentRegistry] (MSC service thread 1-7) ISPN000128: Infinispan version: Infinispan 'Mahou' 8.1.0.Final
12:49:39,815 INFO  [org.infinispan.factories.GlobalComponentRegistry] (MSC service thread 1-3) ISPN000128: Infinispan version: Infinispan 'Mahou' 8.1.0.Final
12:49:39,872 INFO  [org.jboss.ws.common.management] (MSC service thread 1-5) JBWS022052: Starting JBossWS 5.1.3.Final (Apache CXF 3.1.4) 
12:49:40,088 INFO  [org.jboss.as] (Controller Boot Thread) WFLYSRV0060: Http management interface listening on http://127.0.0.1:9990/management
12:49:40,088 INFO  [org.jboss.as] (Controller Boot Thread) WFLYSRV0051: Admin console listening on http://127.0.0.1:9990
12:49:40,089 INFO  [org.jboss.as] (Controller Boot Thread) WFLYSRV0025: WildFly Full 10.0.0.Final (WildFly Core 2.0.10.Final) started in 3425ms - Started 267 of 553 services (371 services are lazy, passive or on-demand)

 [Optional] Add user to manage the server

macbookpro$ ./add-user.sh 
What type of user do you wish to add? 
 a) Management User (mgmt-users.properties) 
 b) Application User (application-users.properties)
(a): a

Enter the details of the new user to add.
Using realm 'ManagementRealm' as discovered from the existing property files.
Username : philippe.wanner
Password recommendations are listed below. To modify these restrictions edit the add-user.properties configuration file.
 - The password should be different from the username
 - The password should not be one of the following restricted values {root, admin, administrator}
 - The password should contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), 1 non-alphanumeric symbol(s)
Password : 
WFLYDM0101: Password should have at least 1 digit.
Are you sure you want to use the password entered yes/no? yes
Re-enter Password : 
What groups do you want this user to belong to? (Please enter a comma separated list, or leave blank for none)[  ]:    
About to add user 'philippe.wanner' for realm 'ManagementRealm'
Is this correct yes/no? yes
Added user 'philippe.wanner' to file '/usr/local/Cellar/wildfly-as/10.0.0.Final/libexec/standalone/configuration/mgmt-users.properties'
Added user 'philippe.wanner' to file '/usr/local/Cellar/wildfly-as/10.0.0.Final/libexec/domain/configuration/mgmt-users.properties'
Added user 'philippe.wanner' with groups  to file '/usr/local/Cellar/wildfly-as/10.0.0.Final/libexec/standalone/configuration/mgmt-groups.properties'
Added user 'philippe.wanner' with groups  to file '/usr/local/Cellar/wildfly-as/10.0.0.Final/libexec/domain/configuration/mgmt-groups.properties'
Is this new user going to be used for one AS process to connect to another AS process? 
e.g. for a slave host controller connecting to the master or for a Remoting connection for server to server EJB calls.
yes/no? no

Log in the management console

Go to http://localhost:9990/console/ and enter your credentials

Screen Shot 2016-07-03 at 13.11.03

And then you get your dashboard

Screen Shot 2016-07-03 at 13.14.26.png

How to install Wildfly on Mac