-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.xml
More file actions
135 lines (135 loc) · 66.1 KB
/
index.xml
File metadata and controls
135 lines (135 loc) · 66.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Docs on Void Framework</title><link>https://voidframework.dev/doc/</link><description>Recent content in Docs on Void Framework</description><generator>Hugo -- gohugo.io</generator><atom:link href="https://voidframework.dev/doc/index.xml" rel="self" type="application/rss+xml"/><item><title>Getting Started</title><link>https://voidframework.dev/doc/getting-started/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/getting-started/</guid><description/></item><item><title>Getting Started</title><link>https://voidframework.dev/doc/getting-started/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/getting-started/</guid><description/></item><item><title>Core</title><link>https://voidframework.dev/doc/core/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/core/</guid><description/></item><item><title>Core</title><link>https://voidframework.dev/doc/core/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/core/</guid><description/></item><item><title>Relational Databases</title><link>https://voidframework.dev/doc/relational-databases/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/relational-databases/</guid><description/></item><item><title>Relational Databases</title><link>https://voidframework.dev/doc/relational-databases/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/relational-databases/</guid><description/></item><item><title>NoSQL Databases</title><link>https://voidframework.dev/doc/nosql-databases/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/nosql-databases/</guid><description/></item><item><title>NoSQL Databases</title><link>https://voidframework.dev/doc/nosql-databases/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/nosql-databases/</guid><description/></item><item><title>Cache</title><link>https://voidframework.dev/doc/cache/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/cache/</guid><description/></item><item><title>Cache</title><link>https://voidframework.dev/doc/cache/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/cache/</guid><description/></item><item><title>Internationalization</title><link>https://voidframework.dev/doc/i18n/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/i18n/</guid><description/></item><item><title>Internationalization</title><link>https://voidframework.dev/doc/i18n/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/i18n/</guid><description/></item><item><title>REST Client</title><link>https://voidframework.dev/doc/rest-client/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/rest-client/</guid><description/></item><item><title>REST Client</title><link>https://voidframework.dev/doc/rest-client/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/rest-client/</guid><description/></item><item><title>Scheduler</title><link>https://voidframework.dev/doc/scheduler/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/scheduler/</guid><description/></item><item><title>Scheduler</title><link>https://voidframework.dev/doc/scheduler/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/scheduler/</guid><description/></item><item><title>Sendmail</title><link>https://voidframework.dev/doc/sendmail/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/sendmail/</guid><description/></item><item><title>Sendmail</title><link>https://voidframework.dev/doc/sendmail/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/sendmail/</guid><description/></item><item><title>Template</title><link>https://voidframework.dev/doc/template/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/template/</guid><description/></item><item><title>Virtual File Storage</title><link>https://voidframework.dev/doc/vfs/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/vfs/</guid><description/></item><item><title>Virtual File Storage</title><link>https://voidframework.dev/doc/vfs/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/vfs/</guid><description/></item><item><title>Web</title><link>https://voidframework.dev/doc/web/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/web/</guid><description/></item><item><title>Web</title><link>https://voidframework.dev/doc/web/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/web/</guid><description/></item><item><title>Testing</title><link>https://voidframework.dev/doc/testing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/testing/</guid><description/></item><item><title>Testing</title><link>https://voidframework.dev/doc/testing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/testing/</guid><description/></item><item><title>Advanced</title><link>https://voidframework.dev/doc/advanced/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/advanced/</guid><description/></item><item><title>Advanced</title><link>https://voidframework.dev/doc/advanced/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/advanced/</guid><description/></item><item><title>Aspect Oriented Programming</title><link>https://voidframework.dev/doc/advanced/aspect-oriented-programming/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/advanced/aspect-oriented-programming/</guid><description>Aspect Oriented Programming (AOP) includes programming methods and tools that support the modularization of concerns at the level of the source code. Void Framework manages the AOP via the AspectJ and Guice libraries. The first library is more powerful but also more complicated to use, while the latter has fewer capabilities but is simple to use.
AspectJ AspectJ runtime (aspectjrt) is already provided by the module voidframework-core, but you have to add an extra plugin to compile aspects during the compilation of your application.</description></item><item><title>Aspect Oriented Programming</title><link>https://voidframework.dev/doc/advanced/aspect-oriented-programming/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/advanced/aspect-oriented-programming/</guid><description>Aspect Oriented Programming (AOP) includes programming methods and tools that support the modularization of concerns at the level of the source code. Void Framework manages the AOP via the AspectJ and Guice libraries. The first library is more powerful but also more complicated to use, while the latter has fewer capabilities but is simple to use.
AspectJ AspectJ runtime (aspectjrt) is already provided by the module voidframework-core, but you have to add an extra plugin to compile aspects during the compilation of your application.</description></item><item><title>Boot sequence</title><link>https://voidframework.dev/doc/core/boot-sequence/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/core/boot-sequence/</guid><description>Below is a diagram describing the boot sequence of Void Framework.
S c a N n O C l N a O s s p a S R t o e h r m s t o L t c G o e l u L R a a i o e L d C s ( c a g i o s 3 e d i f l n p a s e o f a ) m G t C c .</description></item><item><title>Boot sequence</title><link>https://voidframework.dev/doc/core/boot-sequence/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/core/boot-sequence/</guid><description>Below is a diagram describing the boot sequence of Void Framework.
S c a N n O C l N a O s s p a S R t o e h r m s t o L t c G o e l u L R a a i o e L d C s ( c a g i o s 3 e d i f l n p a s e o f a ) m G t C c .</description></item><item><title>Cache engine : In-memory</title><link>https://voidframework.dev/doc/cache/in-memory-cache/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/cache/in-memory-cache/</guid><description>This implementation of the cache engine is convenient during the development phase because it avoids the installation of a distributed cache server. However, this implementation is absolutely not recommended for use in a production environment.
Installation &lt;dependency&gt; &lt;groupId&gt;dev.voidframework&lt;/groupId&gt; &lt;artifactId&gt;voidframework-cache&lt;/artifactId&gt; &lt;version&gt;1.16.0&lt;/version&gt; &lt;/dependency&gt; To enable In-memory cache engine, you have to set voidframework.cache.engine to dev.voidframework.cache.engine.MemoryCacheEngine in your application configuration file.
Configuration The following configuration key can be used in the configuration file of your application.</description></item><item><title>Cache engine : In-memory</title><link>https://voidframework.dev/doc/cache/in-memory-cache/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/cache/in-memory-cache/</guid><description>This implementation of the cache engine is convenient during the development phase because it avoids the installation of a distributed cache server. However, this implementation is absolutely not recommended for use in a production environment.
Installation &lt;dependency&gt; &lt;groupId&gt;dev.voidframework&lt;/groupId&gt; &lt;artifactId&gt;voidframework-cache&lt;/artifactId&gt; &lt;version&gt;1.16.0&lt;/version&gt; &lt;/dependency&gt; To enable In-memory cache engine, you have to set voidframework.cache.engine to dev.voidframework.cache.engine.MemoryCacheEngine in your application configuration file.
Configuration The following configuration key can be used in the configuration file of your application.</description></item><item><title>Cache engine : Redis</title><link>https://voidframework.dev/doc/cache/redis-cache/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/cache/redis-cache/</guid><description>This implementation requires the voidframework-redis module to be properly configured.
Installation &lt;dependency&gt; &lt;groupId&gt;dev.voidframework&lt;/groupId&gt; &lt;artifactId&gt;voidframework-cache-redis&lt;/artifactId&gt; &lt;version&gt;1.16.0&lt;/version&gt; &lt;/dependency&gt; To enable In-memory cache engine, you have to set voidframework.cache.engine to dev.voidframework.cache.engine.RedisCacheEngine in your application configuration file.
Redis module must be properly configured, read more about Redis configuration.</description></item><item><title>Cache engine : Redis</title><link>https://voidframework.dev/doc/cache/redis-cache/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/cache/redis-cache/</guid><description>This implementation requires the voidframework-redis module to be properly configured.
Installation &lt;dependency&gt; &lt;groupId&gt;dev.voidframework&lt;/groupId&gt; &lt;artifactId&gt;voidframework-cache-redis&lt;/artifactId&gt; &lt;version&gt;1.16.0&lt;/version&gt; &lt;/dependency&gt; To enable In-memory cache engine, you have to set voidframework.cache.engine to dev.voidframework.cache.engine.RedisCacheEngine in your application configuration file.
Redis module must be properly configured, read more about Redis configuration.</description></item><item><title>Class scanning</title><link>https://voidframework.dev/doc/core/class-scanning/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/core/class-scanning/</guid><description>The core of the Void Framework is based on the scanning of different paths to discover elements to load. 5 types of elements are recognised during the scan:
Classes implementing com.google.inject.Module or extending com.google.inject.AbstractModule Classes annotated with Bindable familly annotation Classes implementing defined interface Classes annotated with Aspect annotation Interfaces annotated with Proxyable annotation Guice module Guice modules that extend the abstract class AbstractModule are automatically detected and loaded when the application starts.</description></item><item><title>Class scanning</title><link>https://voidframework.dev/doc/core/class-scanning/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/core/class-scanning/</guid><description>The core of the Void Framework is based on the scanning of different paths to discover elements to load. 5 types of elements are recognised during the scan:
Classes implementing com.google.inject.Module or extending com.google.inject.AbstractModule Classes annotated with Bindable familly annotation Classes implementing defined interface Classes annotated with Aspect annotation Interfaces annotated with Proxyable annotation Guice module Guice modules that extend the abstract class AbstractModule are automatically detected and loaded when the application starts.</description></item><item><title>Conditional feature</title><link>https://voidframework.dev/doc/core/conditional-feature/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/core/conditional-feature/</guid><description>Depending on your runtime environment, you may only need to run a few features of your application. And so, load only the necessary modules and bindable classes.
@ConditionalFeature The @ConditionalFeature annotation allows a feature to be enabled or disabled depending on the processing performed by the class supplied as a parameter. This class must implement the Condition interface.
The annotation accepts the following parameter:
value is used to define the implementation of Condition interface to use.</description></item><item><title>Conditional feature</title><link>https://voidframework.dev/doc/core/conditional-feature/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/core/conditional-feature/</guid><description>Depending on your runtime environment, you may only need to run a few features of your application. And so, load only the necessary modules and bindable classes.
@ConditionalFeature The @ConditionalFeature annotation allows a feature to be enabled or disabled depending on the processing performed by the class supplied as a parameter. This class must implement the Condition interface.
The annotation accepts the following parameter:
value is used to define the implementation of Condition interface to use.</description></item><item><title>Configuration</title><link>https://voidframework.dev/doc/core/configuration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/core/configuration/</guid><description>Void Framework use a configuration file format is HOCON (Human-Optimized Config Object Notation). This format supports types such as integer, long, boolean, double, string, list and object. It is also possible to include other files by using include. There are two ways to write comments: using // or #. Comments can be written in-line at the end of the line or in separate lines. For more information on Typesafe Config, visit the Github project&rsquo;s page.</description></item><item><title>Configuration</title><link>https://voidframework.dev/doc/core/configuration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/core/configuration/</guid><description>Void Framework use a configuration file format is HOCON (Human-Optimized Config Object Notation). This format supports types such as integer, long, boolean, double, string, list and object. It is also possible to include other files by using include. There are two ways to write comments: using // or #. Comments can be written in-line at the end of the line or in separate lines. For more information on Typesafe Config, visit the Github project&rsquo;s page.</description></item><item><title>Controller</title><link>https://voidframework.dev/doc/web/controller/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/web/controller/</guid><description>Controllers receive incoming web requests, process them and return a result. They are the entry point to your web application. Controllers can return almost any type of data, as long as it is handled by the Result object. It is a convention imposed by Void Framework that methods which handle incoming requests must return a Result.
Example
@Singleton @WebController(prefixRoute = &#34;/account&#34;) public class AccountController { @RequestRoute(route = &#34;/(?&lt;accountId&gt;[a-f0-9]+)&#34;) public Result showAccount(@RequestPath(&#34;accountId&#34;) final String accountId) { return Result.</description></item><item><title>Controller</title><link>https://voidframework.dev/doc/web/controller/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/web/controller/</guid><description>Controllers receive incoming web requests, process them and return a result. They are the entry point to your web application. Controllers can return almost any type of data, as long as it is handled by the Result object. It is a convention imposed by Void Framework that methods which handle incoming requests must return a Result.
Example
@Singleton @WebController(prefixRoute = &#34;/account&#34;) public class AccountController { @RequestRoute(route = &#34;/(?&lt;accountId&gt;[a-f0-9]+)&#34;) public Result showAccount(@RequestPath(&#34;accountId&#34;) final String accountId) { return Result.</description></item><item><title>Creating a new application</title><link>https://voidframework.dev/doc/getting-started/new-application/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/getting-started/new-application/</guid><description>To create a new application with Void Framework, simply create a new Maven project and then add the necessary dependencies.
Maven The very first dependency to include in your pom.xml is voidframework-core, without it you will not be able to start the application. The dependencies to be added will depend on the features you wish to use on your application, so do not hesitate to consult the different chapters of the documentation.</description></item><item><title>Creating a new application</title><link>https://voidframework.dev/doc/getting-started/new-application/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/getting-started/new-application/</guid><description>To create a new application with Void Framework, simply create a new Maven project and then add the necessary dependencies.
Maven The very first dependency to include in your pom.xml is voidframework-core, without it you will not be able to start the application. The dependencies to be added will depend on the features you wish to use on your application, so do not hesitate to consult the different chapters of the documentation.</description></item><item><title>Creating Module</title><link>https://voidframework.dev/doc/advanced/creating-module/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/advanced/creating-module/</guid><description>Do you want to create a Guice module that will be loaded when your application starts? Nothing could be simpler than creating an implementation of the abstract class AbstractModule or the interface Module.
To meet all needs, the Void Framework provides the ability to obtain additional information via the module&rsquo;s constructor. As a constructor&rsquo;s parameter, you could optionally use the following elements:
Config the current configuration of the application ScannedClassesToLoad the classes that were scanned when the application started if a module needs to be loaded before another, you can use the OrderedModule interface.</description></item><item><title>Creating Module</title><link>https://voidframework.dev/doc/advanced/creating-module/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/advanced/creating-module/</guid><description>Do you want to create a Guice module that will be loaded when your application starts? Nothing could be simpler than creating an implementation of the abstract class AbstractModule or the interface Module.
To meet all needs, the Void Framework provides the ability to obtain additional information via the module&rsquo;s constructor. As a constructor&rsquo;s parameter, you could optionally use the following elements:
Config the current configuration of the application ScannedClassesToLoad the classes that were scanned when the application started if a module needs to be loaded before another, you can use the OrderedModule interface.</description></item><item><title>CSRF</title><link>https://voidframework.dev/doc/web/security-csrf/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/web/security-csrf/</guid><description>Cross-site request forgery (CSRF), also known as one-click attack or session riding, is a type of malicious vector attack of a website where unauthorized commands are submitted from a user that the web application trusts.
&nbsp; It is recommended that you familiarize yourself with CSRF. We recommend starting with this information from OWASP. Void Framework provides a CSRF filter that can be applied globally to all requests or only on specific endpoints.</description></item><item><title>Data source</title><link>https://voidframework.dev/doc/relational-databases/datasource/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/relational-databases/datasource/</guid><description>Your application needs to connect to one or more databases? Void Framework is capable of handling multiple data sources at the same time through the use of DataSourceManager. It will provide all the necessary methods to obtain a connection from the desired data source. Each data source can be configured independently. Your application can, for example, be connected to PostgreSQL and Oracle at the same time.
Installation Void Framework offers different implementations, depending on the implementation chosen, the configuration keys may change.</description></item><item><title>Data source</title><link>https://voidframework.dev/doc/relational-databases/datasource/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/relational-databases/datasource/</guid><description>Your application needs to connect to one or more databases? Void Framework is capable of handling multiple data sources at the same time through the use of DataSourceManager. It will provide all the necessary methods to obtain a connection from the desired data source. Each data source can be configured independently. Your application can, for example, be connected to PostgreSQL and Oracle at the same time.
Installation Void Framework offers different implementations, depending on the implementation chosen, the configuration keys may change.</description></item><item><title>Filters</title><link>https://voidframework.dev/doc/web/filters/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/web/filters/</guid><description>Filters are the middleware and are individual functions that make up the request processing pipeline.
&nbsp; Note that the use of dependencies direct injection is possible in filters. Specific filters The use of filters is done through the use of the @WithFiter annotation. It is possible to specify as many filters as you wish, the order in which they are declared representing the order in which they are used.
@FilterWith({FirstFilter.java, SecondFilter.</description></item><item><title>Filters</title><link>https://voidframework.dev/doc/web/filters/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/web/filters/</guid><description>Filters are the middleware and are individual functions that make up the request processing pipeline.
&nbsp; Note that the use of dependencies direct injection is possible in filters. Specific filters The use of filters is done through the use of the @WithFiter annotation. It is possible to specify as many filters as you wish, the order in which they are declared representing the order in which they are used.
@FilterWith({FirstFilter.java, SecondFilter.</description></item><item><title>FreeMarker</title><link>https://voidframework.dev/doc/template/freemarker/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/template/freemarker/</guid><description>To generate HTML document with FreeMarker, you have to use the module voidframework-template-freemarker.
Installation &lt;dependency&gt; &lt;groupId&gt;dev.voidframework&lt;/groupId&gt; &lt;artifactId&gt;voidframework-template-freemarker&lt;/artifactId&gt; &lt;version&gt;1.16.0&lt;/version&gt; &lt;/dependency&gt; Templates location By default, templates should be placed in the resources/views directory.
Configuration The following configuration keys can be used in the configuration file of your application:
voidframework.template.basePackagePath the location of the templates. The default value is &quot;/views/&quot;. Built-in methods &amp; variables By default, modules web and template-freemarker provide a set of methods and variables that will be accessible in templates.</description></item><item><title>FreeMarker</title><link>https://voidframework.dev/doc/template/freemarker/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/template/freemarker/</guid><description>To generate HTML document with FreeMarker, you have to use the module voidframework-template-freemarker.
Installation &lt;dependency&gt; &lt;groupId&gt;dev.voidframework&lt;/groupId&gt; &lt;artifactId&gt;voidframework-template-freemarker&lt;/artifactId&gt; &lt;version&gt;1.16.0&lt;/version&gt; &lt;/dependency&gt; Templates location By default, templates should be placed in the resources/views directory.
Configuration The following configuration keys can be used in the configuration file of your application:
voidframework.template.basePackagePath the location of the templates. The default value is &quot;/views/&quot;. Built-in methods &amp; variables By default, modules web and template-freemarker provide a set of methods and variables that will be accessible in templates.</description></item><item><title>H2</title><link>https://voidframework.dev/doc/relational-databases/h2/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/relational-databases/h2/</guid><description>H2 is an open-source lightweight relational database. It allows you to quickly have an operational database and its use is very practical during the development phase of an application. This module provides the H2 dependency and the useful H2 web console.
Installation To enable this module, just add following lines to the pom.xml file of your project.
&lt;dependency&gt; &lt;groupId&gt;dev.voidframework&lt;/groupId&gt; &lt;artifactId&gt;voidframework-h2&lt;/artifactId&gt; &lt;version&gt;1.16.0&lt;/version&gt; &lt;/dependency&gt; Configuration The following configuration keys can be used in the configuration file of your application:</description></item><item><title>H2</title><link>https://voidframework.dev/doc/relational-databases/h2/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/relational-databases/h2/</guid><description>H2 is an open-source lightweight relational database. It allows you to quickly have an operational database and its use is very practical during the development phase of an application. This module provides the H2 dependency and the useful H2 web console.
Installation To enable this module, just add following lines to the pom.xml file of your project.
&lt;dependency&gt; &lt;groupId&gt;dev.voidframework&lt;/groupId&gt; &lt;artifactId&gt;voidframework-h2&lt;/artifactId&gt; &lt;version&gt;1.16.0&lt;/version&gt; &lt;/dependency&gt; Configuration The following configuration keys can be used in the configuration file of your application:</description></item><item><title>Hibernate</title><link>https://voidframework.dev/doc/relational-databases/persistence-hibernate/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/relational-databases/persistence-hibernate/</guid><description>Hibernate is an Object Relational Mapper (ORM). It provides a framework for mapping an object-oriented domain model to a relational database.
&nbsp; Void Framework uses Hibernate 6 (or higher), which that means Java persistence is no longer defined by the Java Persistence API under Java EE, but rather by to the Jakarta Persistence 3.0 specification under Jakarta EE. This means the javax.persistence package is no longer available and is replaced by jakarta.</description></item><item><title>Hibernate</title><link>https://voidframework.dev/doc/relational-databases/persistence-hibernate/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/relational-databases/persistence-hibernate/</guid><description>Hibernate is an Object Relational Mapper (ORM). It provides a framework for mapping an object-oriented domain model to a relational database.
&nbsp; Void Framework uses Hibernate 6 (or higher), which that means Java persistence is no longer defined by the Java Persistence API under Java EE, but rather by to the Jakarta Persistence 3.0 specification under Jakarta EE. This means the javax.persistence package is no longer available and is replaced by jakarta.</description></item><item><title>jOOQ ORM</title><link>https://voidframework.dev/doc/relational-databases/persistence-jooq/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/relational-databases/persistence-jooq/</guid><description>jOOQ is an Object Relational Mapper (ORM). It provides a framework for mapping an object-oriented domain model to a relational database.
Installation This module adds support for the Transactional annotation as well as setting up an DSLContext provider pre-configured with all the data sources configured via the datasource module. There is no special configuration to apply, just add the voidframework-persistence-jooq module to the pom.xml file of your project.
&lt;dependency&gt; &lt;groupId&gt;dev.voidframework&lt;/groupId&gt; &lt;artifactId&gt;voidframework-persistence-jooq&lt;/artifactId&gt; &lt;version&gt;1.</description></item><item><title>jOOQ ORM</title><link>https://voidframework.dev/doc/relational-databases/persistence-jooq/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/relational-databases/persistence-jooq/</guid><description>jOOQ is an Object Relational Mapper (ORM). It provides a framework for mapping an object-oriented domain model to a relational database.
Installation This module adds support for the Transactional annotation as well as setting up an DSLContext provider pre-configured with all the data sources configured via the datasource module. There is no special configuration to apply, just add the voidframework-persistence-jooq module to the pom.xml file of your project.
&lt;dependency&gt; &lt;groupId&gt;dev.voidframework&lt;/groupId&gt; &lt;artifactId&gt;voidframework-persistence-jooq&lt;/artifactId&gt; &lt;version&gt;1.</description></item><item><title>JUnit's extension</title><link>https://voidframework.dev/doc/testing/junit-extension/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/testing/junit-extension/</guid><description>It is very important to test the code of an application. Void Framework provides tools for JUnit 5 to run your unit tests in a ready-to-use context as well as with support for Mockito annotations.
To enable this module, just add following lines to the pom.xml file of your project.
&lt;dependency&gt; &lt;groupId&gt;dev.voidframework&lt;/groupId&gt; &lt;artifactId&gt;voidframework-test&lt;/artifactId&gt; &lt;version&gt;1.16.0&lt;/version&gt; &lt;/dependency&gt; JUnit&rsquo;s extension The JUnit 5 extension will initialise the Void Framework application and initialise the variables annotated with Mockito annotations.</description></item><item><title>JUnit's extension</title><link>https://voidframework.dev/doc/testing/junit-extension/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/testing/junit-extension/</guid><description>It is very important to test the code of an application. Void Framework provides tools for JUnit 5 to run your unit tests in a ready-to-use context as well as with support for Mockito annotations.
To enable this module, just add following lines to the pom.xml file of your project.
&lt;dependency&gt; &lt;groupId&gt;dev.voidframework&lt;/groupId&gt; &lt;artifactId&gt;voidframework-test&lt;/artifactId&gt; &lt;version&gt;1.16.0&lt;/version&gt; &lt;/dependency&gt; JUnit&rsquo;s extension The JUnit 5 extension will initialise the Void Framework application and initialise the variables annotated with Mockito annotations.</description></item><item><title>Lang</title><link>https://voidframework.dev/doc/core/lang/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/core/lang/</guid><description>The dev.voidframework.core.lang package contains a set of Java classes that extend the basic JDK.
CUID CUID is a collision-resistant ID optimized for horizontal scaling and performance. Read more at https://usecuid.org/. Read the Java file to get more information about available methods.
// Random CUID final CUID cuid = CUID.randomCUID(); // CUID from String representating a CUID final CUID cuid = CUID.fromString(&#34;cl9gts1kw00393647w1z4v2tc&#34;); // Check if String contains a valid CUID (implicitly called by &#34;fromString&#34; method) final boolean isValid = CUID.</description></item><item><title>Lang</title><link>https://voidframework.dev/doc/core/lang/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/core/lang/</guid><description>The dev.voidframework.core.lang package contains a set of Java classes that extend the basic JDK.
CUID CUID is a collision-resistant ID optimized for horizontal scaling and performance. Read more at https://usecuid.org/. Read the Java file to get more information about available methods.
// Random CUID final CUID cuid = CUID.randomCUID(); // CUID from String representating a CUID final CUID cuid = CUID.fromString(&#34;cl9gts1kw00393647w1z4v2tc&#34;); // Check if String contains a valid CUID (implicitly called by &#34;fromString&#34; method) final boolean isValid = CUID.</description></item><item><title>Life cycle</title><link>https://voidframework.dev/doc/core/life-cycle/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/core/life-cycle/</guid><description>Void Framework provides a way to manage the life of a component. The @LifeCycleStart and @LifeCycleStop annotations allow you to define the methods to be called automatically when the application is started and stopped.
&nbsp; It is possible to have several methods of a class annotated with the same annotation. @LifeCycleStart Indicates that this method should be called when the application starts.
The annotation accepts the following parameter:
priority is used to define when the method will be called in relation to the others.</description></item><item><title>Life cycle</title><link>https://voidframework.dev/doc/core/life-cycle/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/core/life-cycle/</guid><description>Void Framework provides a way to manage the life of a component. The @LifeCycleStart and @LifeCycleStop annotations allow you to define the methods to be called automatically when the application is started and stopped.
&nbsp; It is possible to have several methods of a class annotated with the same annotation. @LifeCycleStart Indicates that this method should be called when the application starts.
The annotation accepts the following parameter:
priority is used to define when the method will be called in relation to the others.</description></item><item><title>Mailer : Apache Commons Email</title><link>https://voidframework.dev/doc/sendmail/mailer-apache-commons-email/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/sendmail/mailer-apache-commons-email/</guid><description>This implementation of the mailer uses the Apache Commons Email library. It allows you to easily send email via SMTP.
Installation &lt;dependency&gt; &lt;groupId&gt;dev.voidframework&lt;/groupId&gt; &lt;artifactId&gt;voidframework-sendmail-commonsemail&lt;/artifactId&gt; &lt;version&gt;1.16.0&lt;/version&gt; &lt;/dependency&gt; To enable this mailer, you have to set voidframework.sendmail.engine to dev.voidframework.sendmail.engine.ApacheCommonsEmailMailerEngine in your application configuration file.
Configuration The following configuration keys can be used in the configuration file of your application:
voidframework.sendmail.commonsemail.username user name for authentication. The default value is null. voidframework.sendmail.commonsemail.password password for authentication.</description></item><item><title>Mailer : Apache Commons Email</title><link>https://voidframework.dev/doc/sendmail/mailer-apache-commons-email/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/sendmail/mailer-apache-commons-email/</guid><description>This implementation of the mailer uses the Apache Commons Email library. It allows you to easily send email via SMTP.
Installation &lt;dependency&gt; &lt;groupId&gt;dev.voidframework&lt;/groupId&gt; &lt;artifactId&gt;voidframework-sendmail-commonsemail&lt;/artifactId&gt; &lt;version&gt;1.16.0&lt;/version&gt; &lt;/dependency&gt; To enable this mailer, you have to set voidframework.sendmail.engine to dev.voidframework.sendmail.engine.ApacheCommonsEmailMailerEngine in your application configuration file.
Configuration The following configuration keys can be used in the configuration file of your application:
voidframework.sendmail.commonsemail.username user name for authentication. The default value is null. voidframework.sendmail.commonsemail.password password for authentication.</description></item><item><title>Mailer : Dummy</title><link>https://voidframework.dev/doc/sendmail/mailer-dummy/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/sendmail/mailer-dummy/</guid><description>This implementation is particularly useful locally during development. It simply displays the email in the console rather than sending a real email.
Installation To enable this mailer, you have to set voidframework.sendmail.engine to dev.voidframework.sendmail.engine.DummyMailerEngine in your application configuration file.</description></item><item><title>Mailer : Dummy</title><link>https://voidframework.dev/doc/sendmail/mailer-dummy/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/sendmail/mailer-dummy/</guid><description>This implementation is particularly useful locally during development. It simply displays the email in the console rather than sending a real email.
Installation To enable this mailer, you have to set voidframework.sendmail.engine to dev.voidframework.sendmail.engine.DummyMailerEngine in your application configuration file.</description></item><item><title>Redis</title><link>https://voidframework.dev/doc/nosql-databases/redis/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/nosql-databases/redis/</guid><description>Sometimes a relational database does not fit the need, so you have to turn to more specific, non-relational databases. Void Framework provides the tools to use the NoSQL database Redis.
Installation To enable this module, just add following lines to the pom.xml file of your project.
&lt;dependency&gt; &lt;groupId&gt;dev.voidframework&lt;/groupId&gt; &lt;artifactId&gt;voidframework-redis&lt;/artifactId&gt; &lt;version&gt;1.16.0&lt;/version&gt; &lt;/dependency&gt; Configuration The following configuration key can be used in the configuration file of your application.
voidframework.redis.host the Redis server host.</description></item><item><title>Redis</title><link>https://voidframework.dev/doc/nosql-databases/redis/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/nosql-databases/redis/</guid><description>Sometimes a relational database does not fit the need, so you have to turn to more specific, non-relational databases. Void Framework provides the tools to use the NoSQL database Redis.
Installation To enable this module, just add following lines to the pom.xml file of your project.
&lt;dependency&gt; &lt;groupId&gt;dev.voidframework&lt;/groupId&gt; &lt;artifactId&gt;voidframework-redis&lt;/artifactId&gt; &lt;version&gt;1.16.0&lt;/version&gt; &lt;/dependency&gt; Configuration The following configuration key can be used in the configuration file of your application.
voidframework.redis.host the Redis server host.</description></item><item><title>reference.conf</title><link>https://voidframework.dev/doc/advanced/advanced/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/advanced/advanced/</guid><description>The reference.conf files define the various configuration keys and default values. These files are the first to be loaded when the application starts. On this page you will find links to the complete list of reference.conf files used by Void Framework.
voidframework-bucket4j reference.conf voidframework-cache reference.conf voidframework-core reference.conf voidframework-datasource-c3p0 reference.conf voidframework-datasource-hikaricp reference.conf voidframework-healthcheck reference.conf voidframework-i18n reference.conf voidframework-migration-flyway reference.conf voidframework-persistence-hibernate reference.conf voidframework-redis reference.conf voidframework-remoteconf-etcd reference.conf voidframework-remoteconf-http reference.conf voidframework-restclient reference.conf voidframework-scheduler reference.conf voidframework-sendmail reference.</description></item><item><title>reference.conf</title><link>https://voidframework.dev/doc/advanced/advanced/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/advanced/advanced/</guid><description>The reference.conf files define the various configuration keys and default values. These files are the first to be loaded when the application starts. On this page you will find links to the complete list of reference.conf files used by Void Framework.
voidframework-bucket4j reference.conf voidframework-cache reference.conf voidframework-core reference.conf voidframework-datasource-c3p0 reference.conf voidframework-datasource-hikaricp reference.conf voidframework-healthcheck reference.conf voidframework-i18n reference.conf voidframework-migration-flyway reference.conf voidframework-persistence-hibernate reference.conf voidframework-redis reference.conf voidframework-remoteconf-etcd reference.conf voidframework-remoteconf-http reference.conf voidframework-restclient reference.conf voidframework-scheduler reference.conf voidframework-sendmail reference.</description></item><item><title>Render template</title><link>https://voidframework.dev/doc/web/render-template/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/web/render-template/</guid><description>The web module also integrates the template module with the Freemarker rendering engine by default. This allows controllers to return html content easily.
Although you can manually use the template engine, in most cases this would not be handy. However, you can use the TemplateResult class which will make it easier to use the renderer.
Built-in methods &amp; variables By default, the module voidframework-template-freemarker provide a set of methods and variables that will be accessible in templates.</description></item><item><title>Requirements</title><link>https://voidframework.dev/doc/getting-started/requirements/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/getting-started/requirements/</guid><description>To use the Void Framework, you need Java JDK 17 or higher, Maven 3 or higher and the Void Framework JAR files. These JAR files are published to the Maven Repository.
Verifying and installing Java To check that you have Java JDK 17 or higher, enter the following in a shell:
#&gt; java -version You should see something like:
openjdk version &#34;17.0.2&#34; 2022-01-18 OpenJDK Runtime Environment (build 17.0.2+8-86) OpenJDK 64-Bit Server VM (build 17.</description></item><item><title>Requirements</title><link>https://voidframework.dev/doc/getting-started/requirements/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/getting-started/requirements/</guid><description>To use the Void Framework, you need Java JDK 17 or higher, Maven 3 or higher and the Void Framework JAR files. These JAR files are published to the Maven Repository.
Verifying and installing Java To check that you have Java JDK 17 or higher, enter the following in a shell:
#&gt; java -version You should see something like:
openjdk version &#34;17.0.2&#34; 2022-01-18 OpenJDK Runtime Environment (build 17.0.2+8-86) OpenJDK 64-Bit Server VM (build 17.</description></item><item><title>Retrofit 2</title><link>https://voidframework.dev/doc/rest-client/retrofit2/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/rest-client/retrofit2/</guid><description>Retrofit 2 is a REST Client for Java allowing to retrieve and upload data via HTTP.
Installation To enable this module, just add following lines to the pom.xml file of your project.
&lt;dependency&gt; &lt;groupId&gt;dev.voidframework&lt;/groupId&gt; &lt;artifactId&gt;voidframework-restclient&lt;/artifactId&gt; &lt;version&gt;1.16.0&lt;/version&gt; &lt;/dependency&gt; How it work All interfaces annotated with @RestClient will be automatically proxyfied with the Retrofit 2 client.
Configuration The following configuration key can be used in the configuration file of your application
voidframework.restclient.maxIdleConnections the number of connection to keep idle.</description></item><item><title>Retrofit 2</title><link>https://voidframework.dev/doc/rest-client/retrofit2/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/rest-client/retrofit2/</guid><description>Retrofit 2 is a REST Client for Java allowing to retrieve and upload data via HTTP.
Installation To enable this module, just add following lines to the pom.xml file of your project.
&lt;dependency&gt; &lt;groupId&gt;dev.voidframework&lt;/groupId&gt; &lt;artifactId&gt;voidframework-restclient&lt;/artifactId&gt; &lt;version&gt;1.16.0&lt;/version&gt; &lt;/dependency&gt; How it work All interfaces annotated with @RestClient will be automatically proxyfied with the Retrofit 2 client.
Configuration The following configuration key can be used in the configuration file of your application
voidframework.restclient.maxIdleConnections the number of connection to keep idle.</description></item><item><title>Scheduling a local job</title><link>https://voidframework.dev/doc/scheduler/scheduling-job-cron/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/scheduler/scheduling-job-cron/</guid><description>If your application have to schedule a job in a scheduled way (ie: every 5 seconds), not dependending when the application has started, you can schedule job by using delay. In other hand, if you want a precise scheduling not depending on when the application has started, you can use a CRON expression.
Installation To enable this module, just add following lines to the pom.xml file of your project.
&lt;dependency&gt; &lt;groupId&gt;dev.</description></item><item><title>Scheduling a local job</title><link>https://voidframework.dev/doc/scheduler/scheduling-job-cron/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/scheduler/scheduling-job-cron/</guid><description>If your application have to schedule a job in a scheduled way (ie: every 5 seconds), not dependending when the application has started, you can schedule job by using delay. In other hand, if you want a precise scheduling not depending on when the application has started, you can use a CRON expression.
Installation To enable this module, just add following lines to the pom.xml file of your project.
&lt;dependency&gt; &lt;groupId&gt;dev.</description></item><item><title>Security headers</title><link>https://voidframework.dev/doc/web/security-headers/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/web/security-headers/</guid><description>Void Framework provides a basic filter to add certain headers to HTTP responses by default. These headers allow you to add an extra level of security to your application.
Configuration The following configuration keys can be used in the configuration file of your application.
voidframework.web.securityHeaders.contentTypeOptions the value for the header &ldquo;X-Content-Type-Options&rdquo;. The default value is nosniff. voidframework.web.securityHeaders.frameOptions the value for the header &ldquo;X-Frame-Options&rdquo;. The default value is DENY. voidframework.web.securityHeaders.xssProtection the value for the header &ldquo;X-XSS-Protection&rdquo;.</description></item><item><title>Sending emails</title><link>https://voidframework.dev/doc/sendmail/sending-emails/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/sendmail/sending-emails/</guid><description>If your application needs to send a few emails, you can easily do so via the voidframework-sendmail module. Sending emails is a not blocking operation, the emails are added to a queue that will be consumed asynchronously.
Installation &lt;dependency&gt; &lt;groupId&gt;dev.voidframework&lt;/groupId&gt; &lt;artifactId&gt;voidframework-sendmail&lt;/artifactId&gt; &lt;version&gt;1.16.0&lt;/version&gt; &lt;/dependency&gt; In addition to this basic module, you will need a mailer implementation. By default, the base module provides an implementation intended for local testing. For normal use, you can for example use the voidframework-sendmail-commonsemail module</description></item><item><title>Sending emails</title><link>https://voidframework.dev/doc/sendmail/sending-emails/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/sendmail/sending-emails/</guid><description>If your application needs to send a few emails, you can easily do so via the voidframework-sendmail module. Sending emails is a not blocking operation, the emails are added to a queue that will be consumed asynchronously.
Installation &lt;dependency&gt; &lt;groupId&gt;dev.voidframework&lt;/groupId&gt; &lt;artifactId&gt;voidframework-sendmail&lt;/artifactId&gt; &lt;version&gt;1.16.0&lt;/version&gt; &lt;/dependency&gt; In addition to this basic module, you will need a mailer implementation. By default, the base module provides an implementation intended for local testing. For normal use, you can for example use the voidframework-sendmail-commonsemail module</description></item><item><title>Session</title><link>https://voidframework.dev/doc/web/session/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/web/session/</guid><description>If you need to store data between HTTP requests, you can store it in the session. The data stored in the session is available throughout the user&rsquo;s session.
&nbsp; Note that the session is not stored on the server side, but on the client side via the use of a digitally signed Cookie. Because session is implemented using cookies, there are some implications. The data size is limited to 4 KiB Only string can be stored Configuration The following configuration keys can be used in the configuration file of your application.</description></item><item><title>Session</title><link>https://voidframework.dev/doc/web/session/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/web/session/</guid><description>If you need to store data between HTTP requests, you can store it in the session. The data stored in the session is available throughout the user&rsquo;s session.
&nbsp; Note that the session is not stored on the server side, but on the client side via the use of a digitally signed Cookie. Because session is implemented using cookies, there are some implications. The data size is limited to 4 KiB Only string can be stored Configuration The following configuration keys can be used in the configuration file of your application.</description></item><item><title>Transactional</title><link>https://voidframework.dev/doc/relational-databases/transactional/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/relational-databases/transactional/</guid><description>It is possible to work within a transaction in two ways: manually or via the use of the @Transactional annotation. The first one is highly dependent of the used backend (ie: Hibernate vs jOOQ), the second one is fully handled by Void Framework. For more information on the manual management of transactions, go to the page corresponding to the backend used.
@Transactional The transactional annotation itself defines the scope of a single database transaction.</description></item><item><title>Transactional</title><link>https://voidframework.dev/doc/relational-databases/transactional/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/relational-databases/transactional/</guid><description>It is possible to work within a transaction in two ways: manually or via the use of the @Transactional annotation. The first one is highly dependent of the used backend (ie: Hibernate vs jOOQ), the second one is fully handled by Void Framework. For more information on the manual management of transactions, go to the page corresponding to the backend used.
@Transactional The transactional annotation itself defines the scope of a single database transaction.</description></item><item><title>Type conversion</title><link>https://voidframework.dev/doc/core/type-conversion/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/core/type-conversion/</guid><description>Type conversion is a mechanism for converting data from one type to another. For example, convert the string &ldquo;1234&rdquo; to an integer. The conversion is very useful when moving from one layer to another in DDD-based architectures. It is also used in the web feature to convert path param to typed values in the controller.
Using conversion The conversion is used via the Conversion service which is accessible via direct injection.</description></item><item><title>Type conversion</title><link>https://voidframework.dev/doc/core/type-conversion/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/core/type-conversion/</guid><description>Type conversion is a mechanism for converting data from one type to another. For example, convert the string &ldquo;1234&rdquo; to an integer. The conversion is very useful when moving from one layer to another in DDD-based architectures. It is also used in the web feature to convert path param to typed values in the controller.
Using conversion The conversion is used via the Conversion service which is accessible via direct injection.</description></item><item><title>Upgrading from old version</title><link>https://voidframework.dev/doc/getting-started/upgrading-from-old-version/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/getting-started/upgrading-from-old-version/</guid><description>Sometimes important changes will be introduced that will break the backwards compatibility with older versions of the framework. On this page you will find the necessary steps to make your application work with the latest version.
1.0.0 Initial release
1.1.0 ApplicationLauncher has been renamed to VoidApplication The setting key voidframework.web.session.signatureKey is now required 1.2.0 The CSRF filter has been moved to the dev.voidframework.web.http.filter.csrf package, if you use this filter in your application, you will need to modify the configuration key voidframework.</description></item><item><title>Using cache</title><link>https://voidframework.dev/doc/cache/using-cache/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/cache/using-cache/</guid><description>Void Framework provides the tools to use a cache system. Caching can be done in two different ways, via the use of annotations or programmatically via the use of the CacheEngine.
&nbsp; If no CacheEngine implementation was specified, the cache will not be active. &nbsp; Note that caching a Result (Web) object can lead to errors during deserialization, especially if Result contains an InputStream. Serialization and deserialization of cached objects is handled by the Kryo library.</description></item><item><title>Using cache</title><link>https://voidframework.dev/doc/cache/using-cache/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/cache/using-cache/</guid><description>Void Framework provides the tools to use a cache system. Caching can be done in two different ways, via the use of annotations or programmatically via the use of the CacheEngine.
&nbsp; If no CacheEngine implementation was specified, the cache will not be active. &nbsp; Note that caching a Result (Web) object can lead to errors during deserialization, especially if Result contains an InputStream. Serialization and deserialization of cached objects is handled by the Kryo library.</description></item><item><title>Using internationalization</title><link>https://voidframework.dev/doc/internationalization/using-i18n/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/internationalization/using-i18n/</guid><description>Depending on your needs, you may need to use translated messages in different languages. By default the Void Framework provides a ResourceBundle based implementation. If your needs require more advanced management or different storage (ie: DB rather than files), you can easily use your own implementation.
To enable this module, just add following lines to the pom.xml file of your project.
&lt;dependency&gt; &lt;groupId&gt;dev.voidframework&lt;/groupId&gt; &lt;artifactId&gt;voidframework-i18n&lt;/artifactId&gt; &lt;version&gt;1.16.0&lt;/version&gt; &lt;/dependency&gt; Defining messages Translations should be placed in a file named messages_&lt;LANG&gt;.</description></item><item><title>Using internationalization</title><link>https://voidframework.dev/doc/internationalization/using-i18n/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/internationalization/using-i18n/</guid><description>Depending on your needs, you may need to use translated messages in different languages. By default the Void Framework provides a ResourceBundle based implementation. If your needs require more advanced management or different storage (ie: DB rather than files), you can easily use your own implementation.
To enable this module, just add following lines to the pom.xml file of your project.
&lt;dependency&gt; &lt;groupId&gt;dev.voidframework&lt;/groupId&gt; &lt;artifactId&gt;voidframework-i18n&lt;/artifactId&gt; &lt;version&gt;1.16.0&lt;/version&gt; &lt;/dependency&gt; Defining messages Translations should be placed in a file named messages_&lt;LANG&gt;.</description></item><item><title>Using template</title><link>https://voidframework.dev/doc/template/using-template/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/template/using-template/</guid><description>Sooner or later you will need to generate documents (HTML, PDF&hellip;). Void Framework provides all the tools you need!
Example public class TemplateExample { private final TemplateRenderer templateRenderer; @Inject public TemplateExample(final TemplateRenderer templateRenderer) { this.templateRenderer = templateRenderer; } public void renderTemplate() { final Map&lt;String, Object&gt; dataModel = new HashMap&lt;&gt;(); dataModel.put(&#34;greating.msg&#34;, &#34;Hello World!&#34;) final String result = templateRenderer.render( &#34;renderWithDataModel.ftl&#34;, Locale.ENGLISH, dataModel); System.out.println(result); } } &nbsp; Note that the data Map must be mutable.</description></item><item><title>Using Virtual File Storage</title><link>https://voidframework.dev/doc/vfs/using-vfs/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/vfs/using-vfs/</guid><description>When you need to store or retrieve files, you don&rsquo;t necessarily want to deal with the complexity or you just want to hide it behind an easy to use interface. Void Framework exposes the VirtualFileStorage interface which allows you to use any storage engine very simply within your application.
Installation To enable this module, just add following lines to the pom.xml file of your project.
&lt;dependency&gt; &lt;groupId&gt;dev.voidframework&lt;/groupId&gt; &lt;artifactId&gt;voidframework-vfs&lt;/artifactId&gt; &lt;version&gt;1.16.0&lt;/version&gt; &lt;/dependency&gt; Configuration Different VirtualFileStorage implementations must be configured in voidframework.</description></item><item><title>Using Virtual File Storage</title><link>https://voidframework.dev/doc/vfs/using-vfs/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/vfs/using-vfs/</guid><description>When you need to store or retrieve files, you don&rsquo;t necessarily want to deal with the complexity or you just want to hide it behind an easy to use interface. Void Framework exposes the VirtualFileStorage interface which allows you to use any storage engine very simply within your application.
Installation To enable this module, just add following lines to the pom.xml file of your project.
&lt;dependency&gt; &lt;groupId&gt;dev.voidframework&lt;/groupId&gt; &lt;artifactId&gt;voidframework-vfs&lt;/artifactId&gt; &lt;version&gt;1.16.0&lt;/version&gt; &lt;/dependency&gt; Configuration Different VirtualFileStorage implementations must be configured in voidframework.</description></item><item><title>Using Web</title><link>https://voidframework.dev/doc/web/using-web/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/web/using-web/</guid><description>Does your application need to have web entry points (ie: http(s) or websocket) to provide an API or web pages? The voidframework-web module will best meet your expectations.
Installation To enable this module, just add following lines to the pom.xml file of your project.
&lt;dependency&gt; &lt;groupId&gt;dev.voidframework&lt;/groupId&gt; &lt;artifactId&gt;voidframework-web&lt;/artifactId&gt; &lt;version&gt;1.16.0&lt;/version&gt; &lt;/dependency&gt; Configuration The following configuration keys can be used.
Base
voidframework.web.gracefulStopTimeout the time (duration or milliseconds) for the web daemon to shut down properly.</description></item><item><title>Using Web</title><link>https://voidframework.dev/doc/web/using-web/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://voidframework.dev/doc/web/using-web/</guid><description>Does your application need to have web entry points (ie: http(s) or websocket) to provide an API or web pages? The voidframework-web module will best meet your expectations.
Installation To enable this module, just add following lines to the pom.xml file of your project.
&lt;dependency&gt; &lt;groupId&gt;dev.voidframework&lt;/groupId&gt; &lt;artifactId&gt;voidframework-web&lt;/artifactId&gt; &lt;version&gt;1.16.0&lt;/version&gt; &lt;/dependency&gt; Configuration The following configuration keys can be used.
Base
voidframework.web.gracefulStopTimeout the time (duration or milliseconds) for the web daemon to shut down properly.</description></item></channel></rss>