You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@opennlp.apache.org by ma...@apache.org on 2023/01/22 06:16:34 UTC

[opennlp-sandbox] branch master updated: updates sandbox component 'caseditor-opennlp-plugin' to be compatible with latest opennlp-tools release (#64)

This is an automated email from the ASF dual-hosted git repository.

mawiesne pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/opennlp-sandbox.git


The following commit(s) were added to refs/heads/master by this push:
     new 3ba1251  updates sandbox component 'caseditor-opennlp-plugin' to be compatible with latest opennlp-tools release (#64)
3ba1251 is described below

commit 3ba1251f37f47ea0261b43a933cde7b58593b697
Author: Martin Wiesner <ma...@users.noreply.github.com>
AuthorDate: Sun Jan 22 07:16:28 2023 +0100

    updates sandbox component 'caseditor-opennlp-plugin' to be compatible with latest opennlp-tools release (#64)
    
    - adjusts opennlp-tools to 2.1.0
    - adjusts parent project (org.apache.apache) to version 18
    - adjusts Java language level to 11
    - updates `uimaj` dependencies to version 3.3.1
    - updates `maven-bundle-plugin` to version 5.1.8 so things work with class files compiled in Java 11 format
    - adjusts some array declarations to comply with Java, not C style
    - removes unused imports
---
 caseditor-opennlp-plugin/pom.xml                   | 109 +++++++-------
 .../opennlp/caseditor/ConfirmAnnotationAction.java |   6 +-
 .../caseditor/OpenNLPPreferenceInitializer.java    |   1 +
 .../opennlp/caseditor/OpenNLPPreferencePage.java   |   2 +-
 .../opennlp/caseditor/OpenPreferenceDialog.java    |   8 +-
 .../opennlp/caseditor/PotentialAnnotation.java     |   2 +-
 ...tor.java => PotentialAnnotationComparator.java} |   4 +-
 .../apache/opennlp/caseditor/TypeFieldEditor.java  |   2 +-
 .../apache/opennlp/caseditor/TypeInputDialog.java  |   2 +-
 .../opennlp/caseditor/TypeListFieldEditor.java     |  57 +++-----
 .../ConfirmedNameDetectionFieldEditor.java         |   8 +-
 .../namefinder/EntityContentProvider.java          |  60 ++++----
 .../caseditor/namefinder/MultiModelNameFinder.java |  35 ++---
 .../caseditor/namefinder/NameFinderJob.java        |  64 ++++-----
 .../namefinder/NameFinderModelFieldEditor.java     |  79 ++++------
 .../namefinder/NameFinderModelInputDialog.java     |  19 +--
 .../namefinder/NameFinderPreferencePage.java       |   4 +-
 .../caseditor/namefinder/NameFinderViewPage.java   |  10 +-
 .../PotentialEntityAnnotationLabelProvider.java    |  12 +-
 .../sentdetect/SentenceContentProvider.java        | 160 ++++++++++-----------
 .../caseditor/sentdetect/SentenceDetectorJob.java  |  30 ++--
 .../sentdetect/SentenceDetectorPreferencePage.java |   2 +-
 .../sentdetect/SentenceDetectorViewPage.java       |  42 +++---
 .../sentdetect/SentenceLabelProvider.java          |  10 +-
 .../opennlp/caseditor/tokenize/TokenizerJob.java   |  37 ++---
 .../tokenize/TokenizerPreferencePage.java          |   2 +-
 .../opennlp/caseditor/tokenize/TokenizerView.java  |   1 +
 .../caseditor/tokenize/TokenizerViewPage.java      |  10 +-
 .../caseditor/util/ContainingConstraint.java       |  19 +--
 .../apache/opennlp/caseditor/util/UIMAUtil.java    |  10 +-
 30 files changed, 348 insertions(+), 459 deletions(-)

diff --git a/caseditor-opennlp-plugin/pom.xml b/caseditor-opennlp-plugin/pom.xml
index ff12a1b..7849e6d 100644
--- a/caseditor-opennlp-plugin/pom.xml
+++ b/caseditor-opennlp-plugin/pom.xml
@@ -20,51 +20,47 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
 	<modelVersion>4.0.0</modelVersion>
-
 	<parent>
 		<groupId>org.apache</groupId>
 		<artifactId>apache</artifactId>
-		<version>9</version>
+		<!-- TODO OPENNLP-1452 once this is resolved, move to 29 as well. -->
+		<version>18</version>
 		<relativePath />
 	</parent>
 
 	<groupId>org.apache.opennlp</groupId>
-
-	<artifactId>opennlp-caseditor</artifactId>
-	<version>0.0.1-SNAPSHOT</version>
+	<artifactId>caseditor-opennlp-plugin</artifactId>
+	<version>2.1.1-SNAPSHOT</version>
 	<packaging>jar</packaging>
-	<name>OpenNLP CasEditor Plugin</name>
-	
+	<name>Apache OpenNLP CaseEditor Plugin</name>
+
 	<repositories>
-    <repository>
-      <id>eclipsePlugins</id>
-      <name>Eclipse components</name>
-      <layout>default</layout>
-      <url>http://repo1.maven.org/eclipse</url>
-      
-      <releases>
-        <updatePolicy>never</updatePolicy>
-        <checksumPolicy>fail</checksumPolicy>
-      </releases>
-      
-      <snapshots>
-        <enabled>false</enabled>
-      </snapshots>
-    </repository>
-    </repositories>
-    
-	<dependencies>
-		<dependency>
-			<groupId>junit</groupId>
-			<artifactId>junit</artifactId>
-			<version>4.5</version>
-			<scope>test</scope>
-		</dependency>
+		<repository>
+			<id>eclipsePlugins</id>
+			<name>Eclipse components</name>
+			<layout>default</layout>
+			<url>https://repo.eclipse.org</url>
+
+			<releases>
+				<updatePolicy>never</updatePolicy>
+				<checksumPolicy>fail</checksumPolicy>
+			</releases>
+
+			<snapshots>
+				<enabled>false</enabled>
+			</snapshots>
+		</repository>
+	</repositories>
+
+	<properties>
+		<uimaj.version>3.3.1</uimaj.version>
+	</properties>
 
+	<dependencies>
 		<dependency>
 		  <groupId>org.apache.opennlp</groupId>
 		  <artifactId>opennlp-tools</artifactId>
-		  <version>1.5.2-incubating</version>
+		  <version>2.1.0</version>
 		</dependency>
 
 		<!-- UIMA dependencies -->
@@ -72,22 +68,22 @@
 		<dependency>
 			<groupId>org.apache.uima</groupId>
 			<artifactId>uimaj-core</artifactId>
-			<version>2.4.0</version>
+			<version>${uimaj.version}</version>
 			<scope>compile</scope>
 		</dependency>
 
 		<dependency>
 			<groupId>org.apache.uima</groupId>
-			<artifactId>uimaj-tools</artifactId>
-			<version>2.4.0</version>
+			<artifactId>uimaj-ep-cas-editor</artifactId>
+			<version>${uimaj.version}</version>
 			<scope>compile</scope>
 		</dependency>
-
+		
 		<dependency>
 			<groupId>org.apache.uima</groupId>
-			<artifactId>uimaj-ep-cas-editor</artifactId>
-			<version>2.4.0</version>
-			<scope>compile</scope>
+			<artifactId>uimaj-tools</artifactId>
+			<version>${uimaj.version}</version>
+			<scope>runtime</scope>
 		</dependency>
 		
 		<!-- Eclipse dependencies -->
@@ -114,20 +110,11 @@
 		</dependency>
 
 		<dependency>
-			<groupId>org.eclipse.swt</groupId>
-			<artifactId>org.eclipse.swt.win32.win32.x86</artifactId>
-			<!-- changing the lower version number to 3.2.0, was 3.3.0 because only 
-				3.2.0 and 3.2.1 are in repo -->
-			<version>[3.2.0.0,4.0.0)</version>
-			<scope>provided</scope>
-		</dependency>
-
-		<!-- dependency>
-			<groupId>org.eclipse.ui</groupId>
-			<artifactId>ide</artifactId>
+			<groupId>org.eclipse.swt.win32.win32</groupId>
+			<artifactId>x86</artifactId>
 			<version>[3.3.0.0,4.0.0)</version>
 			<scope>provided</scope>
-		</dependency -->
+		</dependency>
 
 		<dependency>
 			<groupId>org.eclipse.ui</groupId>
@@ -151,12 +138,19 @@
 			<version>[3.3.0.0,4.0.0)</version>
 			<scope>provided</scope>
 		</dependency>
+
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>4.13.2</version>
+			<scope>test</scope>
+		</dependency>
 	</dependencies>
 
 	<build>
 		<!-- don't use artifactId as first part of finalName, follow instead the 
 			eclipse convention -->
-		<finalName>org.apache.opennlp.caseditor_0.0.1</finalName>
+		<finalName>org.apache.opennlp.caseditor_2.1.1</finalName>
 		<resources>
 			<resource>
 				<directory>.</directory>
@@ -175,8 +169,9 @@
 				<groupId>org.apache.maven.plugins</groupId>
 				<artifactId>maven-compiler-plugin</artifactId>
 				<configuration>
-					<source>1.6</source>
-					<target>1.6</target>
+					<source>11</source>
+					<target>11</target>
+					<compilerArgument>-Xlint</compilerArgument>
 				</configuration>
 			</plugin>
 			<plugin>
@@ -190,10 +185,11 @@
 			<plugin>
 				<groupId>org.apache.felix</groupId>
 				<artifactId>maven-bundle-plugin</artifactId>
+				<version>5.1.8</version>
 				<executions>
 					<execution>
-    	                 <goals><goal>manifest</goal></goals>
-		                 <phase>process-classes</phase>
+						<goals><goal>manifest</goal></goals>
+						<phase>process-classes</phase>
 						<configuration>
 							<manifestLocation>META-INF/</manifestLocation>
 							<instructions>
@@ -213,7 +209,6 @@
 									org.eclipse.ui.workbench,
 									org.eclipse.core.runtime,
 									org.eclipse.core.resources,
-									org.junit4;bundle-version="4.5.0";resolution:=optional
 								</Require-Bundle>
 								<Import-Package>
 									!org.eclipse.jface.text,
diff --git a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/ConfirmAnnotationAction.java b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/ConfirmAnnotationAction.java
index afbd2a5..3259d5a 100644
--- a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/ConfirmAnnotationAction.java
+++ b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/ConfirmAnnotationAction.java
@@ -25,9 +25,9 @@ import org.eclipse.ui.actions.BaseSelectionListenerAction;
 
 public class ConfirmAnnotationAction extends BaseSelectionListenerAction {
   
-  private TableViewer entityList;
+  private final TableViewer entityList;
   
-  private ICasEditor editor;
+  private final ICasEditor editor;
   
   public ConfirmAnnotationAction(TableViewer entityList, ICasEditor editor) {
     super("Confirm");
@@ -54,7 +54,7 @@ public class ConfirmAnnotationAction extends BaseSelectionListenerAction {
     IStructuredSelection selection = 
         (IStructuredSelection) entityList.getSelection();
     
-    Object elements[] = selection.toArray();
+    Object[] elements = selection.toArray();
 
     if (elements.length > 0) {
       PotentialAnnotation selectedEntity = (PotentialAnnotation) elements[0];
diff --git a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/OpenNLPPreferenceInitializer.java b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/OpenNLPPreferenceInitializer.java
index 9bde2a5..9c485ec 100644
--- a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/OpenNLPPreferenceInitializer.java
+++ b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/OpenNLPPreferenceInitializer.java
@@ -22,6 +22,7 @@ import org.eclipse.jface.preference.IPreferenceStore;
 
 public class OpenNLPPreferenceInitializer extends AbstractPreferenceInitializer {
 
+	@Override
 	public void initializeDefaultPreferences() {
 		IPreferenceStore store = OpenNLPPlugin.getDefault().getPreferenceStore();
 		
diff --git a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/OpenNLPPreferencePage.java b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/OpenNLPPreferencePage.java
index 5f458cc..d299b1b 100644
--- a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/OpenNLPPreferencePage.java
+++ b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/OpenNLPPreferencePage.java
@@ -25,7 +25,7 @@ import org.eclipse.ui.IWorkbenchPreferencePage;
 public class OpenNLPPreferencePage extends FieldEditorPreferencePage
     implements IWorkbenchPreferencePage {
 
-  private TypeSystem ts;
+  private final TypeSystem ts;
 
   public OpenNLPPreferencePage(TypeSystem ts) {
     this.ts = ts;  
diff --git a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/OpenPreferenceDialog.java b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/OpenPreferenceDialog.java
index 39f152d..db18273 100644
--- a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/OpenPreferenceDialog.java
+++ b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/OpenPreferenceDialog.java
@@ -31,8 +31,8 @@ import org.eclipse.ui.internal.dialogs.PropertyDialog;
 
 public class OpenPreferenceDialog extends Action {
   
-  private Shell shell;
-  private AnnotationEditor editor;
+  private final Shell shell;
+  private final AnnotationEditor editor;
 
   public OpenPreferenceDialog(Shell shell, ICasEditor editor) {
     this.shell = shell;
@@ -65,8 +65,8 @@ public class OpenPreferenceDialog extends Action {
     mgr.addToRoot(new PreferenceNode("1", nameFinderPage));
     
     PropertyDialog dialog = new PropertyDialog(shell, mgr, null);
-    dialog.setPreferenceStore(((AnnotationEditor) editor).
-        getCasDocumentProvider().getTypeSystemPreferenceStore(editor.getEditorInput()));
+    dialog.setPreferenceStore(( editor).getCasDocumentProvider().
+            getTypeSystemPreferenceStore(editor.getEditorInput()));
     dialog.create();
     dialog.setMessage(nameFinderPage.getTitle());
     dialog.open();
diff --git a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/PotentialAnnotation.java b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/PotentialAnnotation.java
index 6156f3a..c640e49 100644
--- a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/PotentialAnnotation.java
+++ b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/PotentialAnnotation.java
@@ -30,7 +30,7 @@ public class PotentialAnnotation {
 
   private Double confidence;
   
-  private String type;
+  private final String type;
 
   public PotentialAnnotation(int beginIndex, int endIndex, String entityText,
       Double confidence, String type) {
diff --git a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/PotentialAnnotationComperator.java b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/PotentialAnnotationComparator.java
similarity index 92%
rename from caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/PotentialAnnotationComperator.java
rename to caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/PotentialAnnotationComparator.java
index b43ee19..30bdba3 100644
--- a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/PotentialAnnotationComperator.java
+++ b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/PotentialAnnotationComparator.java
@@ -22,10 +22,10 @@ import org.eclipse.jface.viewers.ViewerComparator;
 
 /**
  * Compares two entities. Entities which have a smaller begin index are ordered first.
- * If entities have an identical begin index the one with the higher confidence score
+ * If entities have an identical start index the one with the higher confidence score
  * is ordered first.
  */
-public class PotentialAnnotationComperator extends ViewerComparator {
+public class PotentialAnnotationComparator extends ViewerComparator {
 
   @Override
   public int compare(Viewer viewer, Object o1, Object o2) {
diff --git a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/TypeFieldEditor.java b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/TypeFieldEditor.java
index 33936bd..2c44c9b 100644
--- a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/TypeFieldEditor.java
+++ b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/TypeFieldEditor.java
@@ -27,7 +27,7 @@ import org.eclipse.swt.widgets.Composite;
  */
 public class TypeFieldEditor extends StringButtonFieldEditor {
 
-  private TypeSystem ts;
+  private final TypeSystem ts;
 
   public TypeFieldEditor(String name, String labelText, TypeSystem ts, Composite parent) {
     super(name, labelText, parent);
diff --git a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/TypeInputDialog.java b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/TypeInputDialog.java
index f16112f..f9b92ec 100644
--- a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/TypeInputDialog.java
+++ b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/TypeInputDialog.java
@@ -39,7 +39,7 @@ public class TypeInputDialog extends InputDialog {
         String result = null;
         
         if (ts.getType(value) == null) {
-          return "Type does not exist in type sysetm!";
+          return "Type does not exist in type system!";
         }
         
         return result;
diff --git a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/TypeListFieldEditor.java b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/TypeListFieldEditor.java
index 5406024..fd89fab 100644
--- a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/TypeListFieldEditor.java
+++ b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/TypeListFieldEditor.java
@@ -25,10 +25,8 @@ import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.List;
-import org.eclipse.swt.widgets.Listener;
 
 /**
  * Field Editor for a list of UIMA type names.
@@ -37,7 +35,7 @@ import org.eclipse.swt.widgets.Listener;
 public class TypeListFieldEditor extends FieldEditor {
   
   private List typeList;
-  private TypeSystem ts;
+  private final TypeSystem ts;
   private Button removeButton;
   
   public TypeListFieldEditor(String name, String labelText,
@@ -72,12 +70,7 @@ public class TypeListFieldEditor extends FieldEditor {
     gd.verticalAlignment = GridData.FILL;
     
     typeList.setLayoutData(gd);
-    typeList.addListener(SWT.Selection, new Listener(){
-
-      @Override
-      public void handleEvent(Event event) {
-        checkState();
-      }});
+    typeList.addListener(SWT.Selection, event -> checkState());
     
     Composite buttonGroup = new Composite(parent, SWT.NONE);
     GridLayout buttonLayout = new GridLayout();
@@ -85,20 +78,16 @@ public class TypeListFieldEditor extends FieldEditor {
     
     Button addButton = new Button(buttonGroup, SWT.PUSH);
     addButton.setText("Add");
-    addButton.addListener(SWT.Selection, new Listener() {
+    addButton.addListener(SWT.Selection, event -> {
+      // We need a reference to the type system here ...
+      // open dialog to ask for new type ...
+      // dialog should contain a list of existing types ...
+      TypeInputDialog dialog = new TypeInputDialog(parent.getShell(), ts);
+      dialog.open();
+      String typeName = dialog.getValue();
 
-      @Override
-      public void handleEvent(Event event) {
-        // We need a reference to the type system here ...
-        // open dialog to ask for new type ...
-        // dialog should contain a list of existing types ...
-        TypeInputDialog dialog = new TypeInputDialog(parent.getShell(), ts);
-        dialog.open();
-        String typeName = dialog.getValue();
-        
-        if (typeName != null) {
-          typeList.add(typeName);
-        }        
+      if (typeName != null) {
+        typeList.add(typeName);
       }
     });
     
@@ -107,18 +96,14 @@ public class TypeListFieldEditor extends FieldEditor {
     // TODO: only enabled when an item in the list is selected
     removeButton = new Button(buttonGroup, SWT.PUSH);
     removeButton.setText("Remove");
-    removeButton.addListener(SWT.Selection, new Listener() {
-
-      @Override
-      public void handleEvent(Event event) {
-        int selectedItem = typeList.getSelectionIndex();
-        if (selectedItem != -1) {
-          typeList.remove(selectedItem);
-        }
-        
-        checkState();
-        
+    removeButton.addListener(SWT.Selection, event -> {
+      int selectedItem = typeList.getSelectionIndex();
+      if (selectedItem != -1) {
+        typeList.remove(selectedItem);
       }
+
+      checkState();
+
     });
     
     removeButton.setLayoutData(GridDataFactory.fillDefaults().create());
@@ -131,7 +116,7 @@ public class TypeListFieldEditor extends FieldEditor {
     if (typeList != null) {
       String value = getPreferenceStore().getString(getPreferenceName());
       
-      String types[] = getTypeList(value);
+      String[] types = getTypeList(value);
       
       for (String type : types) {
         typeList.add(type);
@@ -154,7 +139,7 @@ public class TypeListFieldEditor extends FieldEditor {
     return 3;
   }
   
-  public static String listToString(String types[]) {
+  public static String listToString(String[] types) {
     StringBuilder typeListString = new StringBuilder();
     
     for (String type : types) {
@@ -170,7 +155,7 @@ public class TypeListFieldEditor extends FieldEditor {
   }
   
   public static String[] getTypeList(String typeListString) {
-    String types[] = typeListString.split(",");
+    String[] types = typeListString.split(",");
     
     for (int i = 0; i < types.length; i++) {
       types[i] = types[i].trim();
diff --git a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/namefinder/ConfirmedNameDetectionFieldEditor.java b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/namefinder/ConfirmedNameDetectionFieldEditor.java
index 7bca2b0..2402dc3 100644
--- a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/namefinder/ConfirmedNameDetectionFieldEditor.java
+++ b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/namefinder/ConfirmedNameDetectionFieldEditor.java
@@ -17,8 +17,6 @@
 
 package org.apache.opennlp.caseditor.namefinder;
 
-
-import static  org.apache.opennlp.caseditor.OpenNLPPreferenceConstants.*;
 import org.eclipse.jface.layout.GridDataFactory;
 import org.eclipse.jface.preference.FieldEditor;
 import org.eclipse.swt.SWT;
@@ -29,12 +27,12 @@ import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.widgets.Group;
 import org.eclipse.swt.widgets.Listener;
 
+import static  org.apache.opennlp.caseditor.OpenNLPPreferenceConstants.*;
+
 public class ConfirmedNameDetectionFieldEditor extends FieldEditor {
 
   private Button forceDetectionButton;
 
-  private Composite optionButtons;
-
   private Button ignoreShortTokensButton;
   private Button onlyConsiderAllLetterTokensButton;
   private Button onlyConsiderInitialCapitalTokensButton;
@@ -70,7 +68,7 @@ public class ConfirmedNameDetectionFieldEditor extends FieldEditor {
         checkState();
       }});
 
-    optionButtons = new Composite(buttonGroup, SWT.NONE);
+    Composite optionButtons = new Composite(buttonGroup, SWT.NONE);
     optionButtons.setLayout(new GridLayout());
 
     // Ignore short tokens
diff --git a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/namefinder/EntityContentProvider.java b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/namefinder/EntityContentProvider.java
index d36c67e..7c0a621 100644
--- a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/namefinder/EntityContentProvider.java
+++ b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/namefinder/EntityContentProvider.java
@@ -22,8 +22,6 @@ import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
 
-import opennlp.tools.util.Span;
-
 import org.apache.opennlp.caseditor.AbstractCasChangeTrigger;
 import org.apache.opennlp.caseditor.OpenNLPPlugin;
 import org.apache.opennlp.caseditor.OpenNLPPreferenceConstants;
@@ -50,6 +48,8 @@ import org.eclipse.jface.viewers.TableViewer;
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.swt.widgets.Display;
 
+import opennlp.tools.util.Span;
+
 /**
  * The EntityContentProvider is responsible to trigger the detection of entities
  * and turn these into potential entity annotations.
@@ -276,26 +276,26 @@ public class EntityContentProvider implements IStructuredContentProvider {
     };
   }
   
-  private NameFinderJob nameFinder;
+  private final NameFinderJob nameFinder;
   
-  private CasChangeNameFinderTrigger casChangeTrigger = new CasChangeNameFinderTrigger();
-  private PreferenceChangeNameFinderTrigger preferenceChangeTrigger = new PreferenceChangeNameFinderTrigger();
-  private ConfirmedEntityListener casChangeListener = new ConfirmedEntityListener();
+  private final CasChangeNameFinderTrigger casChangeTrigger = new CasChangeNameFinderTrigger();
+  private final PreferenceChangeNameFinderTrigger preferenceChangeTrigger = new PreferenceChangeNameFinderTrigger();
+  private final ConfirmedEntityListener casChangeListener = new ConfirmedEntityListener();
   
-  private TableViewer entityListViewer;
+  private final TableViewer entityListViewer;
   
   private ICasDocument input;
   
-  private AnnotationEditor editor;
+  private final AnnotationEditor editor;
   
   // contains all existing entity annotations and is synchronized!
   // needed by name finder to calculate updates ... 
-  private List<PotentialAnnotation> candidateEntities = new ArrayList<PotentialAnnotation>();
-  private List<PotentialAnnotation> confirmedEntities = new ArrayList<PotentialAnnotation>();
+  private final List<PotentialAnnotation> candidateEntities = new ArrayList<>();
+  private final List<PotentialAnnotation> confirmedEntities = new ArrayList<>();
   
-  private String nameTypeNames[];
+  private String[] nameTypeNames;
 
-  private NameFinderViewPage nameFinderView;
+  private final NameFinderViewPage nameFinderView;
   
   EntityContentProvider(NameFinderViewPage nameFinderView, AnnotationEditor editor, TableViewer entityList) {
     this.nameFinder = new NameFinderJob();
@@ -308,7 +308,7 @@ public class EntityContentProvider implements IStructuredContentProvider {
     store.addPropertyChangeListener(preferenceChangeTrigger);
   }
   
-  private static boolean contains(String array[], String element) {
+  private static boolean contains(String[] array, String element) {
     
     for (String arrayElement : array) {
       if (element.equals(arrayElement))
@@ -317,7 +317,8 @@ public class EntityContentProvider implements IStructuredContentProvider {
     
     return false;
   }
-  
+
+  @Override
   public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
 
     // Problem: "The viewer should not be updated during this call, as it might be in 
@@ -396,7 +397,7 @@ public class EntityContentProvider implements IStructuredContentProvider {
       return;
     }
     
-    String modelPathes[] = store.getString(OpenNLPPreferenceConstants.NAME_FINDER_MODEL_PATH).split(",");
+    String[] modelPathes = store.getString(OpenNLPPreferenceConstants.NAME_FINDER_MODEL_PATH).split(",");
     
     for (int i = 0; i < modelPathes.length; i++) {
       modelPathes[i] = modelPathes[i].trim();
@@ -415,7 +416,7 @@ public class EntityContentProvider implements IStructuredContentProvider {
 
     if (text != null) {
 
-      Type sentenceTypes[] = UIMAUtil.splitTypes(
+      Type[] sentenceTypes = UIMAUtil.splitTypes(
           sentenceTypeName + "," +  additionalSentenceTypes, ',', cas.getTypeSystem());
       
       if (sentenceTypes == null) {
@@ -437,15 +438,14 @@ public class EntityContentProvider implements IStructuredContentProvider {
         return;
       }
       
-      List<Span> sentences = new ArrayList<Span>();
-      List<Span> tokens = new ArrayList<Span>();
+      List<Span> sentences = new ArrayList<>();
+      List<Span> tokens = new ArrayList<>();
       
       for (Iterator<AnnotationFS> sentenceIterator = 
           UIMAUtil.createMultiTypeIterator(cas, sentenceTypes);
           sentenceIterator.hasNext();) {
         
-        AnnotationFS sentenceAnnotation = (AnnotationFS) sentenceIterator
-            .next();
+        AnnotationFS sentenceAnnotation = sentenceIterator.next();
         
         // TODO: Add code to detect overlapping sentences ... not allowed!
         
@@ -464,13 +464,13 @@ public class EntityContentProvider implements IStructuredContentProvider {
             allTokens.iterator(), containingConstraint);
         
         while (containingTokens.hasNext()) {
-          AnnotationFS token = (AnnotationFS) containingTokens.next();
+          AnnotationFS token = containingTokens.next();
           
           tokens.add(new Span(token.getBegin(), token.getEnd()));
         }
       }
       
-      List<Span> nameSpans = new ArrayList<Span>();
+      List<Span> nameSpans = new ArrayList<>();
 
       for (String nameTypeName : nameTypeNames) {
         
@@ -483,14 +483,10 @@ public class EntityContentProvider implements IStructuredContentProvider {
         
         FSIndex<AnnotationFS> nameAnnotations = cas
             .getAnnotationIndex(nameType);
-  
-        for (Iterator<AnnotationFS> nameIterator = nameAnnotations
-            .iterator(); nameIterator.hasNext();) {
-  
-          AnnotationFS nameAnnotation = (AnnotationFS) nameIterator.next();
-  
+
+        for (AnnotationFS nameAnnotation : nameAnnotations) {
           nameSpans.add(new Span(nameAnnotation.getBegin(), nameAnnotation.getEnd(),
-              nameAnnotation.getType().getName()));
+                  nameAnnotation.getType().getName()));
         }
       }
       
@@ -539,7 +535,8 @@ public class EntityContentProvider implements IStructuredContentProvider {
       nameFinder.schedule();
     }
   }
-  
+
+  @Override
   public Object[] getElements(Object inputElement) {
     // Note: 
     // Called directly after showing the view, the
@@ -547,7 +544,8 @@ public class EntityContentProvider implements IStructuredContentProvider {
     // which will be added to the viewer
     return candidateEntities.toArray();
   }
-  
+
+  @Override
   public void dispose() {
     IPreferenceStore store = editor.getCasDocumentProvider().getTypeSystemPreferenceStore(editor.getEditorInput());
     store.removePropertyChangeListener(preferenceChangeTrigger);
diff --git a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/namefinder/MultiModelNameFinder.java b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/namefinder/MultiModelNameFinder.java
index dec49d1..5c205b1 100644
--- a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/namefinder/MultiModelNameFinder.java
+++ b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/namefinder/MultiModelNameFinder.java
@@ -37,9 +37,9 @@ public class MultiModelNameFinder implements TokenNameFinder {
 
   static class RestrictedSequencesValidator extends NameFinderSequenceValidator {
     
-    private String modelType;
+    private final String modelType;
     
-    private Map<Integer, String> nameIndex = new HashMap<Integer, String>();
+    private Map<Integer, String> nameIndex = new HashMap<>();
     
     private Set<String> nameOnlyTokens;
     
@@ -87,14 +87,13 @@ public class MultiModelNameFinder implements TokenNameFinder {
     }
   }
   
-  
-  private NameFinderME nameFinders[];
-  private String modelTypes[];
+  private final NameFinderME[] nameFinders;
+  private final String[] modelTypes;
   
   // TODO: We need one per name finder instance ...
-  private RestrictedSequencesValidator sequenceValidators[];
+  private final RestrictedSequencesValidator[] sequenceValidators;
   
-  MultiModelNameFinder(String modelPathes[], String modelTypes[]) throws IOException {
+  MultiModelNameFinder(String[] modelPathes, String[] modelTypes) throws IOException {
     
     this.modelTypes = modelTypes;
     
@@ -104,27 +103,17 @@ public class MultiModelNameFinder implements TokenNameFinder {
     for (int i = 0; i < modelPathes.length; i++) {
       
       String modelPath = modelPathes[i];
-      
-      InputStream modelIn = ModelUtil.openModelIn(modelPath);
-      
-      try {
+
+      try (InputStream modelIn = ModelUtil.openModelIn(modelPath)) {
         TokenNameFinderModel model = new TokenNameFinderModel(modelIn);
         sequenceValidators[i] = new RestrictedSequencesValidator(modelTypes[i]);
-        nameFinders[i] = new NameFinderME(model, null, 5, sequenceValidators[i]);
+        nameFinders[i] = new NameFinderME(model);
       } 
       catch (IOException e) {
         // Error message should include model type
         throw new IOException("Failed to load a model, path:\n" + modelPathes[i] +
             "\nError Message:\n" + e.getMessage());
       }
-      finally {
-        if (modelIn != null) {
-          try {
-            modelIn.close();
-          } catch (IOException e) {
-          }
-        }
-      }
     }
     
   }
@@ -153,12 +142,12 @@ public class MultiModelNameFinder implements TokenNameFinder {
   @Override
   public ConfidenceSpan[] find(String[] sentence) {
     
-    List<ConfidenceSpan> names = new ArrayList<ConfidenceSpan>();
+    List<ConfidenceSpan> names = new ArrayList<>();
     
     for (int i = 0; i < nameFinders.length; i++) {
       NameFinderME nameFinder = nameFinders[i];
-      Span detectedNames[] = nameFinder.find(sentence);
-      double confidence[] = nameFinder.probs();
+      Span[] detectedNames = nameFinder.find(sentence);
+      double[] confidence = nameFinder.probs();
       
       for (int j = 0; j < detectedNames.length; j++) {
         // TODO: Also add type ...
diff --git a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/namefinder/NameFinderJob.java b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/namefinder/NameFinderJob.java
index 5bd20d8..a20e29a 100644
--- a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/namefinder/NameFinderJob.java
+++ b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/namefinder/NameFinderJob.java
@@ -25,10 +25,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import opennlp.tools.namefind.NameFinderME;
-import opennlp.tools.util.Span;
-import opennlp.tools.util.featuregen.StringPattern;
-
 import org.apache.opennlp.caseditor.OpenNLPPlugin;
 import org.apache.opennlp.caseditor.PotentialAnnotation;
 import org.eclipse.core.runtime.IProgressMonitor;
@@ -36,6 +32,10 @@ import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.core.runtime.jobs.Job;
 
+import opennlp.tools.namefind.NameFinderME;
+import opennlp.tools.util.Span;
+import opennlp.tools.util.featuregen.StringPattern;
+
 // Add error handling, if something goes wrong, an error should be reported!
 // Need a rule, only one name finder job at a time ...
 // don't change setting, while job is running!
@@ -44,14 +44,14 @@ public class NameFinderJob extends Job {
   
   private MultiModelNameFinder nameFinder;
   
-  private String modelPath[];
+  private String[] modelPath;
   
-  private String modelTypes[];
+  private String[] modelTypes;
   
   private String text;
-  private Span sentences[];
-  private Span tokens[];
-  private Span verifiedNames[] = new Span[0];
+  private Span[] sentences;
+  private Span[] tokens;
+  private Span[] verifiedNames = new Span[0];
   
   private List<PotentialAnnotation> nameList;
 
@@ -65,11 +65,8 @@ public class NameFinderJob extends Job {
     super("Name Finder Job");
   }
   
-  /**
-   * @param modelPath
-   */
-  synchronized void setModelPath(String modelPathes[], String modelTypes[]) {
-    this.modelPath = modelPathes;
+  synchronized void setModelPath(String[] modelPath, String[] modelTypes) {
+    this.modelPath = modelPath;
     this.modelTypes = modelTypes;
   }
   
@@ -77,15 +74,15 @@ public class NameFinderJob extends Job {
     this.text = text;
   }
   
-  synchronized void setSentences(Span sentences[]) {
+  synchronized void setSentences(Span[] sentences) {
     this.sentences = sentences;
   }
   
-  synchronized void setTokens(Span tokens[]) {
+  synchronized void setTokens(Span[] tokens) {
     this.tokens = tokens;
   }
   
-  synchronized void setVerifiedNames(Span verifiedNames[]) {
+  synchronized void setVerifiedNames(Span[] verifiedNames) {
     this.verifiedNames = verifiedNames;
   }
 
@@ -121,16 +118,16 @@ public class NameFinderJob extends Job {
     if (nameFinder != null) {
       nameFinder.clearAdaptiveData(); // TODO: If model loading fails we get a NPE here!
     
-      nameList = new ArrayList<PotentialAnnotation>();
+      nameList = new ArrayList<>();
       
       // TODO: Name tokens, should be for the entire text,
       // not just the prev sentences ...
-      Set<String> nameTokens = new HashSet<String>();
+      Set<String> nameTokens = new HashSet<>();
       
       for (Span sentence : sentences) {
         
         // Create token list for sentence
-        List<Span> sentenceTokens = new ArrayList<Span>();
+        List<Span> sentenceTokens = new ArrayList<>();
         
         for (Span token : tokens) {
           if (sentence.contains(token)) {
@@ -138,14 +135,14 @@ public class NameFinderJob extends Job {
           }
         }
         
-        String tokenStrings[] = new String[sentenceTokens.size()];
+        String[] tokenStrings = new String[sentenceTokens.size()];
         
         for (int i = 0; i < sentenceTokens.size(); i++) {
           Span token = sentenceTokens.get(i);
           tokenStrings[i] = token.getCoveredText(text).toString();
         }
         
-        Map<Integer, String> verifiedNameTokens = new HashMap<Integer, String>();
+        Map<Integer, String> verifiedNameTokens = new HashMap<>();
         
         // Note: This is slow!
         // iterate over names, to find token indexes
@@ -198,19 +195,18 @@ public class NameFinderJob extends Job {
         nameFinder.setNameOnlyTokens(nameTokens);
         
         // TODO: Use multiple name finders here .... 
-        ConfidenceSpan names[] = nameFinder.find(tokenStrings);
-        
-        for (int i = 0; i < names.length; i++) {
-          
+        ConfidenceSpan[] names = nameFinder.find(tokenStrings);
+
+        for (ConfidenceSpan name : names) {
+
           // add sentence offset here ...
-          
-          int beginIndex = sentenceTokens.get(names[i].getStart()).getStart();
-          int endIndex = sentenceTokens.get(names[i].getEnd() - 1).getEnd();
-          
+          int beginIndex = sentenceTokens.get(name.getStart()).getStart();
+          int endIndex = sentenceTokens.get(name.getEnd() - 1).getEnd();
+
           String coveredText = text.substring(beginIndex, endIndex);
-          
+
           nameList.add(new PotentialAnnotation(beginIndex, endIndex, coveredText,
-              names[i].getConfidence(), names[i].getType()));
+                  name.getConfidence(), name.getType()));
         }
       }
     }
@@ -222,8 +218,6 @@ public class NameFinderJob extends Job {
   }
 
   public List<PotentialAnnotation> getNames() {
-    List<PotentialAnnotation> names = new ArrayList<PotentialAnnotation>();
-    names.addAll(nameList);
-    return names;
+    return new ArrayList<>(nameList);
   }
 }
diff --git a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/namefinder/NameFinderModelFieldEditor.java b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/namefinder/NameFinderModelFieldEditor.java
index 7f4731b..590eb79 100644
--- a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/namefinder/NameFinderModelFieldEditor.java
+++ b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/namefinder/NameFinderModelFieldEditor.java
@@ -31,9 +31,7 @@ import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
 import org.eclipse.swt.widgets.Table;
 import org.eclipse.swt.widgets.TableColumn;
 import org.eclipse.swt.widgets.TableItem;
@@ -51,7 +49,7 @@ class NameFinderModelFieldEditor extends FieldEditor {
   private static final String MODEL_PATH_KEY = "ModelPathKey";
   private static final String TYPE_NAME_KEY = "TypeNameKey";
 
-  private TypeSystem ts;
+  private final TypeSystem ts;
 
   private Table modelTypeTable;
   private Button editButton;
@@ -100,12 +98,7 @@ class NameFinderModelFieldEditor extends FieldEditor {
     modelTypeTable.setLinesVisible(true);
     modelTypeTable.setHeaderVisible(true);
 
-    modelTypeTable.addListener(SWT.Selection, new Listener() {
-
-      @Override
-      public void handleEvent(Event event) {
-        checkState();
-      }});
+    modelTypeTable.addListener(SWT.Selection, event -> checkState());
 
     TableColumn modelColumn = new TableColumn(modelTypeTable, SWT.NONE);
     modelColumn.setText("Model Path");
@@ -123,57 +116,45 @@ class NameFinderModelFieldEditor extends FieldEditor {
     addButton.setLayoutData(GridDataFactory.fillDefaults().create());
     addButton.setText("Add");
 
-    addButton.addListener(SWT.Selection, new Listener() {
-
-      @Override
-      public void handleEvent(Event event) {
-
-        NameFinderModelInputDialog dialog = new NameFinderModelInputDialog(
-            parent.getShell(), "Add a name finder model", ts);
+    addButton.addListener(SWT.Selection, event -> {
+      NameFinderModelInputDialog dialog = new NameFinderModelInputDialog(
+          parent.getShell(), "Add a name finder model", ts);
 
-        if (Dialog.OK == dialog.open()) {
-          createTableItem(dialog.getModelPath(), dialog.getTypeName());
-        }
-      }});
+      if (Dialog.OK == dialog.open()) {
+        createTableItem(dialog.getModelPath(), dialog.getTypeName());
+      }
+    });
 
     editButton = new Button(buttonGroup, SWT.PUSH);
     editButton.setLayoutData(GridDataFactory.fillDefaults().create());
     editButton.setText("Edit");
 
-    editButton.addListener(SWT.Selection, new Listener() {
-
-      @Override
-      public void handleEvent(Event event) {
-        NameFinderModelInputDialog dialog = new NameFinderModelInputDialog(parent.getShell(),
-            "Edit name finder model", ts);
+    editButton.addListener(SWT.Selection, event -> {
+      NameFinderModelInputDialog dialog = new NameFinderModelInputDialog(parent.getShell(),
+          "Edit name finder model", ts);
 
-        TableItem item = modelTypeTable.getItem(modelTypeTable.getSelectionIndex());
+      TableItem item = modelTypeTable.getItem(modelTypeTable.getSelectionIndex());
 
-        dialog.setModelPath((String) item.getData(MODEL_PATH_KEY));
-        dialog.setTypeName((String) item.getData(TYPE_NAME_KEY));
+      dialog.setModelPath((String) item.getData(MODEL_PATH_KEY));
+      dialog.setTypeName((String) item.getData(TYPE_NAME_KEY));
 
-        if (Dialog.OK == dialog.open()) {
-          item.setData(MODEL_PATH_KEY, dialog.getModelPath());
-          item.setText(0, dialog.getModelPath());
+      if (Dialog.OK == dialog.open()) {
+        item.setData(MODEL_PATH_KEY, dialog.getModelPath());
+        item.setText(0, dialog.getModelPath());
 
-          item.setData(TYPE_NAME_KEY, dialog.getTypeName());
-          item.setText(1, dialog.getTypeName());
-        }
-      }});
+        item.setData(TYPE_NAME_KEY, dialog.getTypeName());
+        item.setText(1, dialog.getTypeName());
+      }
+    });
 
     removeButton = new Button(buttonGroup, SWT.PUSH);
     removeButton.setLayoutData(GridDataFactory.fillDefaults().create());
     removeButton.setText("Remove");
 
-    removeButton.addListener(SWT.Selection, new Listener() {
-
-      @Override
-      public void handleEvent(Event event) {
-
-        modelTypeTable.remove(modelTypeTable.getSelectionIndex());
-
-        checkState();
-      }});
+    removeButton.addListener(SWT.Selection, event -> {
+      modelTypeTable.remove(modelTypeTable.getSelectionIndex());
+      checkState();
+    });
 
     checkState();
   }
@@ -182,10 +163,10 @@ class NameFinderModelFieldEditor extends FieldEditor {
   protected void doLoad() {
     if (modelTypeTable != null) {
       String modelPathsString = getPreferenceStore().getString(OpenNLPPreferenceConstants.NAME_FINDER_MODEL_PATH);
-      String modelPaths[] = TypeListFieldEditor.getTypeList(modelPathsString);
+      String[] modelPaths = TypeListFieldEditor.getTypeList(modelPathsString);
 
       String typeNamesString = getPreferenceStore().getString(OpenNLPPreferenceConstants.NAME_TYPE);
-      String typeNames[] = TypeListFieldEditor.getTypeList(typeNamesString);
+      String[] typeNames = TypeListFieldEditor.getTypeList(typeNamesString);
 
       // Don't load anything ...
       if (modelPaths.length != typeNames.length) {
@@ -207,8 +188,8 @@ class NameFinderModelFieldEditor extends FieldEditor {
   @Override
   protected void doStore() {
 
-    List<String> modelPaths = new ArrayList<String>();
-    List<String> typeNames = new ArrayList<String>();
+    List<String> modelPaths = new ArrayList<>();
+    List<String> typeNames = new ArrayList<>();
 
     // iterate over table
     for (int i = 0; i < modelTypeTable.getItemCount(); i++) {
diff --git a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/namefinder/NameFinderModelInputDialog.java b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/namefinder/NameFinderModelInputDialog.java
index 3f36085..0593a25 100644
--- a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/namefinder/NameFinderModelInputDialog.java
+++ b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/namefinder/NameFinderModelInputDialog.java
@@ -36,9 +36,9 @@ import org.eclipse.swt.widgets.Text;
 // TODO: Add validation
 public class NameFinderModelInputDialog extends Dialog {
 
-  private TypeSystem ts;
+  private final TypeSystem ts;
 
-  private String dialogTitle;
+  private final String dialogTitle;
 
   private String modelTextValue = "";
   private String typeNameTextValue = "";
@@ -81,12 +81,7 @@ public class NameFinderModelInputDialog extends Dialog {
     modelText.setLayoutData(GridDataFactory.swtDefaults().
         align(SWT.FILL, SWT.CENTER).grab(true,  false).create());
     modelText.setText(modelTextValue);
-    modelText.addListener(SWT.Modify, new Listener(){
-
-      @Override
-      public void handleEvent(Event event) {
-        modelTextValue = modelText.getText();
-      }});
+    modelText.addListener(SWT.Modify, event -> modelTextValue = modelText.getText());
 
 // TODO: Implement browse button
 //    Button browseButton = new Button(dialogArea, SWT.PUSH);
@@ -99,13 +94,7 @@ public class NameFinderModelInputDialog extends Dialog {
     typeNameText.setLayoutData(GridDataFactory.swtDefaults().
         align(SWT.FILL, SWT.CENTER).grab(true,  false).create());
     typeNameText.setText(typeNameTextValue);
-    typeNameText.addListener(SWT.Modify, new Listener() {
-
-      @Override
-      public void handleEvent(Event event) {
-        typeNameTextValue = typeNameText.getText();
-      }
-    });
+    typeNameText.addListener(SWT.Modify, event -> typeNameTextValue = typeNameText.getText());
 
     return dialogArea;
   }
diff --git a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/namefinder/NameFinderPreferencePage.java b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/namefinder/NameFinderPreferencePage.java
index fcfc536..0b5c73a 100644
--- a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/namefinder/NameFinderPreferencePage.java
+++ b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/namefinder/NameFinderPreferencePage.java
@@ -27,7 +27,7 @@ import org.eclipse.ui.IWorkbenchPreferencePage;
 public class NameFinderPreferencePage extends FieldEditorPreferencePage
     implements IWorkbenchPreferencePage {
 
-  private TypeSystem ts;
+  private final TypeSystem ts;
 
   public NameFinderPreferencePage(TypeSystem ts) {
     setDescription("Name Finder Preferences.");
@@ -64,6 +64,6 @@ public class NameFinderPreferencePage extends FieldEditorPreferencePage
         new ConfirmedNameDetectionFieldEditor(getFieldEditorParent());
     addField(forceNameDetection);
     // Add a group
-    // Other options should be have an indent ...
+    // Other options should have an indent ...
   }
 }
diff --git a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/namefinder/NameFinderViewPage.java b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/namefinder/NameFinderViewPage.java
index 9bab024..570501d 100644
--- a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/namefinder/NameFinderViewPage.java
+++ b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/namefinder/NameFinderViewPage.java
@@ -20,14 +20,13 @@ package org.apache.opennlp.caseditor.namefinder;
 import org.apache.opennlp.caseditor.ConfirmAnnotationAction;
 import org.apache.opennlp.caseditor.OpenPreferenceDialog;
 import org.apache.opennlp.caseditor.PotentialAnnotation;
-import org.apache.opennlp.caseditor.PotentialAnnotationComperator;
+import org.apache.opennlp.caseditor.PotentialAnnotationComparator;
 import org.apache.uima.cas.text.AnnotationFS;
 import org.apache.uima.caseditor.CasEditorPlugin;
 import org.apache.uima.caseditor.Images;
 import org.apache.uima.caseditor.editor.AnnotationEditor;
 import org.apache.uima.caseditor.editor.ICasDocument;
 import org.apache.uima.caseditor.editor.ICasEditor;
-import org.apache.uima.caseditor.editor.ICasEditorInputListener;
 import org.apache.uima.caseditor.editor.util.AnnotationSelection;
 import org.eclipse.jface.action.IAction;
 import org.eclipse.jface.action.IToolBarManager;
@@ -45,7 +44,6 @@ import org.eclipse.swt.widgets.Table;
 import org.eclipse.swt.widgets.TableColumn;
 import org.eclipse.swt.widgets.Text;
 import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.ISelectionListener;
 import org.eclipse.ui.IWorkbenchPart;
 import org.eclipse.ui.actions.BaseSelectionListenerAction;
@@ -62,9 +60,9 @@ class NameFinderViewPage extends Page implements ISelectionListener {
 
   private static final String QUICK_ANNOTATE_ACTION_ID = "QuickAnnotate";
   
-  private NameFinderView nameFinderView;
+  private final NameFinderView nameFinderView;
   
-  private ICasEditor editor;
+  private final ICasEditor editor;
 
   private PageBook book;
 
@@ -111,7 +109,7 @@ class NameFinderViewPage extends Page implements ISelectionListener {
     entityList.setContentProvider(new EntityContentProvider(this, (AnnotationEditor) editor, entityList));
     getSite().setSelectionProvider(entityList);
     
-    entityList.setComparator(new PotentialAnnotationComperator());
+    entityList.setComparator(new PotentialAnnotationComparator());
     
     entityList.setInput(editor.getDocument());
     
diff --git a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/namefinder/PotentialEntityAnnotationLabelProvider.java b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/namefinder/PotentialEntityAnnotationLabelProvider.java
index 9dbb196..e25e4ca 100644
--- a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/namefinder/PotentialEntityAnnotationLabelProvider.java
+++ b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/namefinder/PotentialEntityAnnotationLabelProvider.java
@@ -26,22 +26,27 @@ import org.eclipse.swt.graphics.Image;
 
 public class PotentialEntityAnnotationLabelProvider implements ITableLabelProvider {
 
-  private DecimalFormat df = new DecimalFormat("#.#");
-  
+  private final DecimalFormat df = new DecimalFormat("#.#");
+
+  @Override
   public void addListener(ILabelProviderListener listener) {
   }
 
+  @Override
   public void removeListener(ILabelProviderListener listener) {
   }
 
+  @Override
   public boolean isLabelProperty(Object element, String property) {
     return false;
   }
 
+  @Override
   public Image getColumnImage(Object element, int columnIndex) {
     return null;
   }
 
+  @Override
   public String getColumnText(Object element, int columnIndex) {
     String result = null;
     
@@ -59,7 +64,7 @@ public class PotentialEntityAnnotationLabelProvider implements ITableLabelProvid
     else if (columnIndex == 2) {
       // TODO: Improve this ...
       if (entity.getType() != null && entity.getType() != null) {
-        String parts[] = entity.getType().split("\\.");
+        String[] parts = entity.getType().split("\\.");
         result = parts[parts.length - 1];
       } else
         result = "";
@@ -68,6 +73,7 @@ public class PotentialEntityAnnotationLabelProvider implements ITableLabelProvid
     return result;
   }
 
+  @Override
   public void dispose() {
   }
 }
diff --git a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/sentdetect/SentenceContentProvider.java b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/sentdetect/SentenceContentProvider.java
index 6a84085..1fc5e03 100644
--- a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/sentdetect/SentenceContentProvider.java
+++ b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/sentdetect/SentenceContentProvider.java
@@ -71,16 +71,16 @@ public class SentenceContentProvider implements IStructuredContentProvider {
     }
   }
   
-  private SentenceDetectorViewPage sentenceDetectorView;
+  private final SentenceDetectorViewPage sentenceDetectorView;
   
-  private AnnotationEditor editor;
+  private final AnnotationEditor editor;
   
   private ICasDocumentListener casChangedTrigger;
-  private PreferenceChangeTrigger preferenceChangeTrigger = new PreferenceChangeTrigger();
+  private final PreferenceChangeTrigger preferenceChangeTrigger = new PreferenceChangeTrigger();
   
-  private SentenceDetectorJob sentenceDetector;
+  private final SentenceDetectorJob sentenceDetector;
   
-  private TableViewer sentenceList;
+  private final TableViewer sentenceList;
 
   public SentenceContentProvider(SentenceDetectorViewPage sentenceDetectorView, AnnotationEditor editor,
       SentenceDetectorJob sentenceDetector, TableViewer sentenceList) {
@@ -91,87 +91,81 @@ public class SentenceContentProvider implements IStructuredContentProvider {
     
     sentenceDetector.addJobChangeListener(new JobChangeAdapter() {
       public void done(final IJobChangeEvent event) {
-        Display.getDefault().asyncExec(new Runnable() {
+        Display.getDefault().asyncExec(() -> {
+          if (event.getResult().isOK()) {
 
-          @Override
-          public void run() {
-            if (event.getResult().isOK()) {
-              
-              SentenceContentProvider.this.sentenceDetectorView.setMessage(null);
-              
-              List<PotentialAnnotation> confirmedSentences = new ArrayList<PotentialAnnotation>();
-              // TODO: Create a list of existing sentence annotations.
-              
-              // get sentence annotation index ...
-              CAS cas = SentenceContentProvider.this.editor.getDocument().getCAS();
-              
-              IPreferenceStore store = SentenceContentProvider.this.editor.
-                  getCasDocumentProvider().getTypeSystemPreferenceStore(
-                  SentenceContentProvider.this.editor.getEditorInput());
-              
-              String sentenceTypeName = store.getString(OpenNLPPreferenceConstants.SENTENCE_TYPE);;
-              Type sentenceType = cas.getTypeSystem().getType(sentenceTypeName);
-              
-              for (Iterator<AnnotationFS> it = cas.getAnnotationIndex(sentenceType).iterator();
-                  it.hasNext(); ) {
-                AnnotationFS sentenceAnnotation = it.next();
-                confirmedSentences.add(new PotentialAnnotation(sentenceAnnotation.getBegin(),
-                    sentenceAnnotation.getEnd(), sentenceAnnotation.getCoveredText(), 1d, sentenceTypeName));
+            SentenceContentProvider.this.sentenceDetectorView.setMessage(null);
+
+            List<PotentialAnnotation> confirmedSentences = new ArrayList<>();
+            // TODO: Create a list of existing sentence annotations.
+
+            // get sentence annotation index ...
+            CAS cas = SentenceContentProvider.this.editor.getDocument().getCAS();
+
+            IPreferenceStore store = SentenceContentProvider.this.editor.
+                getCasDocumentProvider().getTypeSystemPreferenceStore(
+                SentenceContentProvider.this.editor.getEditorInput());
+
+            String sentenceTypeName = store.getString(OpenNLPPreferenceConstants.SENTENCE_TYPE);
+            Type sentenceType = cas.getTypeSystem().getType(sentenceTypeName);
+
+            for (AnnotationFS sentenceAnnotation : cas.getAnnotationIndex(sentenceType)) {
+              confirmedSentences.add(new PotentialAnnotation(sentenceAnnotation.getBegin(),
+                      sentenceAnnotation.getEnd(), sentenceAnnotation.getCoveredText(), 1d, sentenceTypeName));
+            }
+
+
+            PotentialAnnotation[] sentences = SentenceContentProvider.this.
+                sentenceDetector.getDetectedSentences();
+
+            // TODO:
+            // Remove all detected sentences from the last run which are not detected anymore
+            Table sentenceTable = SentenceContentProvider.this.sentenceList.getTable();
+
+            int selectionIndex = sentenceTable.getSelectionIndex();
+
+            SentenceContentProvider.this.sentenceList.refresh();
+
+            // TODO: Update sentence if it already exist
+
+            // Add a new potential sentence
+            // Only add if it is not a confirmed sentence yet!
+            // for each annotation, search confirmed sentence array above ...
+            for (PotentialAnnotation sentence : sentences) {
+              if (EntityContentProvider.searchEntity(confirmedSentences,
+                  sentence.getBeginIndex(), sentence.getEndIndex(),
+                  sentence.getType()) == null) {
+                SentenceContentProvider.this.sentenceList.add(sentence);
               }
-             
-              
-              PotentialAnnotation sentences[] = SentenceContentProvider.this.
-                  sentenceDetector.getDetectedSentences();
-              
-              // TODO:
-              // Remove all detected sentences from the last run which are not detected anymore
-              Table sentenceTable = SentenceContentProvider.this.sentenceList.getTable();
-              
-              int selectionIndex = sentenceTable.getSelectionIndex();
-              
-              SentenceContentProvider.this.sentenceList.refresh();
-              
-              // TODO: Update sentence if it already exist
-              
-              // Add a new potential sentence
-              // Only add if it is not a confirmed sentence yet!
-              // for each annotation, search confirmed sentence array above ...
-              for (PotentialAnnotation sentence : sentences) {
-                if (EntityContentProvider.searchEntity(confirmedSentences,
-                    sentence.getBeginIndex(), sentence.getEndIndex(),
-                    sentence.getType()) == null) {
-                  SentenceContentProvider.this.sentenceList.add(sentence);
+            }
+
+            // TODO: Try to reuse selection computation code
+
+            // is sentence detector view active ?!
+            if (SentenceContentProvider.this.sentenceDetectorView.isActive()) {
+              int newSelectionIndex = -1;
+
+              if (sentenceTable.getItemCount() > 0) {
+                if (sentenceTable.getSelectionIndex() == -1) {
+                  newSelectionIndex = 0;
                 }
-              }
-              
-              // TODO: Try to reuse selection computation code
-              
-              // is sentence detector view active ?!
-              if (SentenceContentProvider.this.sentenceDetectorView.isActive()) {
-                int newSelectionIndex = -1;
-                
-                if (sentenceTable.getItemCount() > 0) {
-                  if (sentenceTable.getSelectionIndex() == -1) {
-                    newSelectionIndex = 0;
-                  }
-                  
-                  if (selectionIndex < sentenceTable.getItemCount()) {
-                    newSelectionIndex = selectionIndex;
-                  }
-                  else if (selectionIndex >= sentenceTable.getItemCount()) {
-                    newSelectionIndex = sentenceTable.getItemCount() - 1;
-                  }
+
+                if (selectionIndex < sentenceTable.getItemCount()) {
+                  newSelectionIndex = selectionIndex;
                 }
-                
-                if (newSelectionIndex != -1) {
-                  SentenceContentProvider.this.sentenceList.setSelection(
-                      new StructuredSelection(SentenceContentProvider.this.sentenceList.getElementAt(newSelectionIndex)));
+                else if (selectionIndex >= sentenceTable.getItemCount()) {
+                  newSelectionIndex = sentenceTable.getItemCount() - 1;
                 }
               }
+
+              if (newSelectionIndex != -1) {
+                SentenceContentProvider.this.sentenceList.setSelection(
+                    new StructuredSelection(SentenceContentProvider.this.sentenceList.getElementAt(newSelectionIndex)));
+              }
             }
-            else {
-              SentenceContentProvider.this.sentenceDetectorView.setMessage(event.getResult().getMessage());
-            }
+          }
+          else {
+            SentenceContentProvider.this.sentenceDetectorView.setMessage(event.getResult().getMessage());
           }
         });
       }
@@ -209,9 +203,9 @@ public class SentenceContentProvider implements IStructuredContentProvider {
     CAS cas = editor.getDocument().getCAS();
     
     String paragraphTypeNames = store.getString(OpenNLPPreferenceConstants.PARAGRAPH_TYPE);
-    Type paragraphTypes[] = UIMAUtil.splitTypes(paragraphTypeNames, ',', cas.getTypeSystem());
+    Type[] paragraphTypes = UIMAUtil.splitTypes(paragraphTypeNames, ',', cas.getTypeSystem());
     
-    List<Span> paragraphSpans = new ArrayList<Span>();
+    List<Span> paragraphSpans = new ArrayList<>();
     
     if (paragraphTypes != null) {
       
@@ -256,7 +250,7 @@ public class SentenceContentProvider implements IStructuredContentProvider {
     
     String exclusionSpanTypeNames = store.getString(OpenNLPPreferenceConstants.SENT_EXCLUSION_TYPE);
     
-    Type exclusionSpanTypes[] = UIMAUtil.splitTypes(exclusionSpanTypeNames, ',', cas.getTypeSystem());
+    Type[] exclusionSpanTypes = UIMAUtil.splitTypes(exclusionSpanTypeNames, ',', cas.getTypeSystem());
 
     if (exclusionSpanTypes == null) {
       exclusionSpanTypes = new Type[0];
@@ -267,7 +261,7 @@ public class SentenceContentProvider implements IStructuredContentProvider {
       exclusionSpanTypes[exclusionSpanTypes.length - 1] = sentenceType;
     }
     
-    List<Span> exclusionSpans = new ArrayList<Span>();
+    List<Span> exclusionSpans = new ArrayList<>();
     
     for (Iterator<AnnotationFS> exclusionAnnIterator = UIMAUtil.createMultiTypeIterator(cas, exclusionSpanTypes);
         exclusionAnnIterator.hasNext();) {
diff --git a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/sentdetect/SentenceDetectorJob.java b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/sentdetect/SentenceDetectorJob.java
index 2253fc9..e1c1e8c 100644
--- a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/sentdetect/SentenceDetectorJob.java
+++ b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/sentdetect/SentenceDetectorJob.java
@@ -23,10 +23,6 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
-import opennlp.tools.sentdetect.SentenceDetectorME;
-import opennlp.tools.sentdetect.SentenceModel;
-import opennlp.tools.util.Span;
-
 import org.apache.opennlp.caseditor.ModelUtil;
 import org.apache.opennlp.caseditor.OpenNLPPlugin;
 import org.apache.opennlp.caseditor.PotentialAnnotation;
@@ -35,6 +31,10 @@ import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.core.runtime.jobs.Job;
 
+import opennlp.tools.sentdetect.SentenceDetectorME;
+import opennlp.tools.sentdetect.SentenceModel;
+import opennlp.tools.util.Span;
+
 public class SentenceDetectorJob extends Job {
 
   private SentenceDetectorME sentenceDetector;
@@ -73,7 +73,7 @@ public class SentenceDetectorJob extends Job {
   
   public void setExclusionSpans(List<Span> exclusionSpans) {
     
-    this.exclusionSpans = new ArrayList<Span>();
+    this.exclusionSpans = new ArrayList<>();
     this.exclusionSpans.addAll(exclusionSpans);
     Collections.sort(this.exclusionSpans);
   }
@@ -83,28 +83,18 @@ public class SentenceDetectorJob extends Job {
     
     // lazy load model
     if (sentenceDetector == null) {
-      InputStream modelIn = null;
-      try {
-        modelIn = ModelUtil.openModelIn(modelPath);
+      try (InputStream modelIn = ModelUtil.openModelIn(modelPath)) {
         SentenceModel model = new SentenceModel(modelIn);
         sentenceDetector = new SentenceDetectorME(model);
       } catch (IOException e1) {
         return new Status(IStatus.CANCEL, OpenNLPPlugin.ID, "Failed to load sentence detector model!");
       }
-      finally {
-        if (modelIn != null) {
-          try {
-            modelIn.close();
-          } catch (IOException e) {
-          }
-        }
-      }
     }
     
-    detectedSentences = new ArrayList<PotentialAnnotation>();
+    detectedSentences = new ArrayList<>();
     for (Span para : paragraphs) {
 
-      List<Span> textBlocks = new ArrayList<Span>();
+      List<Span> textBlocks = new ArrayList<>();
 
       int textBlockBeginIndex = 0;
       
@@ -126,10 +116,10 @@ public class SentenceDetectorJob extends Job {
       }
       
       for (Span textBlock : textBlocks) {
-        Span sentenceSpans[] = sentenceDetector.sentPosDetect(
+        Span[] sentenceSpans = sentenceDetector.sentPosDetect(
             textBlock.getCoveredText(text).toString());
         
-        double confidence[] = sentenceDetector.getSentenceProbabilities();
+        double[] confidence = sentenceDetector.getSentenceProbabilities();
         
         for (int i = 0; i < sentenceSpans.length; i++) {
           Span sentenceSpan = sentenceSpans[i];
diff --git a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/sentdetect/SentenceDetectorPreferencePage.java b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/sentdetect/SentenceDetectorPreferencePage.java
index a5098aa..ac8d61d 100644
--- a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/sentdetect/SentenceDetectorPreferencePage.java
+++ b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/sentdetect/SentenceDetectorPreferencePage.java
@@ -28,7 +28,7 @@ import org.eclipse.ui.IWorkbenchPreferencePage;
 public class SentenceDetectorPreferencePage extends FieldEditorPreferencePage
     implements IWorkbenchPreferencePage {
 
-  private TypeSystem ts;
+  private final TypeSystem ts;
 
   public SentenceDetectorPreferencePage(TypeSystem ts) {
     setDescription("Sentence Detector Preferences.");
diff --git a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/sentdetect/SentenceDetectorViewPage.java b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/sentdetect/SentenceDetectorViewPage.java
index f8c7200..8288102 100644
--- a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/sentdetect/SentenceDetectorViewPage.java
+++ b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/sentdetect/SentenceDetectorViewPage.java
@@ -26,8 +26,6 @@ import org.apache.uima.caseditor.editor.AnnotationEditor;
 import org.apache.uima.caseditor.editor.ICasEditor;
 import org.eclipse.jface.action.IAction;
 import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jface.viewers.TableViewer;
 import org.eclipse.jface.viewers.TableViewerColumn;
@@ -47,17 +45,15 @@ public class SentenceDetectorViewPage extends Page {
   
   private static final String QUICK_ANNOTATE_ACTION_ID = "QuickAnnotate";
 
-  private ICasEditor editor;
+  private final ICasEditor editor;
   
   private PageBook book;
     
   private Text messageText;
   
-  private TableViewer sentenceList; 
-  
-  private SentenceContentProvider contentProvider;
+  private TableViewer sentenceList;
 
-  private SentenceDetectorView sentenceDetectorView;
+  private final SentenceDetectorView sentenceDetectorView;
   
   public SentenceDetectorViewPage(SentenceDetectorView sentenceDetectorView, ICasEditor editor) {
     this.sentenceDetectorView = sentenceDetectorView;
@@ -93,31 +89,27 @@ public class SentenceDetectorViewPage extends Page {
     sentenceList.setLabelProvider(new SentenceLabelProvider());
     
     SentenceDetectorJob sentenceDetector = new SentenceDetectorJob();
-    
-    contentProvider = new SentenceContentProvider(this, (AnnotationEditor) editor,
-        sentenceDetector, sentenceList);
+
+    SentenceContentProvider contentProvider = new SentenceContentProvider(this, (AnnotationEditor) editor,
+            sentenceDetector, sentenceList);
     
     sentenceList.setContentProvider(contentProvider);
     getSite().setSelectionProvider(sentenceList);
     sentenceList.setInput(editor.getDocument());
 
-    sentenceList.addSelectionChangedListener(new ISelectionChangedListener() {
-
-      @Override
-      public void selectionChanged(SelectionChangedEvent event) {
-        // if confirmed, send selection event for FS
-        // else, do selectAndReveal
-        StructuredSelection selection = (StructuredSelection) event
-            .getSelection();
+    sentenceList.addSelectionChangedListener(event -> {
+      // if confirmed, send selection event for FS
+      // else, do selectAndReveal
+      StructuredSelection selection = (StructuredSelection) event
+          .getSelection();
 
-        if (!selection.isEmpty()) {
-          PotentialAnnotation entity = (PotentialAnnotation) selection.getFirstElement();
+      if (!selection.isEmpty()) {
+        PotentialAnnotation entity = (PotentialAnnotation) selection.getFirstElement();
 
-          if (editor instanceof AnnotationEditor) {
-            ((AnnotationEditor) editor).selectAndReveal(
-                entity.getBeginIndex(),
-                entity.getEndIndex() - entity.getBeginIndex());
-          }
+        if (editor instanceof AnnotationEditor) {
+          ((AnnotationEditor) editor).selectAndReveal(
+              entity.getBeginIndex(),
+              entity.getEndIndex() - entity.getBeginIndex());
         }
       }
     });
diff --git a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/sentdetect/SentenceLabelProvider.java b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/sentdetect/SentenceLabelProvider.java
index 6bfd18d..fd35ba5 100644
--- a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/sentdetect/SentenceLabelProvider.java
+++ b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/sentdetect/SentenceLabelProvider.java
@@ -25,22 +25,27 @@ import org.eclipse.jface.viewers.ITableLabelProvider;
 import org.eclipse.swt.graphics.Image;
 
 public class SentenceLabelProvider implements ITableLabelProvider {
-  private DecimalFormat df = new DecimalFormat("#.#");
-  
+  private final DecimalFormat df = new DecimalFormat("#.#");
+
+  @Override
   public void addListener(ILabelProviderListener listener) {
   }
 
+  @Override
   public void removeListener(ILabelProviderListener listener) {
   }
 
+  @Override
   public boolean isLabelProperty(Object element, String property) {
     return false;
   }
 
+  @Override
   public Image getColumnImage(Object element, int columnIndex) {
     return null;
   }
 
+  @Override
   public String getColumnText(Object element, int columnIndex) {
     String result = null;
     
@@ -67,6 +72,7 @@ public class SentenceLabelProvider implements ITableLabelProvider {
     return result;
   }
 
+  @Override
   public void dispose() {
   }
 }
diff --git a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/tokenize/TokenizerJob.java b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/tokenize/TokenizerJob.java
index 1dbe16c..e8d1119 100644
--- a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/tokenize/TokenizerJob.java
+++ b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/tokenize/TokenizerJob.java
@@ -20,13 +20,6 @@ package org.apache.opennlp.caseditor.tokenize;
 import java.io.IOException;
 import java.io.InputStream;
 
-import opennlp.tools.tokenize.SimpleTokenizer;
-import opennlp.tools.tokenize.Tokenizer;
-import opennlp.tools.tokenize.TokenizerME;
-import opennlp.tools.tokenize.TokenizerModel;
-import opennlp.tools.tokenize.WhitespaceTokenizer;
-import opennlp.tools.util.Span;
-
 import org.apache.opennlp.caseditor.ModelUtil;
 import org.apache.opennlp.caseditor.OpenNLPPlugin;
 import org.apache.opennlp.caseditor.OpenNLPPreferenceConstants;
@@ -35,6 +28,13 @@ import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.core.runtime.jobs.Job;
 
+import opennlp.tools.tokenize.SimpleTokenizer;
+import opennlp.tools.tokenize.Tokenizer;
+import opennlp.tools.tokenize.TokenizerME;
+import opennlp.tools.tokenize.TokenizerModel;
+import opennlp.tools.tokenize.WhitespaceTokenizer;
+import opennlp.tools.util.Span;
+
 public class TokenizerJob extends Job {
 
   private String algorithm;
@@ -73,31 +73,14 @@ public class TokenizerJob extends Job {
       tokenizer = SimpleTokenizer.INSTANCE;
     } else if (OpenNLPPreferenceConstants.TOKENIZER_ALGO_STATISTICAL.equals(algorithm)) {
       if (tokenizer == null) {
-        InputStream modelIn;
-        try {
-          modelIn = ModelUtil.openModelIn(modelPath);
-        } catch (IOException e1) {
-          return new Status(IStatus.CANCEL, OpenNLPPlugin.ID, "Failed to load tokenizer model!");
-        }
-        
-        try {
+        try (InputStream modelIn = ModelUtil.openModelIn(modelPath)) {
           TokenizerModel model = new TokenizerModel(modelIn);
           tokenizer = new TokenizerME(model);
-        } catch (IOException e) {
-          e.printStackTrace();
-        } finally {
-          if (modelIn != null) {
-            try {
-              modelIn.close();
-            } catch (IOException e) {
-            }
-          }
+        } catch (IOException e1) {
+          return new Status(IStatus.CANCEL, OpenNLPPlugin.ID, "Failed to load tokenizer model!");
         }
       }
     }
-    else {
-      // TODO: Report an error!
-    }
     
     tokens = tokenizer.tokenizePos(text);
     
diff --git a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/tokenize/TokenizerPreferencePage.java b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/tokenize/TokenizerPreferencePage.java
index 5dcd84f..b3cc980 100644
--- a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/tokenize/TokenizerPreferencePage.java
+++ b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/tokenize/TokenizerPreferencePage.java
@@ -52,7 +52,7 @@ public class TokenizerPreferencePage extends FieldEditorPreferencePage
         "Algorithm", namesAndValues, getFieldEditorParent());
     addField(algorithmCombo);
 
-    // Activate only if statistical is selected .. how to do that?
+    // Activate only if statistical is selected - how to do that?
     StringFieldEditor modelPath = new StringFieldEditor(
         OpenNLPPreferenceConstants.TOKENIZER_MODEL_PATH,
         "Model Path", getFieldEditorParent());
diff --git a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/tokenize/TokenizerView.java b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/tokenize/TokenizerView.java
index d920475..e7dc917 100644
--- a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/tokenize/TokenizerView.java
+++ b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/tokenize/TokenizerView.java
@@ -27,6 +27,7 @@ public class TokenizerView extends AnnotationEditorView {
     super("The Tokenizer View is currently not available.");
   }
 
+  @Override
   protected PageRec doCreatePage(ICasEditor editor) {
     PageRec result = null;
 
diff --git a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/tokenize/TokenizerViewPage.java b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/tokenize/TokenizerViewPage.java
index e9391d6..7b25d28 100644
--- a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/tokenize/TokenizerViewPage.java
+++ b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/tokenize/TokenizerViewPage.java
@@ -20,8 +20,6 @@ package org.apache.opennlp.caseditor.tokenize;
 import java.util.ArrayList;
 import java.util.Collection;
 
-import opennlp.tools.util.Span;
-
 import org.apache.opennlp.caseditor.OpenNLPPreferenceConstants;
 import org.apache.uima.cas.CAS;
 import org.apache.uima.cas.Type;
@@ -37,9 +35,11 @@ import org.eclipse.ui.IActionBars;
 import org.eclipse.ui.actions.BaseSelectionListenerAction;
 import org.eclipse.ui.part.Page;
 
+import opennlp.tools.util.Span;
+
 public class TokenizerViewPage extends Page {
   
-  private ICasEditor editor;
+  private final ICasEditor editor;
 
   private Label workInProgress;
   
@@ -83,13 +83,13 @@ public class TokenizerViewPage extends Page {
           e.printStackTrace();
         }
         
-        Span tokens[] = tokenizerJob.getTokens();
+        Span[] tokens = tokenizerJob.getTokens();
         
         CAS cas = editor.getDocument().getCAS();
         
         Type tokenType = cas.getTypeSystem().getType(prefStore.getString(OpenNLPPreferenceConstants.TOKEN_TYPE));
         
-        Collection<AnnotationFS> tokenAnnotations = new ArrayList<AnnotationFS>(tokens.length);
+        Collection<AnnotationFS> tokenAnnotations = new ArrayList<>(tokens.length);
         
         for (Span token : tokens) {
           tokenAnnotations.add(cas.createAnnotation(tokenType, token.getStart(), token.getEnd()));
diff --git a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/util/ContainingConstraint.java b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/util/ContainingConstraint.java
index 51ce60d..75e267e 100644
--- a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/util/ContainingConstraint.java
+++ b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/util/ContainingConstraint.java
@@ -1,6 +1,6 @@
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreemnets.  See the NOTICE file distributed with
+ * contributor license agreements.  See the NOTICE file distributed with
  * this work for additional information regarding copyright ownership.
  * The ASF licenses this file to You under the Apache License, Version 2.0
  * (the "License"); you may not use this file except in compliance with
@@ -18,7 +18,6 @@
 package org.apache.opennlp.caseditor.util;
 
 import java.util.Collection;
-import java.util.Iterator;
 import java.util.LinkedList;
 
 import org.apache.uima.cas.FSMatchConstraint;
@@ -31,8 +30,7 @@ import org.apache.uima.cas.text.AnnotationFS;
 public final class ContainingConstraint implements FSMatchConstraint {
   private static final long serialVersionUID = 1;
 
-  private Collection<AnnotationFS> mContainingAnnotations = 
-      new LinkedList<AnnotationFS>();
+  private final Collection<AnnotationFS> mContainingAnnotations = new LinkedList<>();
 
   /**
    * Initializes a new instance.
@@ -43,8 +41,6 @@ public final class ContainingConstraint implements FSMatchConstraint {
 
   /**
    * Initializes a new instance.
-   * 
-   * @param containingAnnotation 
    */
   public ContainingConstraint(AnnotationFS containingAnnotation) {
     mContainingAnnotations.add(containingAnnotation);
@@ -60,8 +56,7 @@ public final class ContainingConstraint implements FSMatchConstraint {
 
     AnnotationFS annotation = (AnnotationFS) featureStructure;
 
-    for (Iterator<AnnotationFS> it = mContainingAnnotations.iterator(); it.hasNext(); ) {
-      AnnotationFS containingAnnotation = it.next(); 
+    for (AnnotationFS containingAnnotation : mContainingAnnotations) {
       if (isContaining(annotation, containingAnnotation)) {
         return true;
       }
@@ -71,12 +66,8 @@ public final class ContainingConstraint implements FSMatchConstraint {
   }
 
   private boolean isContaining(AnnotationFS annotation, AnnotationFS containing) {
-    if ((containing.getBegin() <= annotation.getBegin())
-        && (containing.getEnd() >= annotation.getEnd())) {
-      return true;
-    } else {
-      return false;
-    }
+    return (containing.getBegin() <= annotation.getBegin())
+            && (containing.getEnd() >= annotation.getEnd());
   }
 
 }
\ No newline at end of file
diff --git a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/util/UIMAUtil.java b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/util/UIMAUtil.java
index 6c3d604..2202dfd 100644
--- a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/util/UIMAUtil.java
+++ b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/util/UIMAUtil.java
@@ -29,7 +29,7 @@ public class UIMAUtil {
 
   public static String[] split(String parameter, char splitChar) {
     
-    String parts[] = parameter.split(Character.toString(splitChar));
+    String[] parts = parameter.split(Character.toString(splitChar));
     
     for (int i = 0; i < parts.length; i++) {
       parts[i] = parts[i].trim();
@@ -40,9 +40,9 @@ public class UIMAUtil {
   
   // TODO: Should throw an exception
   public static Type[] splitTypes(String typeList, char splitChar, TypeSystem typeSystem) {
-    String typeNames[] = split(typeList, splitChar);
+    String[] typeNames = split(typeList, splitChar);
     
-    Type types[] = new Type[typeNames.length];
+    Type[] types = new Type[typeNames.length];
     
     for (int i = 0; i < typeNames.length; i++) {
       types[i] = typeSystem.getType(typeNames[i]);
@@ -70,8 +70,6 @@ public class UIMAUtil {
     }
 
     // Create and use the filtered iterator
-    FSIterator<AnnotationFS> filteredIterator = cas.createFilteredIterator(iterator, typeConstraint);
-    
-    return filteredIterator;
+    return cas.createFilteredIterator(iterator, typeConstraint);
   }
 }