diff --git a/pom.xml b/pom.xml
index 38fc918..1edff48 100644
--- a/pom.xml
+++ b/pom.xml
@@ -116,7 +116,7 @@
     <dependency>
       <groupId>org.codehaus.plexus</groupId>
       <artifactId>plexus-utils</artifactId>
-      <version>3.0.23</version>
+      <version>3.0.24</version>
     </dependency>
 
     <dependency>
@@ -146,7 +146,7 @@
     <dependency>
       <groupId>commons-io</groupId>
       <artifactId>commons-io</artifactId>
-      <version>2.4</version>
+      <version>2.5</version>
       <scope>test</scope>
     </dependency>
     <dependency>
diff --git a/src/main/java/org/apache/maven/plugins/resources/ResourcesMojo.java b/src/main/java/org/apache/maven/plugins/resources/ResourcesMojo.java
index 2e772e3..00c9b1b 100644
--- a/src/main/java/org/apache/maven/plugins/resources/ResourcesMojo.java
+++ b/src/main/java/org/apache/maven/plugins/resources/ResourcesMojo.java
@@ -66,7 +66,7 @@
     /**
      * The character encoding scheme to be applied when filtering resources.
      */
-    @Parameter( property = "encoding", defaultValue = "${project.build.sourceEncoding}" )
+    @Parameter( defaultValue = "${project.build.sourceEncoding}" )
     protected String encoding;
 
     /**
@@ -133,11 +133,13 @@
     protected MavenSession session;
 
     /**
-     * Expression preceded with the String won't be interpolated \${foo} will be replaced with ${foo}
-     *
+     * Expression preceded with the String won't be interpolated. For
+     * example {@code \${foo}} will be replaced with {@code ${foo}}.
+     * <br/>
+     * <b>Note: With 3.0.0 a default value has been defined.</b>
      * @since 2.3
      */
-    @Parameter( property = "maven.resources.escapeString" )
+    @Parameter( defaultValue = "\\" )
     protected String escapeString;
 
     /**
@@ -145,7 +147,7 @@
      *
      * @since 2.3
      */
-    @Parameter( property = "maven.resources.overwrite", defaultValue = "false" )
+    @Parameter( defaultValue = "false" )
     private boolean overwrite;
 
     /**
@@ -153,7 +155,7 @@
      *
      * @since 2.3
      */
-    @Parameter( property = "maven.resources.includeEmptyDirs", defaultValue = "false" )
+    @Parameter( defaultValue = "false" )
     protected boolean includeEmptyDirs;
 
     /**
@@ -169,13 +171,13 @@
      *
      * @since 2.4
      */
-    @Parameter( property = "maven.resources.escapeWindowsPaths", defaultValue = "true" )
+    @Parameter( defaultValue = "true" )
     protected boolean escapeWindowsPaths;
 
     /**
      * <p>
      * Set of delimiters for expressions to filter within the resources. These delimiters are specified in the form
-     * 'beginToken*endToken'. If no '*' is given, the delimiter is assumed to be the same for start and end.
+     * {@code beginToken*endToken}. If no {@code *} is given, the delimiter is assumed to be the same for start and end.
      * </p>
      * <p>
      * So, the default filtering delimiters might be specified as:
@@ -188,7 +190,7 @@
      * &lt;/delimiters&gt;
      * </pre>
      * <p>
-     * Since the '@' delimiter is the same on both ends, we don't need to specify '@*@' (though we can).
+     * Since the {@code @} delimiter is the same on both ends, we don't need to specify {@code @*@} (though we can).
      * </p>
      *
      * @since 2.4
@@ -261,7 +263,7 @@
      *
      * @since 2.5
      */
-    @Parameter( property = "maven.resources.supportMultiLineFiltering", defaultValue = "false" )
+    @Parameter( defaultValue = "false" )
     private boolean supportMultiLineFiltering;
 
     /**
diff --git a/src/main/java/org/apache/maven/plugins/resources/TestResourcesMojo.java b/src/main/java/org/apache/maven/plugins/resources/TestResourcesMojo.java
index 3f54dc2..b993126 100644
--- a/src/main/java/org/apache/maven/plugins/resources/TestResourcesMojo.java
+++ b/src/main/java/org/apache/maven/plugins/resources/TestResourcesMojo.java
@@ -57,7 +57,7 @@
      * Its use is NOT RECOMMENDED, but quite convenient on occasion.
      * @since 2.6
      */
-    @Parameter( property = "maven.test.skip" )
+    @Parameter( property = "maven.test.skip", defaultValue = "false" )
     private boolean skip;
 
     /**
diff --git a/src/site/apt/examples/binaries-filtering.apt.vm b/src/site/apt/examples/binaries-filtering.apt.vm
index f6d5b7b..059ee33 100644
--- a/src/site/apt/examples/binaries-filtering.apt.vm
+++ b/src/site/apt/examples/binaries-filtering.apt.vm
@@ -26,14 +26,13 @@
 ~~ NOTE: For help with the syntax of this file, see:
 ~~ http://maven.apache.org/doxia/references/apt-format.html
 
-Binaries filtering
+Binary filtering
 
- Now the plugin will prevent binaries files filtering without adding some excludes configuration.
+ The plugin will prevent binary files filtering without adding some <<<excludes>>> configuration
+ for the following file extensions <<<jpg>>>, <<<jpeg>>>, <<<gif>>>, <<<bmp>>> and <<<png>>>.
  
- By default, files with extensions (jpg, jpeg, gif, bmp and png) won't be filtered anymore.
- 
- Users can add some extra file extensions to not apply filtering with the following configuration :
- 
+ If you like to add supplemental file extensions this can simply achieved by
+ using a configuration like the following:
 
 +-----+
 <project>
diff --git a/src/site/apt/examples/custom-resource-filters.apt.vm b/src/site/apt/examples/custom-resource-filters.apt.vm
index b298ecb..d9c54bb 100644
--- a/src/site/apt/examples/custom-resource-filters.apt.vm
+++ b/src/site/apt/examples/custom-resource-filters.apt.vm
@@ -26,14 +26,14 @@
 ~~ NOTE: For help with the syntax of this file, see:
 ~~ http://maven.apache.org/doxia/references/apt-format.html
 
-Custom resource filters
+Custom resources filters
 
  With version 2.5 you are now able to build your own custom resources filter(s).
  
  Your custom resources filter classes must implements 
  {{{http://maven.apache.org/shared/maven-filtering/apidocs/org/apache/maven/shared/filtering/MavenResourcesFiltering.html}org.apache.maven.shared.filtering.MavenResourcesFiltering}}.
  
-* Custom Resource Filter Implementation
+* Custom Resources Filter Implementation
 
  Your custom resources filter classes must be marked as a Plexus Component. Below a sample with a roleHint itFilter.
 
diff --git a/src/site/apt/examples/encoding.apt.vm b/src/site/apt/examples/encoding.apt.vm
index ce4ae0a..c77fad0 100644
--- a/src/site/apt/examples/encoding.apt.vm
+++ b/src/site/apt/examples/encoding.apt.vm
@@ -2,8 +2,9 @@
  Specifying a character encoding scheme
  ------
  Franz Allan See
+ Karl Heinz Marbaise
  ------
- 2008-09-05
+ 2016-05-13
  ------
 
 ~~ Licensed to the Apache Software Foundation (ASF) under one
@@ -31,9 +32,28 @@
  A character encoding scheme such as <<<ASCII>>>, <<<UTF-8>>> or <<<UTF-16>>> can be chosen to be
  used for the reading and writing of files.
 
- For example, if we want to specify that the character encoding scheme be <<<UTF-8>>>,
- we would simply have to modify the POM.
+ The best practice is to define {{{https://maven.apache.org/general.html#encoding-warning}encoding}} for copying
+ files via the property <<<${project.build.sourceEncoding}>>> which should be defined in the pom
+ properties section like this:
+ 
++-----+
+<project ...>
+ ...
+ <properties>
+   <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+   ...
+ </properties>
+ ..
+</project>
++-----+
 
+ By using the above property <<<maven-resources-plugin>>> will automatically
+ use this {{{./resources-mojo.html#encoding}encoding}}.
+ 
+ Occasionally you need to change the encoding explicitly for different purposes.
+ This can be done by defining the encoding via the configuration
+ like this: 
+ 
 +-----+
 <project>
   ...
@@ -55,3 +75,6 @@
   ...
 </project>
 +-----+
+
+
+ 
\ No newline at end of file
diff --git a/src/site/apt/examples/filter.apt b/src/site/apt/examples/filter.apt
index c56a75d..38eaf56 100644
--- a/src/site/apt/examples/filter.apt
+++ b/src/site/apt/examples/filter.apt
@@ -165,10 +165,12 @@
     ...
 +-----+
 
-  <<Warning:>> Do not filter files with binary content like images! This will most likely result in corrupt output. If
-  you have both text files and binary files as resources, you need to declare two mutually exclusive resource sets. The
-  first resource set defines the files to be filtered and the other resource set defines the files to copy
-  unaltered as illustrated below:
+  
+  <<Warning:>> Do not filter files with binary content like images! This will most likely result in corrupt output. 
+
+  If you have both text files and binary files as resources it is recommended to have two separated
+  folders. One folder <<<src/main/resources>>> (default) for the resources which are not filtered and 
+  another folder <<<src/main/resources-filtered>>> for the resources which are filtered.
 
 +-----+
 <project>
@@ -177,18 +179,8 @@
     ...
     <resources>
       <resource>
-        <directory>src/main/resources</directory>
+        <directory>src/main/resources-filtered</directory>
         <filtering>true</filtering>
-        <includes>
-          <include>**/*.xml</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-        <filtering>false</filtering>
-        <excludes>
-          <exclude>**/*.xml</exclude>
-        </excludes>
       </resource>
       ...
     </resources>
@@ -197,3 +189,11 @@
   ...
 </project>
 +-----+
+
+  Now you can put those files into <<<src/main/resources>>> which should not filtered and the other files
+  into <<<src/main/resources-filtered>>>.
+  
+  As already mentioned filtering binary files like images,pdf`s  etc. could result in corrupted output.
+  To prevent such problems you can {{{./binaries-filtering.html}configure file extensions}}
+  which will not being filtered. 
+
diff --git a/src/site/apt/index.apt.vm b/src/site/apt/index.apt.vm
index 73652e1..fcb59a7 100644
--- a/src/site/apt/index.apt.vm
+++ b/src/site/apt/index.apt.vm
@@ -66,9 +66,7 @@
 * Usage
 
   General instructions on how to use the Resources Plugin can be found on the {{{./usage.html}usage page}}. Some more
-  specific use cases are described in the examples given below. Last but not least, users occasionally contribute
-  additional examples, tips or errata to the
-  {{{http://docs.codehaus.org/display/MAVENUSER/Resources+Plugin}plugin's wiki page}}.
+  specific use cases are described in the examples given below.
 
   In case you still have questions regarding the plugin's usage, please have a look at the {{{./faq.html}FAQ}} and feel
   free to contact the {{{./mail-lists.html}user mailing list}}. The posts to the mailing list are archived and could
@@ -86,7 +84,7 @@
 * Examples
 
    The following examples show how to use the Resources Plugin in more advanced
-   usecases:
+   use cases:
 
    * {{{./examples/encoding.html}Specifying a character encoding scheme}}
 
@@ -100,4 +98,8 @@
 
    * {{{./examples/copy-resources.html}Copy resources}}
 
+   * {{{./examples/binaries-filtering.html}Binaries filtering}}
+
+   * {{{./examples/custom-resource-filters.html}Custom resources filters}}
+
    []
diff --git a/src/site/site.xml b/src/site/site.xml
index 9ea88c3..b6331d1 100644
--- a/src/site/site.xml
+++ b/src/site/site.xml
@@ -28,7 +28,7 @@
       <item name="Goals" href="plugin-info.html"/>
       <item name="Usage" href="usage.html"/>
       <item name="FAQ" href="faq.html"/>
-      <!-- According to http://jira.codehaus.org/browse/MNGSITE-152 -->
+      <!-- According to https://issues.apache.org/jira/browse/MNGSITE-152 -->
       <item name="License" href="http://www.apache.org/licenses/"/>
       <item name="Download" href="download.html"/>
     </menu>
