JBoss.orgCommunity Documentation
Out-of-the-box, Artificer provides a useful, default server configuration. However, if you’d like to mold it into an existing setup, here are a few areas that can be modified.
Out of the box, we provide a fairly standard set of Hibernate configuration defaults. However, for power users, note
that any Hibernate property may be set, either in artificer.properties
, environment variables, or System properties.
More specifically, literally any property prefixed by hibernate. will be handed to Hibernate during Artificer
startup. More specifics are below:
See the "Getting Started" section for information on Artificer’s provided DDL. We currently support Postgres, MySQL, Oracle, SQL Server, DB2/IBM, and H2.
By default, Artificer installs a simple, file-based H2 datasource
(see $JBOSS_HOME/standalone/deployments/artificer-h2-ds.xml
). However, any other WildFly/EAP datasource can be used.
Just edit the following in artificer.properties
:
... hibernate.dialect = org.hibernate.dialect.H2Dialect hibernate.connection.driver_class = org.h2.Driver hibernate.connection.datasource = java:jboss/datasources/artificerH2 hibernate.connection.username = sa hibernate.connection.password = sa ...
Note that a datasource is not required, although we typically recommend them. Plain JDBC connection URLs, including
external instances, are also fully supported (use hibernate.connection.url
, hibernate.connection.username
,
and hibernate.connection.password
). If a connection URL is used, Artificer will automatically wrap it with
HikariCP, a lightweight and extremely performant connection pool library.
Also note that, due to licensing, we only include the JDBC driver for H2. For all other supported databases, you’ll need to ensure that their JDBC driver JAR(s) are available on the classpath, typically through a WildFly/EAP module.
Artificer supports storing artifacts' file content on the filesystem or in JDBC Blobs. By default, we use the Blob approach. However, this is configurable at runtime. See the artificer.file.storage property in artificer.properties (values: blob or filesystem). If you use the filesystem, also include a path with the artificer.file.storage.filesystem.path property — all content will be stored there.
Although JDBC Blobs are the default (purely because they’re convenient), most databases have fairly restrictive size limits. Even more importantly, there are many vertical and horizontal performance considerations when dealing with larger files. For most use cases, we’d actually recommend using the filesystem.
For detailed information of what’s possible, please see the Hibernate docs themselves. However, a few things to highlight:
artificer.properties
as needed.The Artificer server and web UI are purposefully separated into two WARs, allowing you to run each on separate app
servers. If you do so, you’ll need to update the "artificer-ui.atom-api.endpoint" property in
artificer-ui.properties
. By default, it assumes co-location and "localhost".
If you’d like to allow remote, non-localhost connections to Artificer, you’ll need to change two items in
standalone-full.xml
: