Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/WayCombiner.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/WayCombiner.java	(revision 30529)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/WayCombiner.java	(revision 30532)
@@ -56,5 +56,5 @@
 
         // remove duplicates, preserving order
-        ways = new LinkedHashSet<Way>(ways);
+        ways = new LinkedHashSet<>(ways);
 
         // try to build a new way which includes all the combined
@@ -71,6 +71,6 @@
         TagCollection wayTags = TagCollection.unionOfAllPrimitives(ways);
 
-        List<Way> reversedWays = new LinkedList<Way>();
-        List<Way> unreversedWays = new LinkedList<Way>();
+        List<Way> reversedWays = new LinkedList<>();
+        List<Way> unreversedWays = new LinkedList<>();
         for (Way w: ways) {
             if ((path.indexOf(w.getNode(0)) + 1) == path.lastIndexOf(w.getNode(1))) {
@@ -99,8 +99,8 @@
             // if there are still reversed ways with direction-dependent tags, reverse their tags
             if (!reversedWays.isEmpty()) {
-                List<Way> unreversedTagWays = new ArrayList<Way>(ways);
+                List<Way> unreversedTagWays = new ArrayList<>(ways);
                 unreversedTagWays.removeAll(reversedWays);
                 ReverseWayTagCorrector reverseWayTagCorrector = new ReverseWayTagCorrector();
-                List<Way> reversedTagWays = new ArrayList<Way>();
+                List<Way> reversedTagWays = new ArrayList<>();
                 Collection<Command> changePropertyCommands =  null;
                 for (Way w : reversedWays) {
@@ -149,5 +149,5 @@
         }
 
-        LinkedList<Way> deletedWays = new LinkedList<Way>(ways);
+        LinkedList<Way> deletedWays = new LinkedList<>(ways);
         deletedWays.remove(targetWay);
 
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/gui/ModulePreference.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/gui/ModulePreference.java	(revision 30529)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/gui/ModulePreference.java	(revision 30532)
@@ -219,5 +219,5 @@
             return false;
         if (model.isActiveModulesChanged()) {
-            LinkedList<String> l = new LinkedList<String>(model.getSelectedModuleNames());
+            LinkedList<String> l = new LinkedList<>(model.getSelectedModuleNames());
             Collections.sort(l);
             Main.pref.putCollection(PREF_MODULES, l);
@@ -446,14 +446,14 @@
     static private class ModuleConfigurationSitesPanel extends JPanel {
 
-        private DefaultListModel model;
+        private DefaultListModel<String> model;
 
         protected void build() {
             setLayout(new GridBagLayout());
             add(new JLabel(tr("Add Open Data Module description URL.")), GBC.eol());
-            model = new DefaultListModel();
+            model = new DefaultListModel<>();
             for (String s : OdPreferenceSetting.getModuleSites()) {
                 model.addElement(s);
             }
-            final JList list = new JList(model);
+            final JList<String> list = new JList<>(model);
             add(new JScrollPane(list), GBC.std().fill());
             JPanel buttons = new JPanel(new GridBagLayout());
@@ -519,7 +519,7 @@
         public List<String> getUpdateSites() {
             if (model.getSize() == 0) return Collections.emptyList();
-            List<String> ret = new ArrayList<String>(model.getSize());
+            List<String> ret = new ArrayList<>(model.getSize());
             for (int i=0; i< model.getSize();i++){
-                ret.add((String)model.get(i));
+                ret.add(model.get(i));
             }
             return ret;
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/gui/ModulePreferencesModel.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/gui/ModulePreferencesModel.java	(revision 30529)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/gui/ModulePreferencesModel.java	(revision 30532)
@@ -20,13 +20,9 @@
 import org.openstreetmap.josm.plugins.opendata.core.modules.ModuleInformation;
 
-/**
- * TODO
- *
- */
 public class ModulePreferencesModel extends Observable implements OdConstants {
-    private final ArrayList<ModuleInformation> availableModules = new ArrayList<ModuleInformation>();
-    private final ArrayList<ModuleInformation> displayedModules = new ArrayList<ModuleInformation>();
-    private final HashMap<ModuleInformation, Boolean> selectedModulesMap = new HashMap<ModuleInformation, Boolean>();
-    private Set<String> pendingDownloads = new HashSet<String>();
+    private final ArrayList<ModuleInformation> availableModules = new ArrayList<>();
+    private final ArrayList<ModuleInformation> displayedModules = new ArrayList<>();
+    private final HashMap<ModuleInformation, Boolean> selectedModulesMap = new HashMap<>();
+    private Set<String> pendingDownloads = new HashSet<>();
     private String filterExpression;
     private final Set<String> currentActiveModules;
@@ -37,5 +33,5 @@
     
     public ModulePreferencesModel() {
-    	currentActiveModules = new HashSet<String>();
+    	currentActiveModules = new HashSet<>();
     	currentActiveModules.addAll(getModules(currentActiveModules));
     }
@@ -66,5 +62,5 @@
         sort();
         filterDisplayedModules(filterExpression);
-        Set<String> activeModules = new HashSet<String>();
+        Set<String> activeModules = new HashSet<>();
         activeModules.addAll(getModules(activeModules));
         for (ModuleInformation pi: availableModules) {
@@ -101,5 +97,5 @@
         sort();
         filterDisplayedModules(filterExpression);
-        Set<String> activeModules = new HashSet<String>();
+        Set<String> activeModules = new HashSet<>();
         activeModules.addAll(getModules(activeModules));
         for (ModuleInformation pi: availableModules) {
@@ -120,5 +116,5 @@
      */
     public List<ModuleInformation> getSelectedModules() {
-        List<ModuleInformation> ret = new LinkedList<ModuleInformation>();
+        List<ModuleInformation> ret = new LinkedList<>();
         for (ModuleInformation pi: availableModules) {
             if (selectedModulesMap.get(pi) == null) {
@@ -138,5 +134,5 @@
      */
     public Set<String> getSelectedModuleNames() {
-        Set<String> ret = new HashSet<String>();
+        Set<String> ret = new HashSet<>();
         for (ModuleInformation pi: getSelectedModules()) {
             ret.add(pi.name);
@@ -177,5 +173,5 @@
      */
     public List<ModuleInformation> getModulesScheduledForUpdateOrDownload() {
-        List<ModuleInformation> ret = new ArrayList<ModuleInformation>();
+        List<ModuleInformation> ret = new ArrayList<>();
         for (String module: pendingDownloads) {
             ModuleInformation pi = getModuleInformation(module);
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/NeptuneReader.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/NeptuneReader.java	(revision 30529)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/NeptuneReader.java	(revision 30532)
@@ -76,5 +76,5 @@
 	public static final String OSM_FERRY = "ferry";
 
-	private static final List<URL> schemas = new ArrayList<URL>();
+	private static final List<URL> schemas = new ArrayList<>();
 	static {
 		schemas.add(NeptuneReader.class.getResource(NEPTUNE_XSD));
@@ -83,5 +83,5 @@
 	private ChouettePTNetworkType root;
 	
-	private final Map<String, OsmPrimitive> tridentObjects = new HashMap<String, OsmPrimitive>();
+	private final Map<String, OsmPrimitive> tridentObjects = new HashMap<>();
 	
 	public static final boolean acceptsXmlNeptuneFile(File file) {
@@ -133,5 +133,6 @@
 		JAXBContext jc = JAXBContext.newInstance(packageName, NeptuneReader.class.getClassLoader());
 		Unmarshaller u = jc.createUnmarshaller();
-		JAXBElement<T> doc = (JAXBElement<T>)u.unmarshal(inputStream);
+		@SuppressWarnings("unchecked")
+        JAXBElement<T> doc = (JAXBElement<T>)u.unmarshal(inputStream);
 		return doc.getValue();
 	}
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/NetworkReader.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/NetworkReader.java	(revision 30529)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/NetworkReader.java	(revision 30532)
@@ -45,5 +45,5 @@
      * File readers
      */
-    public static final Map<String, Class<? extends AbstractReader>> FILE_READERS = new HashMap<String, Class<? extends AbstractReader>>();
+    public static final Map<String, Class<? extends AbstractReader>> FILE_READERS = new HashMap<>();
     static {
         FILE_READERS.put(CSV_EXT, CsvReader.class);
@@ -58,5 +58,5 @@
     }
     
-    public static final Map<String, Class<? extends AbstractReader>> FILE_AND_ARCHIVE_READERS = new HashMap<String, Class<? extends AbstractReader>>(FILE_READERS);
+    public static final Map<String, Class<? extends AbstractReader>> FILE_AND_ARCHIVE_READERS = new HashMap<>(FILE_READERS);
     static {
         FILE_AND_ARCHIVE_READERS.put(ZIP_EXT, ZipReader.class);
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/ProjectionChooser.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/ProjectionChooser.java	(revision 30529)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/ProjectionChooser.java	(revision 30532)
@@ -18,5 +18,4 @@
 import org.openstreetmap.josm.tools.GBC;
 
-@SuppressWarnings("serial")
 public class ProjectionChooser extends ExtendedDialog {
 
@@ -29,5 +28,6 @@
      * Combobox with all projections available
      */
-    private final JComboBox projectionCombo = new JComboBox(ProjectionPreference.getProjectionChoices().toArray());
+    private final JComboBox<ProjectionChoice> projectionCombo = new JComboBox<>(
+            ProjectionPreference.getProjectionChoices().toArray(new ProjectionChoice[0]));
 
 	public ProjectionChooser(Component parent) {
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/archive/ArchiveReader.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/archive/ArchiveReader.java	(revision 30529)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/archive/ArchiveReader.java	(revision 30532)
@@ -59,5 +59,5 @@
         
         final File temp = OdUtils.createTempDir();
-        final List<File> candidates = new ArrayList<File>();
+        final List<File> candidates = new ArrayList<>();
         
         try {
@@ -70,5 +70,5 @@
             
             if (promptUser && candidates.size() > 1) {
-                DialogPrompter<CandidateChooser> prompt = new DialogPrompter() {
+                DialogPrompter<CandidateChooser> prompt = new DialogPrompter<CandidateChooser>() {
                     @Override
                     protected CandidateChooser buildDialog() {
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/archive/CandidateChooser.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/archive/CandidateChooser.java	(revision 30529)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/archive/CandidateChooser.java	(revision 30532)
@@ -27,6 +27,5 @@
     private final JPanel projPanel = new JPanel(new GridBagLayout());
 
-    //private final Map<JCheckBox, File> checkBoxes = new HashMap<JCheckBox, File>();
-    private final JComboBox fileCombo;
+    private final JComboBox<File> fileCombo;
 
 	public CandidateChooser(Component parent, List<File> candidates) {
@@ -37,5 +36,5 @@
 
 		@Override
-		public Component getListCellRendererComponent(JList list, Object value,
+		public Component getListCellRendererComponent(JList<?> list, Object value,
 				int index, boolean isSelected, boolean cellHasFocus) {
 			super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
@@ -49,5 +48,5 @@
 	protected CandidateChooser(Component parent, String title, String[] buttonTexts, List<File> candidates) {
 		super(parent, title, buttonTexts);
-		this.fileCombo = new JComboBox(candidates.toArray());
+		this.fileCombo = new JComboBox<>(candidates.toArray(new File[0]));
 		this.fileCombo.setRenderer(new Renderer());
 		addGui(candidates);
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/AbstractMapInfoReader.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/AbstractMapInfoReader.java	(revision 30529)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/AbstractMapInfoReader.java	(revision 30532)
@@ -75,5 +75,5 @@
 	
 	protected void parseColumns(String[] words) {
-		columns = new ArrayList<String>();
+		columns = new ArrayList<>();
 		numcolumns = Integer.parseInt(words[1]);
 	}
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/DefaultShpHandler.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/DefaultShpHandler.java	(revision 30529)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/DefaultShpHandler.java	(revision 30532)
@@ -38,5 +38,5 @@
 
 	private static final List<Pair<org.opengis.referencing.datum.Ellipsoid, Ellipsoid>> 
-		ellipsoids = new ArrayList<Pair<org.opengis.referencing.datum.Ellipsoid, Ellipsoid>>();
+		ellipsoids = new ArrayList<>();
 	static {
 		ellipsoids.add(new Pair<org.opengis.referencing.datum.Ellipsoid, Ellipsoid>(DefaultEllipsoid.GRS80, Ellipsoid.GRS80));
@@ -44,5 +44,5 @@
 	}
 	
-	protected static final Double get(ParameterValueGroup values, ParameterDescriptor desc) {
+	protected static final Double get(ParameterValueGroup values, ParameterDescriptor<?> desc) {
 		return (Double) values.parameter(desc.getName().getCode()).getValue();
 	}
@@ -64,5 +64,5 @@
 			return CRS.findMathTransform(getCrsFor(sourceCRS.getName().getCode()), targetCRS, lenient);
 		} else if (sourceCRS instanceof AbstractDerivedCRS && sourceCRS.getName().getCode().equalsIgnoreCase("Lambert_Conformal_Conic")) {
-			List<MathTransform> result = new ArrayList<MathTransform>();
+			List<MathTransform> result = new ArrayList<>();
 			AbstractDerivedCRS crs = (AbstractDerivedCRS) sourceCRS;
 			MathTransform transform = crs.getConversionFromBase().getMathTransform();
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/GeographicReader.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/GeographicReader.java	(revision 30529)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/GeographicReader.java	(revision 30532)
@@ -72,5 +72,5 @@
 
 	public GeographicReader(GeographicHandler handler, GeographicHandler[] defaultHandlers) {
-		this.nodes = new HashMap<LatLon, Node>();
+		this.nodes = new HashMap<>();
 		this.handler = handler;
 		this.defaultHandlers = defaultHandlers;
@@ -256,5 +256,5 @@
 			
 			if (findSimiliarCrs) { 
-				List<CoordinateReferenceSystem> candidates = new ArrayList<CoordinateReferenceSystem>();
+				List<CoordinateReferenceSystem> candidates = new ArrayList<>();
 				
 				// Find matching CRS with Bursa Wolf parameters in EPSG database
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/GmlReader.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/GmlReader.java	(revision 30529)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/GmlReader.java	(revision 30532)
@@ -144,8 +144,8 @@
 	
 	private void parseFeatureMember(Component parent) throws XMLStreamException, GeoCrsException, FactoryException, UserCancelException, GeoMathTransformException, MismatchedDimensionException, TransformException {
-		List<OsmPrimitive> list = new ArrayList<OsmPrimitive>();
+		List<OsmPrimitive> list = new ArrayList<>();
 		Way way = null;
 		Node node = null;
-		Map<String, String> tags = new HashMap<String, String>();
+		Map<String, String> tags = new HashMap<>();
 		while (parser.hasNext()) {
             int event = parser.next();
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/KmlReader.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/KmlReader.java	(revision 30529)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/KmlReader.java	(revision 30532)
@@ -45,5 +45,5 @@
 
     private XMLStreamReader parser;
-    private Map<LatLon, Node> nodes = new HashMap<LatLon, Node>();
+    private Map<LatLon, Node> nodes = new HashMap<>();
     
     public KmlReader(XMLStreamReader parser) {
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/ShpReader.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/ShpReader.java	(revision 30529)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/ShpReader.java	(revision 30532)
@@ -9,4 +9,5 @@
 import java.io.IOException;
 import java.io.InputStream;
+import java.io.Serializable;
 import java.nio.charset.Charset;
 import java.nio.charset.IllegalCharsetNameException;
@@ -56,5 +57,5 @@
 
 	private final ShpHandler handler;
-	private final Set<OsmPrimitive> featurePrimitives = new HashSet<OsmPrimitive>();
+	private final Set<OsmPrimitive> featurePrimitives = new HashSet<>();
 	
 	public ShpReader(ShpHandler handler) {
@@ -174,5 +175,5 @@
 		try {
 			if (file != null) { 
-		        Map params = new HashMap();
+		        Map<String, Serializable> params = new HashMap<>();
 		        Charset charset = null;
 		        params.put(ShapefileDataStoreFactory.URLP.key, file.toURI().toURL());
@@ -194,7 +195,7 @@
 		        if (charset != null) {
 		            Main.info("Using charset "+charset);
-		            params.put(ShapefileDataStoreFactory.DBFCHARSET.key, charset);
+		            params.put(ShapefileDataStoreFactory.DBFCHARSET.key, charset.name());
 		        }
-				DataStore dataStore = new ShapefileDataStoreFactory().createDataStore(params);//FIXME
+				DataStore dataStore = new ShapefileDataStoreFactory().createDataStore(params);
 				if (dataStore == null) {
 					throw new IOException(tr("Unable to find a data store for file {0}", file.getName()));
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/OdsReader.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/OdsReader.java	(revision 30529)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/OdsReader.java	(revision 30532)
@@ -65,5 +65,5 @@
 			}
 
-			List<String> result = new ArrayList<String>();
+			List<String> result = new ArrayList<>();
 			boolean allFieldsBlank = true;
 			for (TableTableCell cell : row.getAllCells()) {
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/SpreadSheetReader.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/SpreadSheetReader.java	(revision 30529)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/SpreadSheetReader.java	(revision 30532)
@@ -97,5 +97,5 @@
 		System.out.println("Header: "+Arrays.toString(header));
 		
-		Map<ProjectionPatterns, List<CoordinateColumns>> projColumns = new HashMap<ProjectionPatterns, List<CoordinateColumns>>();
+		Map<ProjectionPatterns, List<CoordinateColumns>> projColumns = new HashMap<>();
 		
 		for (int i = 0; i<header.length; i++) {
@@ -103,5 +103,5 @@
 			    List<CoordinateColumns> columns = projColumns.get(pp);
 			    if (columns == null) {
-			        projColumns.put(pp, columns = new ArrayList<CoordinateColumns>());
+			        projColumns.put(pp, columns = new ArrayList<>());
 			    }
 				CoordinateColumns col = columns.isEmpty() ? null : columns.get(columns.size()-1);
@@ -116,5 +116,5 @@
 		}
 
-		final List<CoordinateColumns> columns = new ArrayList<CoordinateColumns>();
+		final List<CoordinateColumns> columns = new ArrayList<>();
 		
 		for (ProjectionPatterns pp : projColumns.keySet()) {
@@ -180,6 +180,6 @@
 			}
 			
-            final Map<CoordinateColumns, EastNorth> ens = new HashMap<CoordinateColumns, EastNorth>();
-			final Map<CoordinateColumns, Node> nodes = new HashMap<CoordinateColumns, Node>();
+            final Map<CoordinateColumns, EastNorth> ens = new HashMap<>();
+			final Map<CoordinateColumns, Node> nodes = new HashMap<>();
 			for (CoordinateColumns c : columns) {
 			    nodes.put(c, new Node());
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/XlsReader.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/XlsReader.java	(revision 30529)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/XlsReader.java	(revision 30532)
@@ -56,5 +56,5 @@
 			Row row = sheet.getRow(rowIndex++);
 			if (row != null) {
-				List<String> result = new ArrayList<String>();
+				List<String> result = new ArrayList<>();
 				for (Cell cell : row) {
 		            switch (cell.getCellType()) {
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/layers/OdDataLayer.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/layers/OdDataLayer.java	(revision 30529)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/layers/OdDataLayer.java	(revision 30532)
@@ -124,5 +124,5 @@
 	@Override
 	public Action[] getMenuEntries() {
-		List<Action> result = new ArrayList<Action>();
+		List<Action> result = new ArrayList<>();
 		for (Action entry : super.getMenuEntries()) {
 			result.add(entry);
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/layers/OdDiffLayer.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/layers/OdDiffLayer.java	(revision 30529)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/layers/OdDiffLayer.java	(revision 30532)
@@ -31,7 +31,7 @@
 		super(name);
 		this.dataLayer = dataLayer;
-		this.differentPrimitives = new ArrayList<Pair<OsmPrimitive,OsmPrimitive>>();
-		this.onlyInTlsPrimitives = new ArrayList<OsmPrimitive>();
-		this.onlyInOsmPrimitives = new ArrayList<OsmPrimitive>();
+		this.differentPrimitives = new ArrayList<>();
+		this.onlyInTlsPrimitives = new ArrayList<>();
+		this.onlyInOsmPrimitives = new ArrayList<>();
 		initDiff(dataLayer.data, dataLayer.osmLayer.data);
 	}
@@ -44,5 +44,5 @@
 					onlyInTlsPrimitives.add(p1);
 				} else if (!dataLayer.handler.equals(p1, p2)) {
-					differentPrimitives.add(new Pair<OsmPrimitive, OsmPrimitive>(p1, p2));
+					differentPrimitives.add(new Pair<>(p1, p2));
 				}
 			}
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/layers/OdOsmDataLayer.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/layers/OdOsmDataLayer.java	(revision 30529)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/layers/OdOsmDataLayer.java	(revision 30532)
@@ -41,5 +41,5 @@
 							if (nodes != null) {
 								for (Node n : nodes) {
-									List<OsmPrimitive> refferingAllowedWays = new ArrayList<OsmPrimitive>();
+									List<OsmPrimitive> refferingAllowedWays = new ArrayList<>();
 									for (OsmPrimitive referrer : n.getReferrers()) {
 										if (referrer instanceof Way && !dataLayer.handler.isForbidden(referrer)) {
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/licenses/License.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/licenses/License.java	(revision 30529)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/licenses/License.java	(revision 30532)
@@ -17,6 +17,6 @@
 	public static final LOOL LOOL = new LOOL();
 	
-	private final Map<String, URL> urls = new HashMap<String, URL>();
-	private final Map<String, URL> summaryURLs = new HashMap<String, URL>();
+	private final Map<String, URL> urls = new HashMap<>();
+	private final Map<String, URL> summaryURLs = new HashMap<>();
 	
 	private Icon icon;
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/AbstractModule.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/AbstractModule.java	(revision 30529)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/AbstractModule.java	(revision 30532)
@@ -19,7 +19,7 @@
 public abstract class AbstractModule implements Module, OdConstants {
 
-	protected final List<Class<? extends AbstractDataSetHandler>> handlers = new ArrayList<Class <? extends AbstractDataSetHandler>>();
+	protected final List<Class<? extends AbstractDataSetHandler>> handlers = new ArrayList<>();
 
-	private final List<AbstractDataSetHandler> instanciatedHandlers = new ArrayList<AbstractDataSetHandler>();
+	private final List<AbstractDataSetHandler> instanciatedHandlers = new ArrayList<>();
 
 	protected final ModuleInformation info;
@@ -46,5 +46,5 @@
 	@Override
 	public SourceProvider getMapPaintStyleSourceProvider() {
-		final List<SourceEntry> sources = new ArrayList<SourceEntry>();
+		final List<SourceEntry> sources = new ArrayList<>();
 		for (AbstractDataSetHandler handler : getInstanciatedHandlers()) {
 			ExtendedSourceEntry src;
@@ -83,5 +83,5 @@
 	@Override
 	public SourceProvider getPresetSourceProvider() {
-		final List<SourceEntry> sources = new ArrayList<SourceEntry>();
+		final List<SourceEntry> sources = new ArrayList<>();
 		for (AbstractDataSetHandler handler : getInstanciatedHandlers()) {
 			if (handler != null && handler.getTaggingPreset() != null) {
@@ -99,5 +99,5 @@
 	@Override
 	public final List<AbstractDataSetHandler> getNewlyInstanciatedHandlers() {
-		List<AbstractDataSetHandler> result = new ArrayList<AbstractDataSetHandler>();
+		List<AbstractDataSetHandler> result = new ArrayList<>();
 		for (Class<? extends AbstractDataSetHandler> handlerClass : handlers) {
 			if (handlerClass != null) {
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleDownloadTask.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleDownloadTask.java	(revision 30529)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleDownloadTask.java	(revision 30532)
@@ -32,7 +32,7 @@
  */
 public class ModuleDownloadTask extends PleaseWaitRunnable{
-    private final Collection<ModuleInformation> toUpdate = new LinkedList<ModuleInformation>();
-    private final Collection<ModuleInformation> failed = new LinkedList<ModuleInformation>();
-    private final Collection<ModuleInformation> downloaded = new LinkedList<ModuleInformation>();
+    private final Collection<ModuleInformation> toUpdate = new LinkedList<>();
+    private final Collection<ModuleInformation> failed = new LinkedList<>();
+    private final Collection<ModuleInformation> downloaded = new LinkedList<>();
     //private Exception lastException;
     private boolean canceled;
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleHandler.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleHandler.java	(revision 30529)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleHandler.java	(revision 30532)
@@ -61,10 +61,10 @@
      * All installed and loaded modules (resp. their main classes)
      */
-    public final static Collection<Module> moduleList = new LinkedList<Module>();
+    public final static Collection<Module> moduleList = new LinkedList<>();
 
     /**
      * Add here all ClassLoader whose resource should be searched.
      */
-    private static final List<ClassLoader> sources = new LinkedList<ClassLoader>();
+    private static final List<ClassLoader> sources = new LinkedList<>();
 
     static {
@@ -198,5 +198,5 @@
     public static ClassLoader createClassLoader(Collection<ModuleInformation> modules) {
         // iterate all modules and collect all libraries of all modules:
-        List<URL> allModuleLibraries = new LinkedList<URL>();
+        List<URL> allModuleLibraries = new LinkedList<>();
         File moduleDir = OdPlugin.getInstance().getModulesDirectory();
         for (ModuleInformation info : modules) {
@@ -269,5 +269,5 @@
             monitor.beginTask(tr("Loading modules ..."));
             monitor.subTask(tr("Checking module preconditions..."));
-            List<ModuleInformation> toLoad = new LinkedList<ModuleInformation>();
+            List<ModuleInformation> toLoad = new LinkedList<>();
             for (ModuleInformation pi: modules) {
                 if (checkLoadPreconditions(parent, modules, pi)) {
@@ -316,5 +316,5 @@
                 return null;
             }
-            HashMap<String, ModuleInformation> ret = new HashMap<String, ModuleInformation>();
+            HashMap<String, ModuleInformation> ret = new HashMap<>();
             for (ModuleInformation pi: task.getAvailableModules()) {
                 ret.put(pi.name, pi);
@@ -358,5 +358,5 @@
      */
     public static List<ModuleInformation> buildListOfModulesToLoad(Component parent) {
-        Set<String> modules = new HashSet<String>();
+        Set<String> modules = new HashSet<>();
         modules.addAll(Main.pref.getCollection(PREF_MODULES,  new LinkedList<String>()));
         if (System.getProperty("josm."+PREF_MODULES) != null) {
@@ -364,5 +364,5 @@
         }
         Map<String, ModuleInformation> infos = loadLocallyAvailableModuleInformation(null);
-        List<ModuleInformation> ret = new LinkedList<ModuleInformation>();
+        List<ModuleInformation> ret = new LinkedList<>();
         for (Iterator<String> it = modules.iterator(); it.hasNext();) {
             String module = it.next();
@@ -448,5 +448,5 @@
             // filter modules which actually have to be updated
             //
-            Collection<ModuleInformation> modulesToUpdate = new ArrayList<ModuleInformation>();
+            Collection<ModuleInformation> modulesToUpdate = new ArrayList<>();
             for(ModuleInformation pi: modules) {
                 if (pi.isUpdateRequired()) {
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleInformation.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleInformation.java	(revision 30529)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleInformation.java	(revision 30532)
@@ -46,6 +46,6 @@
     public String iconPath;
     public ImageIcon icon;
-    public List<URL> libraries = new LinkedList<URL>();
-    public final Map<String, String> attr = new TreeMap<String, String>();
+    public List<URL> libraries = new LinkedList<>();
+    public final Map<String, String> attr = new TreeMap<>();
 
     /**
@@ -245,4 +245,5 @@
      * @return the loaded class
      */
+    @SuppressWarnings("unchecked")
     public Class<? extends Module> loadClass(ClassLoader classLoader) throws ModuleException {
         if (className == null)
@@ -265,5 +266,5 @@
     public static Collection<String> getModuleLocations() {
         Collection<String> locations = Main.pref.getAllPossiblePreferenceDirs();
-        Collection<String> all = new ArrayList<String>(locations.size());
+        Collection<String> all = new ArrayList<>(locations.size());
         for (String s : locations) {
             all.add(s+"plugins/opendata/modules");
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleListParser.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleListParser.java	(revision 30529)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleListParser.java	(revision 30532)
@@ -58,5 +58,5 @@
      */
     public List<ModuleInformation> parse(InputStream in) throws ModuleListParseException{
-        List<ModuleInformation> ret = new LinkedList<ModuleInformation>();
+        List<ModuleInformation> ret = new LinkedList<>();
         BufferedReader r = null;
         try {
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ReadLocalModuleInformationTask.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ReadLocalModuleInformationTask.java	(revision 30529)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ReadLocalModuleInformationTask.java	(revision 30532)
@@ -18,5 +18,4 @@
 import org.openstreetmap.josm.io.OsmTransferException;
 import org.openstreetmap.josm.tools.ImageProvider;
-import org.openstreetmap.josm.tools.Utils;
 import org.xml.sax.SAXException;
 
@@ -41,10 +40,10 @@
     public ReadLocalModuleInformationTask() {
         super(tr("Reading local module information.."), false);
-        availableModules = new HashMap<String, ModuleInformation>();
+        availableModules = new HashMap<>();
     }
 
     public ReadLocalModuleInformationTask(ProgressMonitor monitor) {
         super(tr("Reading local module information.."),monitor, false);
-        availableModules = new HashMap<String, ModuleInformation>();
+        availableModules = new HashMap<>();
     }
 
@@ -225,5 +224,5 @@
      */
     public List<ModuleInformation> getAvailableModules() {
-        return new ArrayList<ModuleInformation>(availableModules.values());
+        return new ArrayList<>(availableModules.values());
     }
 
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ReadRemoteModuleInformationTask.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ReadRemoteModuleInformationTask.java	(revision 30529)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ReadRemoteModuleInformationTask.java	(revision 30532)
@@ -53,5 +53,5 @@
             this.sites = Collections.emptySet();
         }
-        availableModules = new LinkedList<ModuleInformation>();
+        availableModules = new LinkedList<>();
 
     }
@@ -297,5 +297,5 @@
 
         // collect old cache files and remove if no longer in use
-        List<File> siteCacheFiles = new LinkedList<File>();
+        List<File> siteCacheFiles = new LinkedList<>();
         for (String location : ModuleInformation.getModuleLocations()) {
             File [] f = new File(location).listFiles(
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/util/NamesFrUtils.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/util/NamesFrUtils.java	(revision 30529)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/util/NamesFrUtils.java	(revision 30532)
@@ -31,5 +31,5 @@
 	
 	private static Map<String, String> initDictionary() {
-		Map<String, String> result = new HashMap<String, String>();
+		Map<String, String> result = new HashMap<>();
 		try {
 			BufferedReader reader = new BufferedReader(new InputStreamReader(
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/util/OdUtils.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/util/OdUtils.java	(revision 30529)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/util/OdUtils.java	(revision 30532)
@@ -29,5 +29,5 @@
     
 	public static final String[] stripQuotesAndExtraChars(String[] split, String sep) {
-		List<String> result = new ArrayList<String>();
+		List<String> result = new ArrayList<>();
 		boolean append = false;
 		for (int i = 0; i<split.length; i++) {
