For the description of your application (under directory "app/")
For engine configuration (under directory "engine/")
For service configuration (under directory "service/")
For security-related issues (under directory "service/")
These files contain the description of your application.
Please refer to this documentation to learn how to write your own application with Lavoisier.
This file is used to avoid hard-coding things like username or URL into the description of your application. The properties defined in this file can be read from your application by using the Lavoisier XPath function property(string).
The format of this file is based on the standard Java properties file format:
# a comment key1=value1 key2=value2
2 Lavoisier-specific features have been added to that standard properties format:
key2={$key1}-suffix
@INCLUDES=file1.properties file2.properties
The properties defined in this file (and its included files) are added to the JVM system properties. The web console allows you to dump all the JVM system properties if you are a authenticated as a service administrator of this Lavoisier instance.
This file is used to store sensitive content, such as passwords.
The reference to this file must be included in the app.properties file, using the special key @HIDDEN_INCLUDES (this key does not support recursion):
@HIDDEN_INCLUDES=app/app-hidden.properties
Format and features are the same as the app.properties file, but there are 2 differences with this file:
This file is used to configure post-processors. See documentation about processors and XML template to know more about how to configure post-processors.
This file is used to extend the XPath language with your own functions. It describes the signature of the functions and their implementation written in XPath language (in attribute @eval).
These custom functions belongs to the namespace "http://software.in2p3.fr/lavoisier/functions.xsd", so you need to prefix them when you are using them.
Examples:
<function name="apos" eval='concat("'", $string, "'")'> <argument>string</argument> </function>
<namespace prefix="date">http://exslt.org/dates-and-times</namespace> <function name="timestamp-to-date" eval="date:add(date:date('1970-01-01T00:00:00'),date:duration($timestamp))"> <argument>timestamp</argument> </function>
This file is used to configure the log filtering rules.
It contains 3 main parts:
See the official documentation of the Java Util Logging system to know more about what you can do with it.
This file is used to configure the service layer of your Lavoisier framework.
It supports the following properties to enable features:
It also supports any JVM system property. For example:
For example, to set your service to support HTTPS requests, you will have to set the following properties with paths to your own files:
# This activates the HTTPS listener: lavoisier.ssl.keyStore=/path/to/your/javaKeyStore_or_pkcs12cert lavoisier.ssl.keyStorePassword=changeit lavoisier.ssl.trustStore=/path/to/your/javaTrustStore_or_caCertsDirectory
If your server certificate is in a format different from JKS or PKCS12, you will have to convert it by using respectively the command keytool or the command openssl. For example, to convert a certificate from CRT format to PKCS12 format:
openssl pkcs12 -export -in localhost.crt -inkey localhost.key -out server_cert.p12
This file is used to set the routing rules for your web application.
It contains a list of key/value pair:
This file supports mapping arguments from the source URL to the target view. It also supports mapping path to arguments and arguments to path. This is done by nesting the path item and/or the argument into braces:
# application-specific routes example /vo/{voName}?service\={serviceType} = myView/root/vo[@id='{voName}']?service={serviceType}-suffix /vo/{voName}/service/{serviceType} = myView/root/vo[@id='{voName}']?service={serviceType}
The order matters ; for a given URL, the first matching rule will be applied. Unless you know what you are doing, the default rules should not be removed:
# default routes (do not remove) / = _default_?accept=html
This file is used to extend the default configuration of the Java Service Wrapper module.
The Java Service Wrapper enables a Java Application to be run as a Windows Service or UNIX Daemon. It also monitors the health of your Application and JVM.
Editing its configuration file may be needed, for example:
wrapper.java.classpath=%REPO_DIR%/my-lib.1.0.jar
wrapper.java.additional=-Dlavoisier.app.directory=../../etc/app/
The format and supported properties are the same as for the JSW configuration file, except that you don't need to number your properties when adding an item to a multi-values property.
When you make changes to this configuration file, you must run the Lavoisier command lavoisier-post-install to apply these changes to the JSW configuration file.
This file is used to configure authentication by declaring chains of authenticator plugins. See documentation about authenticators to know more about how to configure authentication for Lavoisier data views.
This file is used to set the list of allowed directories.
The authorisation is recursive: when a given directory is allowed, all its descendant directories will be allowed as well. If a directory is not allowed, or descendant of an allowed directory, then the access to its entries will be denied to any Lavoisier user (including those authenticated as service administrator).
Only the directories that are included in the Java classpath (including the Lavoisier etc/ directory) can be accessed through this resource mechanism.
However, you can still enable to files that are not included in the Java classpath by explicitly configuring a data view using the FileConnector and/or the DirectoryConnector for example. The resource-allow.txt file does not apply to this use-case.
This file is used to set the HTTP headers of Lavoisier service responses.
For example, to solve issues with cross-scripting protection, you may need to set the property Access-Control-Allow-Origin with the URL of the external site that you need to allow:
Access-Control-Allow-Origin = http://example.com