WSO2 ESB is open source fast and popular E product which can use as middle-ware on enterprise integration. most of developers who use this ESB is not aware its directory structure and what are the inside of those directories. this article is for explain directory structure and contents.
current version of ESB is when i am write this article is 4.9.0 however this structure is not change offently and you can apply this descriptions with any versions of ESB
WSO2 ESB distribution is platform independent and download can be use in any environment. you will get zip file from above link file name will depend on the version. since i am using version 4.9 my file name is wso2esb-4.9.0.zip
you can extract this zip file and you will see directory structure like this
lets discuss about each directories. (only important directories)
this directory carrying required set of shell scripts and batch files. (shell scripts for unix users and bat files for windows users.) These scripts can be used to start WSO2 ESB, start available samples and etc. you can open shell from operation system and execute respective script for your operation system
ESB comes with H2 database. when you use registry related activities it use that as default database. however you can use your own database to store contents. when you configure ESB for external database you can use scripts which are located in this directory. it has scripts for most common databases.
this is NOT the directory which stored libraries used in ESB meditations. But this is the place ESB stored its embedded tomcat and other libraries
this is very important directory. this directory holds all libraries and artifacts used in ESB. Also configurations , logs , patches, plugins, service packs. mainly this is kind of heart of configured ESB.
this is the directory used to store external jar files. also if you are using class mediators those jar files also goes here. (there is a way to keep class mediator jar files with carbon archives. that will discuss in other article) generally all custom jar file should goes here. in order to be a part of ESB execution all component should be act as OSGI bundles. when you put non OSGI jar files to this directory ESB will automatically convert those to OSGI bundles when it startup. therefore you need to restart ESB in order to take effect newly added jar files.
As we discussed above when ESB convert external jar files to OSGI bundles it use this directory to store those files. this is an important to keep in mind. because if you just replace existing jar file after modifications of code some time it will not take effect if converted OSGI bundle of previous files are available in this directory. it is good practice to delete all files inside this directory before deploy new version.
After each release of ESB its monitoring and tracking issues via JIRA. when WSO2 fixes any issues or security enhancement they release patch for that, you need to copy those patches here. Also need to make sure not to remove anytime those patches if you want those to be effective. what ESB do is on its each startup in will take patches from this location
this is also important directory. you can change ESB behaviors from here. means configurations. there are few important files here which going to discuss in separate article.
you can deploy all esb artifacts as carbon application archive (car) file. wso2 developer studio can export its artifacts as car file and when you copy those files here ESB can automatically deploy those files. you don’t need to restart ESB to deploy carbon apps. however if your car file contains registry resources there is not guaranteed those are getting update without restart.
this is the directory which holds various log files of ESB.
this directory contains security artifacts such as keystores. when you want to ESB to communicate with secure back-ends you can import those certificated to client-truststore.jks which is located here.