Nearly everything could be considered as a service.
To get a better idea, look at the
$PLATFORM_TOMCAT_HOME/lib folder where you find all deployed
For example, see the services for databases and caching:
Of course, there are many more services, and in fact, a lot of these
.jar files are services.
To find out, open the
.jar file, then look for
If you see a file named
configuration.xml, you are sure to have found a service.
There are 2 places containing this configuration file, including:
/conf that is used by the
/conf/portal that is used by the
More details about these containers will be described later.
Interface - Implementation
It is important to get the idea that you separate the interface and implementation for a service. That is a good concept to reduce dependencies on specific implementations. This concept is well known for JDBC. If you use the standard JDBC (=interface), you can connect any database (=implementation) to your application. In a similar way, any service at eXo is defined by a Java interface and may have many different implementations. The service implementation is then injected by a container into the application.
Each service has to be implemented as a singleton, which means each service is created only once - in one single instance.
Service = Component
You read about services, and think that a service is a large application that does big things. This is not true because a service may be just a little component that reads or transforms a document. The term "component" is often used instead of "service", so bear in mind that a service and a component can safely be considered to be the same thing.