Permalink
Browse files

Merge branch 'appng-1.15.x'

  • Loading branch information...
appng-buildmaster committed Nov 9, 2017
2 parents a3ec914 + 2983d9c commit 91343914034a6a14ea2929a2b125762b20cd3672
Showing with 3,155 additions and 1,516 deletions.
  1. +44 −13 README.adoc
  2. +7 −7 appng-api/pom.xml
  3. +1 −1 appng-api/src/main/java/org/appng/api/Environment.java
  4. +44 −0 appng-api/src/main/java/org/appng/api/Option.java
  5. +53 −1 appng-api/src/main/java/org/appng/api/Options.java
  6. +18 −4 appng-api/src/main/java/org/appng/api/Platform.java
  7. +18 −4 appng-api/src/main/java/org/appng/api/SiteProperties.java
  8. +20 −5 appng-api/src/main/java/org/appng/api/messaging/Messaging.java
  9. +14 −3 appng-api/src/main/java/org/appng/api/model/Application.java
  10. +4 −4 appng-api/src/main/java/org/appng/api/model/ResourceType.java
  11. +27 −4 appng-api/src/main/java/org/appng/api/support/ApplicationConfigProviderImpl.java
  12. +39 −17 appng-api/src/main/java/org/appng/api/support/CallableAction.java
  13. +230 −13 appng-api/src/main/java/org/appng/api/support/ConfigValidator.java
  14. +15 −3 appng-api/src/main/java/org/appng/api/support/ElementHelper.java
  15. +24 −0 appng-api/src/main/java/org/appng/api/support/OptionImpl.java
  16. +18 −0 appng-api/src/main/java/org/appng/api/support/OptionsImpl.java
  17. +5 −4 appng-api/src/main/java/org/appng/api/support/RequestFactoryBean.java
  18. +2 −0 appng-api/src/main/java/org/appng/api/support/environment/EnvironmentKeys.java
  19. +53 −9 appng-api/src/main/java/org/appng/api/support/validation/DefaultValidationProvider.java
  20. +1 −0 appng-api/src/main/resources/messages-core.properties
  21. +1 −0 appng-api/src/main/resources/messages-core_de.properties
  22. +9 −9 appng-api/src/test/java/org/appng/api/ConfigValidatorTest.java
  23. +0 −2 appng-api/src/test/java/org/appng/api/DataContainerTest.java
  24. +8 −2 appng-api/src/test/java/org/appng/api/Person.java
  25. +16 −0 appng-api/src/test/java/org/appng/api/support/ElementHelperTest.java
  26. +8 −0 appng-api/src/test/java/org/appng/api/support/OptionData.java
  27. +24 −1 appng-api/src/test/java/org/appng/api/support/OptionsImplTest.java
  28. +10 −6 appng-api/src/test/java/org/appng/api/support/ValidationProviderTest.java
  29. +179 −161 appng-api/src/test/resources/application/conf/datasource.xml
  30. +1 −0 appng-api/src/test/resources/application/conf/event.xml
  31. +4 −2 appng-api/src/test/resources/application/conf/page.xml
  32. +11 −1 appng-api/src/test/resources/configvalidator.txt
  33. +22 −11 appng-api/src/test/resources/configvalidatorDetails.txt
  34. +32 −8 appng-api/src/test/resources/xml/ValidationProviderTest-testAddValidationMetaData.xml
  35. +56 −20 appng-api/src/test/resources/xml/ValidationProviderTest-testAddValidationMetaDataAsRule.xml
  36. +1 −1 appng-api/src/test/resources/xml/ValidationProviderTest-testAddValidationMetaDataInnerClass.xml
  37. +58 −54 appng-api/src/test/resources/xml/ValidationProviderTest-testAddValidationMetaDataWithGroup.xml
  38. +1 −1 appng-application-assembly/pom.xml
  39. +149 −179 appng-application-bom/pom.xml
  40. +1 −1 appng-application-bom/readme.txt
  41. +11 −131 appng-application-parent/pom.xml
  42. +76 −0 appng-application/README.adoc
  43. +10 −8 appng-application/pom.xml
  44. +4 −4 appng-application/src/main/webapp/WEB-INF/conf/install.list
  45. +8 −8 appng-application/src/main/webapp/WEB-INF/conf/log4j.properties
  46. +1 −0 appng-application/src/main/webapp/WEB-INF/conf/platformContext.xml
  47. +0 −70 appng-application/src/main/webapp/readme.txt
  48. +1 −1 appng-appngizer-jaxb/pom.xml
  49. +21 −1 appng-appngizer-jaxb/src/main/resources/appngizer.xsd
  50. +1 −1 appng-appngizer-maven-plugin/pom.xml
  51. +3 −1 appng-appngizer/pom.xml
  52. +2 −2 appng-appngizer/src/main/asciidoc/appngizer-platform-installation-guide.adoc
  53. +33 −0 appng-appngizer/src/main/asciidoc/parts/site-application.adoc
  54. +6 −0 appng-appngizer/src/main/asciidoc/xml/site-application-grants.xml
  55. +7 −1 appng-appngizer/src/main/asciidoc/xml/site-application-show.xml
  56. +1 −1 appng-appngizer/src/main/java/org/appng/appngizer/controller/ApplicationController.java
  57. +15 −10 appng-appngizer/src/main/java/org/appng/appngizer/controller/ControllerBase.java
  58. +49 −2 appng-appngizer/src/main/java/org/appng/appngizer/controller/SiteApplicationController.java
  59. +2 −2 appng-appngizer/src/main/java/org/appng/appngizer/model/Application.java
  60. +1 −1 appng-appngizer/src/test/java/org/appng/appngizer/controller/ApplicationControllerTest.java
  61. +3 −3 appng-appngizer/src/test/java/org/appng/appngizer/controller/PlatformPropertyControllerTest.java
  62. +22 −0 appng-appngizer/src/test/java/org/appng/appngizer/controller/SiteApplicationControllerTest.java
  63. +1 −1 appng-appngizer/src/test/resources/xml/application-list.xml
  64. +1 −1 appng-appngizer/src/test/resources/xml/application-show.xml
  65. +1 −1 appng-appngizer/src/test/resources/xml/application-update.xml
  66. +1 −1 appng-appngizer/src/test/resources/xml/database-init.xml
  67. +1 −1 appng-appngizer/src/test/resources/xml/database.xml
  68. +5 −0 appng-appngizer/src/test/resources/xml/platform-property-list.xml
  69. +4 −0 appng-appngizer/src/test/resources/xml/site-application-grants.xml
  70. +1 −1 appng-appngizer/src/test/resources/xml/site-application-list.xml
  71. +2 −1 appng-appngizer/src/test/resources/xml/site-application-show.xml
  72. +13 −0 appng-appngizer/src/test/resources/xml/site-create2.xml
  73. +1 −1 appng-archetype-application/pom.xml
  74. +1 −1 appng-archetype-application/readme.txt
  75. +1 −1 appng-archetype-application/src/main/resources/archetype-resources/pom.xml
  76. +1 −1 appng-cli/pom.xml
  77. +5 −5 appng-cli/src/main/java/org/appng/cli/commands/application/InstallApplication.java
  78. +2 −2 appng-cli/src/main/java/org/appng/cli/commands/application/ListApplications.java
  79. +1 −1 appng-cli/src/main/java/org/appng/cli/prettytable/TableConstants.java
  80. +1 −1 appng-cli/src/test/java/org/appng/cli/commands/application/CommandListApplicationsForSiteTest.java
  81. +1 −1 appng-cli/src/test/java/org/appng/cli/commands/application/CommandListApplicationsTest.java
  82. +1 −1 appng-cli/src/test/java/org/appng/cli/commands/permission/BasePermissionTest.java
  83. +2 −2 appng-cli/src/test/java/org/appng/cli/commands/property/CommandListPropertiesTest.java
  84. +18 −3 appng-core/pom.xml
  85. +14 −13 appng-core/src/main/java/org/appng/core/controller/Controller.java
  86. +14 −0 appng-core/src/main/java/org/appng/core/controller/PlatformStartup.java
  87. +202 −0 appng-core/src/main/java/org/appng/core/controller/RepositoryWatcher.java
  88. +64 −75 appng-core/src/main/java/org/appng/core/controller/filter/RedirectFilter.java
  89. +22 −13 appng-core/src/main/java/org/appng/core/controller/filter/XSSFilter.java
  90. +13 −6 appng-core/src/main/java/org/appng/core/controller/messaging/JedisBase.java
  91. +6 −7 appng-core/src/main/java/org/appng/core/controller/messaging/JedisReceiver.java
  92. +4 −12 appng-core/src/main/java/org/appng/core/controller/messaging/JedisSender.java
  93. +1 −1 appng-core/src/main/java/org/appng/core/controller/messaging/MulticastSender.java
  94. +33 −11 appng-core/src/main/java/org/appng/core/controller/messaging/RabbitMQBase.java
  95. +7 −16 appng-core/src/main/java/org/appng/core/controller/messaging/RabbitMQReceiver.java
  96. +7 −22 appng-core/src/main/java/org/appng/core/controller/messaging/RabbitMQSender.java
  97. +15 −4 appng-core/src/main/java/org/appng/core/domain/ApplicationImpl.java
  98. +1 −1 appng-core/src/main/java/org/appng/core/domain/RepositoryImpl.java
  99. +12 −8 appng-core/src/main/java/org/appng/core/domain/SiteImpl.java
  100. +1 −0 appng-core/src/main/java/org/appng/core/model/AbstractRequestProcessor.java
  101. +1 −1 appng-core/src/main/java/org/appng/core/model/AccessibleApplication.java
  102. +1 −1 appng-core/src/main/java/org/appng/core/model/ApplicationContext.java
  103. +13 −4 appng-core/src/main/java/org/appng/core/model/ApplicationProvider.java
  104. +15 −1 appng-core/src/main/java/org/appng/core/model/CacheProvider.java
  105. +2 −0 appng-core/src/main/java/org/appng/core/repository/SiteRepository.java
  106. +10 −0 appng-core/src/main/java/org/appng/core/repository/config/DataSourceFactory.java
  107. +5 −0 appng-core/src/main/java/org/appng/core/repository/config/DatasourceConfigurer.java
  108. +43 −17 appng-core/src/main/java/org/appng/core/repository/config/HikariCPConfigurer.java
  109. +5 −1 appng-core/src/main/java/org/appng/core/repository/config/TomcatJdbcConfigurer.java
  110. +49 −35 appng-core/src/main/java/org/appng/core/service/CoreService.java
  111. +35 −33 appng-core/src/main/java/org/appng/core/service/DatabaseService.java
  112. +138 −57 appng-core/src/main/java/org/appng/core/service/InitializerService.java
  113. +34 −4 appng-core/src/main/java/org/appng/core/service/PropertySupport.java
  114. +1 −1 appng-core/src/main/resources/db/migration/hsql/V1_0__appNG_initial_setup.sql
  115. +2 −0 appng-core/src/main/resources/db/migration/mssql/V2_9_3__rename_core_application_privileged.sql
  116. +2 −0 appng-core/src/main/resources/db/migration/mysql/V2_9_3__rename_core_application_privileged.sql
  117. +1 −0 appng-core/src/main/resources/org/appng/core/application-context.xml
  118. +1 −0 appng-core/src/main/resources/org/appng/core/platform-config.properties
  119. +2 −0 appng-core/src/main/resources/org/appng/core/site-config.properties
  120. +4 −1 appng-core/src/test/java/org/appng/core/controller/PlatformStartupTest.java
  121. +76 −0 appng-core/src/test/java/org/appng/core/controller/RepositoryWatcherTest.java
  122. +3 −2 appng-core/src/test/java/org/appng/core/controller/filter/JspExtensionFilterTest.java
  123. +4 −2 appng-core/src/test/java/org/appng/core/controller/filter/RedirectFilterTest.java
  124. +140 −0 appng-core/src/test/java/org/appng/core/controller/messaging/AbstractMessagingIT.java
  125. +38 −0 appng-core/src/test/java/org/appng/core/controller/messaging/JedisMessagingIT.java
  126. +48 −0 appng-core/src/test/java/org/appng/core/controller/messaging/MultiCastMessagingIT.java
  127. +40 −0 appng-core/src/test/java/org/appng/core/controller/messaging/RabbitMQMessagingIT.java
  128. +1 −1 appng-core/src/test/java/org/appng/core/model/ApplicationProviderTest.java
  129. +21 −0 appng-core/src/test/java/org/appng/core/model/OutputFormatAndTypeTest.java
  130. +1 −1 appng-core/src/test/java/org/appng/core/service/AppNGTestDataProvider.java
  131. +1 −1 appng-core/src/test/java/org/appng/core/service/CoreServiceTest.java
  132. +10 −6 appng-core/src/test/java/org/appng/core/service/InitializerServiceTest.java
  133. +73 −0 appng-core/src/test/java/org/appng/core/service/PropertySupportTest.java
  134. +4 −0 appng-core/src/test/resources/conf/urlrewrite-rules-fr.xml
  135. +4 −0 appng-core/src/test/resources/conf/urlrewrite-rules.xml
  136. +1 −1 appng-core/src/test/resources/xml/ApplicationProviderTest-testCallAction.xml
  137. +1 −1 appng-core/src/test/resources/xml/ApplicationProviderTest-testCreate.xml
  138. +1 −1 appng-core/src/test/resources/xml/ApplicationProviderTest-testUpdateExecute.xml
  139. +1 −1 appng-core/src/test/resources/xml/ApplicationProviderTest-testUpdateInclude.xml
  140. +2 −2 appng-core/src/test/resources/xml/ApplicationProviderTest-testUpdateValidationError.xml
  141. +3 −211 appng-documentation/pom.xml
  142. +2 −0 appng-documentation/src/main/asciidoc/developerguide.adoc
  143. +4 −4 appng-documentation/src/main/asciidoc/listing/dependencies.txt
  144. +1 −1 appng-documentation/src/main/asciidoc/parts/actions.adoc
  145. +1 −1 appng-documentation/src/main/asciidoc/parts/structure.adoc
  146. +97 −0 appng-documentation/src/main/asciidoc/parts/urlrewriting.adoc
  147. +1 −1 appng-forms/pom.xml
  148. +20 −1 appng-forms/src/main/java/org/appng/el/ExpressionEvaluator.java
  149. +1 −1 appng-formtags/pom.xml
  150. +1 −1 appng-mail/pom.xml
  151. +2 −2 appng-persistence/pom.xml
  152. +1 −1 appng-search/pom.xml
  153. +8 −13 appng-standalone/pom.xml
  154. +6 −6 appng-standalone/src/main/resources/auto-install.list
  155. +1 −1 appng-taglib/pom.xml
  156. +2 −2 appng-taglib/src/main/java/org/appng/taglib/If.java
  157. +5 −1 appng-taglib/src/main/java/org/appng/taglib/TagletAdapter.java
  158. +2 −46 appng-taglib/src/test/java/org/appng/taglib/AttributeTest.java
  159. +51 −0 appng-taglib/src/test/java/org/appng/taglib/IfTest.java
  160. +76 −0 appng-taglib/src/test/java/org/appng/taglib/TagletTestBase.java
  161. +1 −1 appng-template-assembly/pom.xml
  162. +2 −2 appng-template-parent/pom.xml
  163. +2 −2 appng-testsupport/pom.xml
  164. +6 −1 appng-testsupport/src/main/java/org/appng/testsupport/TestBase.java
  165. +1 −1 appng-tomcat7/pom.xml
  166. +1 −2 appng-tomcat8/pom.xml
  167. +1 −1 appng-tools/pom.xml
  168. +1 −1 appng-xmlapi/pom.xml
  169. +35 −23 pom.xml
View
@@ -1,8 +1,17 @@
image::https://www.aiticon.com/assets/images/appng_logo_760px.jpg[]
:snapshot: 1.15.0-SNAPSHOT
:stable: 1.14.4
:snapshot: 1.15.1-SNAPSHOT
:stable: 1.15.0
:current: {stable}
[caption="Apache License 2.0",link=LICENSE]
image::https://img.shields.io/badge/License-Apache%202-blue.svg?style=flat-square[]
[caption="Maven Central",link=http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.appng%22%20AND%20a%3A%22appng-application%22]
image::https://img.shields.io/maven-central/v/org.appng/appng-application.svg?style=flat-square[]
[caption="Dependency Status",link=https://www.versioneye.com/user/projects/5975fd11368b08000e6d1ddc]
image::https://www.versioneye.com/user/projects/5975fd11368b08000e6d1ddc/badge.svg?style=flat-square[]
== Welcome to appNG
appNG is a *web application platform* and a *web application framework*, based on http://tomcat.apache.org/[Apache Tomcat^] and the https://spring.io[Spring Framework^].
@@ -38,18 +47,32 @@ appNG is very well suited to create and operate your own application platform as
* *Rapid protoyping* enables you to design your user interface without writing one line of Java code
== Getting started
=== Download and run the appNG standalone Version
[NOTE]
====
The dollar sign ($) at the beginning of a line denotes the command prompt. Depending on your operating system and shell you might see other signs like %, # or >. This sign is not part of the command to be executed.
====
=== Download and run the appNG standalone version
appNG is available as a standalone version, suitable for evaluation and testing purposes.
The standalone version also comes with *appNGizer*, the REST-based administration tool for appNG.
The standalone version can be found here:
https://appng.org/appng/builds/stable/appng-standalone-{stable}.zip
Check that Java 1.8 is available in your system's path:
----
$ java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-8u131-b11-1~bpo8+1-b11)
OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)
----
Unzip the file, change into the extracted folder and run
[source,subs=normal]
----
java -jar appng-standalone-{stable}.jar -i -u
$ java -jar appng-standalone-{stable}.jar -i -u
----
Wait a few seconds, until the console output stops, then visit http://localhost:8080/manager in your browser.
@@ -62,13 +85,21 @@ When executing the jar for the next time, you *must* omit the parameters `-u` an
allowed on the very first run (`-u` unpacks and configures the wrapped web applications, `-i` is for installing the appNG applications and the template).
====
=== Download and run the appNG web-application version
If you run appNG in production you should use the web-application version, which is a standard web application archive (WAR-file).
Download the latest stable release from
https://appng.org/appng/builds/stable/appng-application-{stable}.war
For further documentation on installing appNG go to the link:appng-application/README.adoc[README] of the appNG web-application.
=== Create your first appNG application
Using the *appNG Maven Archetype*, you can easily create your first own application.
Therefore, the following command must be used (replace `mygroupid` and `myartifactid` with the desired values):
[source,subs=normal]
----
mvn archetype:generate -DgroupId=mygroupid -DartifactId=myartifactid -DarchetypeGroupId=org.appng -DarchetypeArtifactId=appng-archetype-application -DarchetypeVersion={stable} -DinteractiveMode=false
$ mvn archetype:generate -DgroupId=mygroupid -DartifactId=myartifactid -DarchetypeGroupId=org.appng -DarchetypeArtifactId=appng-archetype-application -DarchetypeVersion={stable} -DinteractiveMode=false
----
Next, change into the created project folder and run `mvn package`.
@@ -93,8 +124,8 @@ In `/path/to/appng-standalone-{stable}/appng/WEB-INF/bin`, execute the following
[source]
----
./appng install-application -n myartifactid -v 1.0-SNAPSHOT -r Local
./appng activate-application -s manager -a myartifactid
$ ./appng install-application -n myartifactid -v 1.0-SNAPSHOT -r Local
$ ./appng activate-application -s manager -a myartifactid
----
Both commands should return without any message, meaning they where successful.
@@ -121,10 +152,10 @@ For the following updates of your application, this step is therefore not necess
=== What's next?
You should import the Maven project into your favorite IDE. Then start browsing the code to get an idea of how an appNG application works.
You should also take a look at the https://appng.org/appng/docs/{snapshot}/reference/html/developerguide.html[Developer Guide].
You should also take a look at the https://appng.org/appng/docs/{current}/reference/html/developerguide.html[Developer Guide].
You may also want to check out *appNGizer* at http://localhost:8080/appNGizer. The user manual can be found here:
https://appng.org/appng/docs/{snapshot}/appngizer/html/appngizer-user-manual.html
https://appng.org/appng/docs/{current}/appngizer/html/appngizer-user-manual.html
== Components
@@ -146,15 +177,15 @@ https://appng.org/appng/docs/{snapshot}/appngizer/html/appngizer-user-manual.htm
| https://github.com/appNG/appng-manager[appNG Manager^]
| appNG core application
| appNG privileged application
| Provides a web-based interface to administer appNG and to access other appNG applications.
| https://github.com/appNG/appng-authentication[appNG Authentication^]
| appNG core application
| appNG privileged application
| Provides different authentication mechanisms for appNG.
| https://github.com/appNG/appng-scheduler[appNG Scheduler^]
| appNG core application
| appNG privileged application
| Provides job scheduling services.
| https://github.com/appNG/appng-template[appNG Template^]
@@ -163,7 +194,7 @@ https://appng.org/appng/docs/{snapshot}/appngizer/html/appngizer-user-manual.htm
|====================
NOTE: The appNG and appNGizer web applications run in Apache Tomcat, while appNG applications run on the appNG platform. appNG core applications have elevated permissions to access and control the appNG platform. appNG templates define the visual appearance of appNG applications.
NOTE: The appNG and appNGizer web applications run in Apache Tomcat, while appNG applications run on the appNG platform. appNG privileged applications have elevated permissions to access and control the appNG platform. appNG templates define the visual appearance of appNG applications.
== Documentation
View
@@ -11,7 +11,7 @@
<parent>
<groupId>org.appng</groupId>
<artifactId>appng-parent</artifactId>
<version>1.14.4</version>
<version>1.15.0</version>
<relativePath>../pom.xml</relativePath>
</parent>
@@ -98,6 +98,11 @@
<artifactId>commons-codec</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
@@ -109,12 +114,7 @@
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jasper</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<scope>provided</scope>
</dependency>
@@ -35,7 +35,7 @@
* {@link #getTimeZone()}
* <li>allowing to share attributes between multiple applications (using {@link Scope#SESSION} and {@link Scope#SITE})
* <li>keeping track of platform-wide configuration parameters ( {@link Scope#PLATFORM} and {@link Application}s where
* {@link org.appng.api.model.Application#isCoreApplication()} is {@code true})
* {@link org.appng.api.model.Application#isPrivileged()} is {@code true})
* </ul>
* </ul>
*
@@ -24,6 +24,7 @@
* A single option which was created from a {@link BeanOption} of a {@link Bean} .
*
* @author Matthias Herlitzius
* @author Matthias Müller
*
* @see Options
*/
@@ -51,7 +52,9 @@
* @param name
* the name of the attribute to get
* @return the attribute, if present, {@code null} otherwise
* @deprecated use {@link #getString(String)} instead
*/
@Deprecated
String getAttribute(String name);
/**
@@ -61,4 +64,45 @@
*/
Set<String> getAttributeNames();
/**
* Returns the attribute with the given name, if present.
*
* @param name
* the name of the attribute to get
* @return the attribute, if present, {@code null} otherwise
*/
String getString(String name);
/**
* Returns an {@link Integer} parsed from the attribute with the given name.
*
* @param name
* the name of the attribute to get
* @return the integer value, or {@code null} if no such attribute exists (or the value can not be parsed to an
* integer)
*/
Integer getInteger(String name);
/**
* Returns a {@link Boolean} parsed from the attribute with the given name.
*
* @param name
* the name of the attribute to get
* @return {@link Boolean#TRUE} if the value of the attribute equals to (ignoring case) {@code true},
* {@link Boolean#FALSE} otherwise
*/
Boolean getBoolean(String name);
/**
* Returns the {@link Enum} constant represented by the attribute with the given name.
*
* @param name
* the name of the attribute to get
* @param type
* the type of the {@link Enum}
* @return the enum constant, if the (upper-case) attribute value represents a valid enum of the given type
* ,{@code null} otherwise
*/
<E extends Enum<E>> E getEnum(String name, Class<E> type);
}
@@ -26,6 +26,7 @@
* {@link FormValidator}.
*
* @author Matthias Herlitzius
* @author Matthias Müller
*
* @see ActionProvider
* @see DataProvider
@@ -66,8 +67,59 @@
* @param attribute
* the name of the attribute of the {@link Option}
* @return the attribute with the given name, or {@code null} if either the {@link Option} or the attribute does not
* exist,
* exist
*/
String getOptionValue(String name, String attribute);
/**
* Returns the attribute with the given name for the {@link Option} with the given name.
*
* @param name
* the name of the {@link Option} to get the attribute from
* @param attribute
* the name of the attribute of the {@link Option}
* @return the attribute with the given name, or {@code null} if either the {@link Option} or the attribute does not
* exist
*/
String getString(String name, String attribute);
/**
* Returns an {@link Integer} parsed from the attribute with the given name for the {@link Option} with the given
* name.
*
* @param name
* the name of the {@link Option} to get the attribute from
* @param attribute
* the name of the attribute of the {@link Option}
* @return the integer value, or {@code null} if either the {@link Option} or the attribute does not exist or the or
* the value can not be parsed to an integer
*/
Integer getInteger(String name, String attribute);
/**
* Returns a {@link Boolean} parsed from the attribute with the given name for the {@link Option} with the given
* name.
*
* @param name
* the name of the {@link Option} to get the attribute from
* @param attribute
* the name of the attribute of the {@link Option}
* @return {@link Boolean#TRUE} if the value of the attribute equals to (ignoring case) {@code true},
* {@link Boolean#FALSE} otherwise (also if no such {@link Option} exists)
*/
Boolean getBoolean(String name, String attribute);
/**
* Returns the {@link Enum} constant of the given type represented by the attribute with the given name for the
* {@link Option} with the given name.
*
* @param name
* the name of the {@link Option} to get the attribute from
* @param attribute
* the name of the attribute of the {@link Option}
* @return the enum constant, if the (upper-case) attribute value represents a valid enum of the given type,
* {@code null} otherwise (also if no such {@link Option} exists)
*/
<E extends Enum<E>> E getEnum(String name, String attribute, Class<E> type);
}
@@ -88,8 +88,8 @@ private Platform() {
* String platformRootPath = platformConfig.getString(Platform.Property.PLATFORM_ROOT_PATH);
* </pre>
*
* <b>Note: A {@link Application} can only access the {@link Scope#PLATFORM} if it's a core-application, i.e.
* {@link Application#isCoreApplication()} returns {@code true}.</b>
* <b>Note: A {@link Application} can only access the {@link Scope#PLATFORM} if it's a privileged application, i.e.
* {@link Application#isPrivileged()} returns {@code true}.</b>
*
* @author Matthias Müller
*
@@ -107,10 +107,19 @@ private Platform() {
* {@link #APPLICATION_CACHE_FOLDER}.
*/
public static final String CACHE_FOLDER = "cacheFolder";
/**
* Whether validation constraints should be added as a {@link org.appng.xml.platform.Rule} to the
* {@link org.appng.xml.platform.FieldDef}s {@link org.appng.xml.platform.Validation}
*/
public static final String CONSTRAINTS_AS_RULE = "constraintsAsRule";
/**
* Set to {@code true} to enable a filter preventing CSRF-attacks
*/
public static final String CSRF_FILTER_ENABLED = "csrfFilterEnabled";
/**
* The prefix to use when generating database names
*/
public static final String DATABASE_PREFIX = "databasePrefix";
/**
* The idle database connection test period in minutes. If a database connection remains idle for the specified
* time, the validation query defined in the database connection will be sent to prevent a database connection
@@ -238,12 +247,17 @@ private Platform() {
public static final String XSS_ALLOWED_TAGS = "xssAllowedTags";
/**
* The time to wait for a {@link Site} to become available/to finish its requests (single run).
* When set to {@code true}, appNG waits until a {@link Site} has finished processing its requests before shutting it down.
*/
public static final String WAIT_ON_SITE_SHUTDOWN = "waitOnSiteShutdown";
/**
* The time to wait (in a single waiting loop) for a {@link Site} to become available/to finish its requests (milliseconds).
*/
public static final String WAIT_TIME = "waitTime";
/**
* The overall maximum time to wait for a {@link Site} to become available/to finish its requests.
* The overall maximum time to wait for a {@link Site} to become available/to finish its requests (milliseconds).
*/
public static final String MAX_WAIT_TIME = "maxWaitTime";
}
Oops, something went wrong.

0 comments on commit 9134391

Please sign in to comment.