You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@apex.apache.org by th...@apache.org on 2017/05/26 11:07:06 UTC
apex-core git commit: APEXCORE-725 Example for configuring map
properties.
Repository: apex-core
Updated Branches:
refs/heads/master dca51d99e -> 47f1d9121
APEXCORE-725 Example for configuring map properties.
Project: http://git-wip-us.apache.org/repos/asf/apex-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/apex-core/commit/47f1d912
Tree: http://git-wip-us.apache.org/repos/asf/apex-core/tree/47f1d912
Diff: http://git-wip-us.apache.org/repos/asf/apex-core/diff/47f1d912
Branch: refs/heads/master
Commit: 47f1d9121c193b73e58b7c45e43e3bb803ad7e00
Parents: dca51d9
Author: Thomas Weise <th...@apache.org>
Authored: Sat May 20 14:52:47 2017 -0700
Committer: Thomas Weise <th...@apache.org>
Committed: Thu May 25 08:51:04 2017 -0700
----------------------------------------------------------------------
docs/application_packages.md | 45 +++++++++++++++++++++++++--------------
1 file changed, 29 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/apex-core/blob/47f1d912/docs/application_packages.md
----------------------------------------------------------------------
diff --git a/docs/application_packages.md b/docs/application_packages.md
index 74886fc..95a0f27 100644
--- a/docs/application_packages.md
+++ b/docs/application_packages.md
@@ -12,7 +12,7 @@ standard way for assembling and sharing an Apache Apex application.
You will need have the following installed:
1. Apache Maven 3.0 or later (for assembling the App Package)
-2. Apache Apex 3.2.0 or later (for launching the App Package in your cluster)
+2. Apache Apex 3.6.0 or later (for launching the App Package in your cluster)
## Creating Your First Apex App Package
@@ -24,11 +24,13 @@ line, or using your favorite IDE.
First, change to the directory where you put your projects, and create
an Apex application project using Maven by running the following
command. Replace "com.example", "myapp" and "1.0-SNAPSHOT" with the
-appropriate values (make sure this is all on one line):
+appropriate values (make sure this is all on one line). You can also
+replace "RELEASE" with a specific Apex version number (like "3.6.0")
+if you don't want to use the most recent release:
$ mvn archetype:generate \
-DarchetypeGroupId=org.apache.apex \
- -DarchetypeArtifactId=apex-app-archetype -DarchetypeVersion=3.4.0 \
+ -DarchetypeArtifactId=apex-app-archetype -DarchetypeVersion=RELEASE \
-DgroupId=com.example -Dpackage=com.example.myapp -DartifactId=myapp \
-Dversion=1.0-SNAPSHOT
@@ -84,7 +86,7 @@ Alternatively you can perform the same steps within your IDE (IDEA IntelliJ, Ecl
Group ID: org.apache.apex
Artifact ID: apex-app-archetype
-Version: 3.4.0 (or any later version)
+Version: 3.6.0 (or any later version)
## Writing Your Own App Package
@@ -96,7 +98,7 @@ Please refer to the [Application Developer Guide][application_development.md] on
Under the project, you can add project dependencies in pom.xml, or do it
through your IDE. Here’s the section that describes the dependencies in
the default pom.xml:
-```
+```xml
<dependencies>
<!-- add your dependencies here -->
<dependency>
@@ -173,7 +175,7 @@ attributes, operator attributes and properties, port attributes, stream
properties and application specific properties. They are all specified
as name value pairs, in XML format, like the following.
-```
+```xml
<?xml version="1.0"?>
<configuration>
<property>
@@ -196,7 +198,7 @@ constant denoting an attribute is being specified and ```<attribute>```
specifies the name of the attribute. Below is an example snippet setting
the streaming windows size of the application to be 1000 milliseconds.
-```
+```xml
<property>
<name>apex.attr.STREAMING_WINDOW_SIZE_MILLIS</name>
<value>1000</value>
@@ -223,7 +225,7 @@ the addOperator method. An example illustrating the specification is
shown below. It specifies the number of streaming windows for one
application window of an operator named “input” to be 10
-```
+```xml
<property>
<name>apex.operator.input.attr.APPLICATION_WINDOW_COUNT</name>
<value>10</value>
@@ -247,7 +249,7 @@ that the keyword “prop” is used to denote that it is a property and
this is specified below. It specifies the property “hostname” of the
redis server for a “redis” output operator.
-```
+```xml
<property>
<name>apex.operator.redis.prop.host</name>
<value>127.0.0.1</value>
@@ -263,6 +265,17 @@ setHost. The method is called using JAVA reflection and the property
value is passed as an argument. In the above example the method setHost
will be called on the “redis” operator with “127.0.0.1” as the argument.
+Properties that are collection types can also be configured, based on the beanutils
+syntax. For example, the connection properties of the JDBC store can be accessed
+like this:
+
+```xml
+ <property>
+ <name>apex.operator.jdbc.prop.store.connectionProperties(user)</name>
+ <value>your-user-name</value>
+ </property>
+```
+
### Port attributes
Port attributes are used to specify the platform behavior for input and
output ports. They can be specified using the parameter ```apex.operator.<operator-name>.inputport.<port-name>.attr.<attribute>```
@@ -274,7 +287,7 @@ example illustrating this is specified below. It specifies the queue
capacity for an input port named “input” of an operator named “range” to
be 4k.
-```
+```xml
<property>
<name>apex.operator.range.inputport.input.attr.QUEUE_CAPACITY</name>
<value>4000</value>
@@ -306,7 +319,7 @@ specification is shown below. It sets the locality of the stream named
“stream1” to container local indicating that the operators the stream is
connecting be run in the same container.
-```
+```xml
<property>
<name>apex.stream.stream1.prop.locality</name>
<value>CONTAINER_LOCAL</value>
@@ -337,7 +350,7 @@ Wildcards and regular expressions can be used in place of names to
specify a group for applications, operators, ports or streams. For
example, to specify an attribute for all ports of an operator it can be
done as follows
-```
+```xml
<property>
<name>apex.operator.range.port.*.attr.QUEUE_CAPACITY</name>
<value>4000</value>
@@ -357,7 +370,7 @@ a file for ingestion, etc. You can specify them in
src/main/resources/META-INF/properties.xml under the App Package
project. The properties.xml may look like:
-```
+```xml
<?xml version="1.0"?>
<configuration>
<property>
@@ -433,9 +446,9 @@ etc), the precedence of sources, from highest to lowest, is as follows:
In a Apex App Package project, the pom.xml file contains a
section that looks like:
-```
+```xml
<properties>
- <apex.version>3.4.0</apex.version>
+ <apex.core.version>3.6.0</apex.core.version>
<apex.apppackage.classpath\>lib*.jar</apex.apppackage.classpath>
</properties>
```
@@ -535,7 +548,7 @@ package project using Maven by running the following command. Replace "com.examp
```
$ mvn archetype:generate -DarchetypeGroupId=org.apache.apex \
- -DarchetypeArtifactId=apex-conf-archetype -DarchetypeVersion=3.4.0 \
+ -DarchetypeArtifactId=apex-conf-archetype -DarchetypeVersion=RELEASE \
-DgroupId=com.example -Dpackage=com.example.myconfig -DartifactId=myconfig \
-Dversion=1.0-SNAPSHOT
```