diff --git a/nb-repository-plugin/src/main/java/org/apache/netbeans/nbm/repository/PopulateRepositoryMojo.java b/nb-repository-plugin/src/main/java/org/apache/netbeans/nbm/repository/PopulateRepositoryMojo.java
index e1a2fe5..22b8241 100644
--- a/nb-repository-plugin/src/main/java/org/apache/netbeans/nbm/repository/PopulateRepositoryMojo.java
+++ b/nb-repository-plugin/src/main/java/org/apache/netbeans/nbm/repository/PopulateRepositoryMojo.java
@@ -1109,7 +1109,7 @@
                 dep.setGroupId( mwr.getDep().getGroupId() );
                 dep.setVersion( mwr.getDep().getVersion() );
                 dep.setClassifier( mwr.getDep().getClassifier() );
-                dep.setScope( mwr.getDep().getScope());
+                dep.setScope( mwr.getDep().getScope() );
             }
             else
             {
diff --git a/nbm-maven-plugin/src/main/java/org/apache/netbeans/nbm/BuildMacMojo.java b/nbm-maven-plugin/src/main/java/org/apache/netbeans/nbm/BuildMacMojo.java
index 1070f51..7daac7c 100644
--- a/nbm-maven-plugin/src/main/java/org/apache/netbeans/nbm/BuildMacMojo.java
+++ b/nbm-maven-plugin/src/main/java/org/apache/netbeans/nbm/BuildMacMojo.java
@@ -203,7 +203,7 @@
                                                   + " or via macInfoplistFile parameter" );
             }
 
-            try (BufferedReader reader =
+            try ( BufferedReader reader =
                     new BufferedReader( new InputStreamReader( jarFile.getInputStream( entry ) ) ) )
             {
                 String infoPListString = reader.lines(  )
diff --git a/nbm-maven-plugin/src/main/java/org/apache/netbeans/nbm/CreateClusterAppMojo.java b/nbm-maven-plugin/src/main/java/org/apache/netbeans/nbm/CreateClusterAppMojo.java
index 7d438f5..d826d4b 100644
--- a/nbm-maven-plugin/src/main/java/org/apache/netbeans/nbm/CreateClusterAppMojo.java
+++ b/nbm-maven-plugin/src/main/java/org/apache/netbeans/nbm/CreateClusterAppMojo.java
@@ -375,10 +375,11 @@
                                             { //MNBMODULE-220
                                                 try 
                                                 {
-                                                    classPath = URLDecoder.decode(ex.getClasspath(), "UTF-8");
-                                                } catch (UnsupportedEncodingException exception) 
+                                                    classPath = URLDecoder.decode( ex.getClasspath(), "UTF-8" );
+                                                } 
+                                                catch ( UnsupportedEncodingException exception ) 
                                                 {
-                                                    throw new IllegalStateException(exception);
+                                                    throw new IllegalStateException( exception );
                                                 }
                                                 classpathRoot = fl.getParentFile();
                                             }
diff --git a/nbm-maven-plugin/src/main/java/org/apache/netbeans/nbm/CreateNbmMojo.java b/nbm-maven-plugin/src/main/java/org/apache/netbeans/nbm/CreateNbmMojo.java
index 82a90cf..8cf31c2 100644
--- a/nbm-maven-plugin/src/main/java/org/apache/netbeans/nbm/CreateNbmMojo.java
+++ b/nbm-maven-plugin/src/main/java/org/apache/netbeans/nbm/CreateNbmMojo.java
@@ -241,10 +241,12 @@
                 sig.setKeystore( ks );
                 sig.setAlias( keystorealias );
                 sig.setStorepass( keystorepassword );
-                if( tsaurl != null ) {
+                if ( tsaurl != null ) 
+                {
                     sig.setTsaurl( tsaurl );
                 }
-                if( tsacert != null ) {
+                if ( tsacert != null ) 
+                {
                     sig.setTsacert( tsacert );
                 }
                 getLog().debug( "Setup the Ant task to sign the NBM file." );
