 So, yeah, so moving on to the agenda for the talk. So, the new features that we have is Vibefly 14, which have been added in JEE8 and now we can use it in the Vibefly 14 application server as well. The major improvements, configurations, how to set up a domain, and security realm management take care. And we have a small demo, how to use CLI, and how to get started with the javas. So, these are the, okay. So, the new features that have been added to Vibefly 14, they are five major features. The first one is security, API. JXRS, a new reactive client. The JSON binding API. CDI with Java in standard addition. And the servlet 4.0 server push. So, I'll explain you each of the one-on-one feature as I go ahead. So, what is the security API? It's an annotation-driven authentication mechanism which uses HTTP authentication mechanism interface. Earlier, when, if we have to configure web security, we make the declarations in the XML file, which is the web.examl. But going forward, we can use this mechanism through HTTP authentication mechanism. Second one is JXRS. So, what is it? You can think it of a synchronous pipeline of processes with the next process reacting, or acting on the result of the previous process. And it processes its result to the next process in the chain. JSON. So, in, till Vibefly 13, we don't have any API, any standard API for JSON processing. But with Vibefly 14, we have a standard API for JSON serialization and deserialization. Okay. CDI has also added support for Java standard addition. Server push. So, what this feature does is it anticipates the client-side requirements. And when a request comes, it provides the response from the cache stored in the browser. So, just to add, these are the future which has been inherited from JEE 8. So, these are the future which has been inherited from JEE 8. So, by default, when we say Vibefly 14 is fully supported or certified under JEE 8, all these features are implemented in Vibefly 14. So, like just example, JSON binding till now, if we are using Vibefly 13, or the lower version for to serialize and deserialize the JSON object, you need to use a third-party tool. From JEE 8, this has been provided by the Java API itself. So, a new method to JSON has been introduced. It just needs to pass the JSON object for the serialization and deserialization. Moving ahead. Hey, this is the main, I mean, tabular form of what all version updates, major version updates have taken place. So, it's just a reference slide which you can refer to. So, now, what are the major improvements that we have in the application server? There are three main improvements. That is, micro-profile capabilities have been added. A new data source connection pool has been added and the mod cluster multiplicity. So, in the upcoming slides, we'll discuss what all these are. So, before we are talking about what benefits the micro-profile provides, let me just give you a brief of what micro-profile is. So, micro-profile is a baseline definition that optimizes enterprise Java for microservices architecture. It can also run on container environments and it also provides application portability. So, like developers, while writing the code, they have to keep in mind the environment or the servers on which they would need to run their application. But with the use of micro-profile, it also delivers application portability. So, how this can be used with Wildfly? There are three new subsystems added to the Wildfly 14 which is mpconfig, mpopentracing and mphealth. What these subsystems do? mpconfig, like we define variables or system properties in the application or in the Wildfly configuration. With mpconfig, you don't need a server reboot. When you define the parameters or values in the configuration, it does not require a reboot. It immediately picks up the value after it's changed. So, open tracing. So, this behavior specifies how incoming and outgoing requests will have open tracing spans automatically created. What open tracing is? It's a set of implementation, APIs, libraries, etc. So, mphealth, it checks the health of the computing node. If the computing node is not working or is terminated or it's shut down, so it gets replaced with the different computing node. So, next feature. Next is the addition of a new connection pool which is backed by Agrol project. So, this is a new high-performance connection pool. In the earlier versions, the data pool connection that we have is a JCA-based implementation. But this is more optimized and it is more refined and it has been added which is supported by Agrol project. So, since this is new, this needs to be enabled explicitly because by default, the JCA-1 is still the default data source connection pool. Mod cluster. So, what is Mod cluster? It's an HTTP-based load balancer which simplifies the creation of a cluster. So, in the earlier versions, it only supports a single web server listener or web server configuration. But going forward with Wildfly 14, it has been enhanced to support multiple web server listeners and configurations. So, now we will talk about what are the different default profiles that are provided by the Wildfly 14 configuration. So, keeping in mind the enterprise use, these are the four different profiles that have been provided out of box. If you want to use only the EE web profile, you can go for default profile. If your application supports or includes messaging, you can go for full profile. If it includes clustering, you can go for HA profile and if your application includes both clustering and messaging, you can go for full HA profile. It saves the time, means these profiles are provided so that it's easy and it does not make you rework. So, these are the basic profiles that have been provided out of box. You want to add something? So, the number of profiles, four are the default profile which has been provided. That does not mean you cannot customize this profile. So, all the subsystem, all the extension, it's plug and play. The number of extension, number of subsystem you can add, you can delete. So, these are the default profile which has been provided by seeing the enterprise use. So, it's ready. You can just start the server on a single line of code. So, there are two operating modes that Wildfly 14 comes with. Number one, standalone operating mode and number two is domain operating mode. As its name suggests, this is a single server instance that is running. Single JVM process is running in this case and the difference between standalone server and domain server does not lies on what capabilities or what services it provides. The difference is just in how they are managed. In standalone server, since it's a single server, so it is managed single-handedly. So, going forth with domain operating mode, it has multiple JVMs. There is a central government node which is called the domain controller which manages the other host controllers. And the server is under it. So, it has the ability to manage multiple JVMs from a single point of control. You can add. So, if you see the domain mode, it's standalone mode. You will go for a standalone mode if you want only one server up and running. For the domain mode, if you have a multiple server running across the geos. For example, you have some server running in North America. You have some server running in Australia. You can go for a domain mode where you can manage all your server from a domain controller. So, you get the manage and configuration facilities from a single point. So, that's the major advantage of going for a domain setup. For the development purposes, it is usually recommended that you can go for a standalone mode. And for production, you can go for domain. So, let's see the security. So, to secure the applications of a by default two security realm has been provided. One is the management, another is the application. Both have the same functionality. They are going to store your username and password by default. Username and password are stored in the management user properties and application user properties. So, while the two realm has been provided. So, for example, you want to give some management access to a group of user who can do the configuration changes, who can do the deployment, etc. You can assign those to the management realm, application realm to the end user who wants to connect like through a web application or through the eJB calls, you can go for the application realm. So, by default, Wildfly exposes its management API. So, what's the use of management API? Just like you can do the configuration by using the management console, you can use this API to do your configuration changes, do your deployment, etc. By default, it has been exposed using two APIs, Native API and HTTP API. You can use any HTTP client like your web browser to do the configuration changes or you can, if you are a Java developer, if you are, if you love programming, you can use the Native API. You can directly connect by using a remote or remote GMS protocol. In the next slide, we'll see how to use the HTTP API. So, the HTTP API, you can do a get, you can do a post. So, when you will do a get, when you want to read a resource. Read a resource means if I want to read my latest configuration from the Wildfly server, I can go for a get request. If I want to do some changes or some operation on the configuration level, I can go for the post. So, this example which I have wrote is like the requirement is to disable the example ds. I have created an example ds data source, which is the by default data source provided on all the four configuration files. So, in the first command that is the HTTP command, what I'm executing is I'm just reading a resource. It's a get request. I'm just reading example ds. What is the operation is my attribute and name is enabled. I'm just checking the example ds, whether it has been enabled or not. So, the value what I'm getting is true. By default, the example ds data source has been enabled. The next is my post request. What I'm doing, I'm setting the value named enabled. The value will be false. So, my operation requested for a reload. I will reload my server and after reloading my server, if I again execute the same command to read the resource, I got as false. So, what I'm trying to explain is like you can have a multiple command in a single script and you can do your configuration changes using this HTTP protocol. And this is the same code using a Java program. So, Java program exposes a model controller client that is a class. You need to create an object for that class, and then all the operation, you need to set the operation that read attribute what is enabled, and then you need to create a model, and then you need to just execute the command. This command will do the same process what we saw in the HTTP. So, if you are familiar with Java, you can use this native API to do your configuration level changes. So, we have a quick demo to show just how to start a server. So, I'm just showing what are the default directory which you got under the wildfly. So, you get our main important is the domain and the standalone. What we discussed was like there are two mode standalone when you need one server and when you need a two server. So, the profile which we talk about, the default profile which is provided by the wildfly, full HA, full and HA. Those are the profile which by default has been provided. The user roles and properties file, you will find inside the standalone. The application user and the management user. The same file application roles, application user, management role and management user, you will find inside the domain directory. And the domain configuration can be done in terms of domain.xml and host.xml. The domain.xml will have all those profile. Now, how simple is to start the server? I'm just starting a standalone server with the default AE profiles and the application server has been started. So, this is the line which says my application server has been started. So, there is by default the management console will be up and running. The port will be 990. I'm not able to log in because I have not created any user. So, it says use the add user script to create a user and try again. So, I will show how to create an user. So, you have a script add user.sh. You just need to execute. If you're in a window, you need to run the bat. So, there are two types of user, what we just discussed, management or application user, and then you just need to follow the instruction to create a user. So, at the end, you will see all those user has been added to the file with the path and one will be the standalone and the other will be the domain mode. So, now I have created a user test. So, I will show the content of the user properties and user roles. So, it will be inside a configuration file, configuration directory, this management user. I just created this test user and this is the MD5 encoded password. So, if I again try again, I got my username. It will ask for a username password. So, this is the management console which is provided by the Wildfly. So, all the configuration changes, these are the subsystem. You can do the configuration. You can see the runtime parameters. If you have done any patching, if you have applied any patch, you can look over there. Now, I will see how to use the CLI. CLI is the command line interface which uses the native API to execute all your code. The same command, the same HTTP which we saw to disable the example DS, we will see through the command line interface. It is very easy because all the command you can get by clicking a tab. All the possible command you can execute by clicking a tab. It is not going. So, this is the command which I am seeing. There are various commands like this version which will give you the version. So, what I am doing, I am going to a data source subsystem, my data source, my data source name, example DS. And I will just... So, I can do all those configuration. I can get the JNDI name. I can get the attributes and all the lists. These are the list of command and list of the attribute which you can run. So, now I can reload or restart the server by using the CLI command. So, I just need to do a reload. And that's all. The server has been restarted again. So, this is... The parameter of the data source, example DS. And I will try to find the enabled. The enabled value is true. I think that's all from the demo perspective. So, these are the parameters. So, what is useful? Like you can get this parameter value, name and the value in a single command. So, I think that's all. Yes. So, this has been added by the microservices. So, the mp config, mp tracing, those are the subsystem available which you can do your configuration changes and you can run your wildfly inside a container. Wildfly swarm project. Can you repeat the question? No, no. So, he is asking that if is wildfly 14, my profile is... Is anything related with the wildfly swarm, right? Yeah. So, wildfly swarm you are talking about the thontel. Because thontel also implements some of the micro profile. It's also based on small re. Small re is the project which uses the implementation of eclipse micro profile. And small re provides the implementation. I'm not much aware of thontel, how it works. But yes, wildfly uses the same small re. It has the implementation provided by the small re. So, all the micro configs. So, thank you. Thank you, guys.