You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by ja...@apache.org on 2017/07/18 05:02:23 UTC

[6/7] ant-ivy git commit: Add generics and Java 7 syntax to core

http://git-wip-us.apache.org/repos/asf/ant-ivy/blob/69207179/src/java/org/apache/ivy/core/check/CheckEngine.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/ivy/core/check/CheckEngine.java b/src/java/org/apache/ivy/core/check/CheckEngine.java
index 8f85f4b..d48df8a 100644
--- a/src/java/org/apache/ivy/core/check/CheckEngine.java
+++ b/src/java/org/apache/ivy/core/check/CheckEngine.java
@@ -22,7 +22,6 @@ import java.net.URL;
 import java.text.ParseException;
 import java.util.Arrays;
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.Set;
 
 import org.apache.ivy.core.module.descriptor.Artifact;
@@ -67,56 +66,47 @@ public class CheckEngine {
             // check publications if possible
             if (resolvername != null) {
                 DependencyResolver resolver = settings.getResolver(resolvername);
-                String[] confs = md.getConfigurationsNames();
-                Set artifacts = new HashSet();
-                for (int i = 0; i < confs.length; i++) {
-                    artifacts.addAll(Arrays.asList(md.getArtifacts(confs[i])));
+                Set<Artifact> artifacts = new HashSet<>();
+                for (String conf : md.getConfigurationsNames()) {
+                    artifacts.addAll(Arrays.asList(md.getArtifacts(conf)));
                 }
-                for (Iterator iter = artifacts.iterator(); iter.hasNext();) {
-                    Artifact art = (Artifact) iter.next();
-                    if (!resolver.exists(art)) {
-                        Message.info("declared publication not found: " + art);
+                for (Artifact artifact : artifacts) {
+                    if (!resolver.exists(artifact)) {
+                        Message.info("declared publication not found: " + artifact);
                         result = false;
                     }
                 }
             }
 
             // check dependencies
-            DependencyDescriptor[] dds = md.getDependencies();
             ResolveData data = new ResolveData(resolveEngine, new ResolveOptions());
-            for (int i = 0; i < dds.length; i++) {
+            for (DependencyDescriptor dd : md.getDependencies()) {
                 // check master confs
-                String[] masterConfs = dds[i].getModuleConfigurations();
-                for (int j = 0; j < masterConfs.length; j++) {
-                    if (!"*".equals(masterConfs[j].trim())
-                            && md.getConfiguration(masterConfs[j]) == null) {
+                for (String masterConf : dd.getModuleConfigurations()) {
+                    if (!"*".equals(masterConf.trim()) && md.getConfiguration(masterConf) == null) {
                         Message.info("dependency required in non existing conf for " + ivyFile
-                                + " \n\tin " + dds[i] + ": " + masterConfs[j]);
+                                + " \n\tin " + dd + ": " + masterConf);
                         result = false;
                     }
                 }
                 // resolve
-                DependencyResolver resolver = settings
-                        .getResolver(dds[i].getDependencyRevisionId());
-                ResolvedModuleRevision rmr = resolver.getDependency(dds[i], data);
+                DependencyResolver resolver = settings.getResolver(dd.getDependencyRevisionId());
+                ResolvedModuleRevision rmr = resolver.getDependency(dd, data);
                 if (rmr == null) {
-                    Message.info("dependency not found in " + ivyFile + ":\n\t" + dds[i]);
+                    Message.info("dependency not found in " + ivyFile + ":\n\t" + dd);
                     result = false;
                 } else {
-                    String[] depConfs = dds[i].getDependencyConfigurations(md
-                            .getConfigurationsNames());
-                    for (int j = 0; j < depConfs.length; j++) {
-                        if (!Arrays.asList(rmr.getDescriptor().getConfigurationsNames()).contains(
-                            depConfs[j])) {
+                    for (String depConf : dd.getDependencyConfigurations(md.getConfigurationsNames())) {
+                        if (!Arrays.asList(rmr.getDescriptor().getConfigurationsNames())
+                                .contains(depConf)) {
                             Message.info("dependency configuration is missing for " + ivyFile
-                                    + "\n\tin " + dds[i] + ": " + depConfs[j]);
+                                    + "\n\tin " + dd + ": " + depConf);
                             result = false;
                         }
-                        Artifact[] arts = rmr.getDescriptor().getArtifacts(depConfs[j]);
-                        for (int k = 0; k < arts.length; k++) {
-                            if (!resolver.exists(arts[k])) {
+                        for (Artifact art : rmr.getDescriptor().getArtifacts(depConf)) {
+                            if (!resolver.exists(art)) {
                                 Message.info("dependency artifact is missing for " + ivyFile
-                                        + "\n\t in " + dds[i] + ": " + arts[k]);
+                                        + "\n\t in " + dd + ": " + art);
                                 result = false;
                             }
                         }

http://git-wip-us.apache.org/repos/asf/ant-ivy/blob/69207179/src/java/org/apache/ivy/core/deliver/DeliverEngine.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/ivy/core/deliver/DeliverEngine.java b/src/java/org/apache/ivy/core/deliver/DeliverEngine.java
index 11a843a..4a7c050 100644
--- a/src/java/org/apache/ivy/core/deliver/DeliverEngine.java
+++ b/src/java/org/apache/ivy/core/deliver/DeliverEngine.java
@@ -24,7 +24,6 @@ import java.text.ParseException;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
@@ -115,9 +114,9 @@ public class DeliverEngine {
         md.setResolvedPublicationDate(options.getPubdate());
 
         // 2) parse resolvedRevisions From properties file
-        Map resolvedRevisions = new HashMap(); // Map (ModuleId -> String revision)
-        Map resolvedBranches = new HashMap(); // Map (ModuleId -> String branch)
-        Map dependenciesStatus = new HashMap(); // Map (ModuleId -> String status)
+        Map<ModuleRevisionId, String> resolvedRevisions = new HashMap<>(); // Map (ModuleId -> String revision)
+        Map<ModuleRevisionId, String> resolvedBranches = new HashMap<>(); // Map (ModuleId -> String branch)
+        Map<ModuleRevisionId, String> dependenciesStatus = new HashMap<>(); // Map (ModuleId -> String status)
         File ivyProperties = getCache().getResolvedIvyPropertiesInCache(mrid);
         if (!ivyProperties.exists()) {
             throw new IllegalStateException("ivy properties not found in cache for " + mrid
@@ -128,8 +127,8 @@ public class DeliverEngine {
         props.load(in);
         in.close();
 
-        for (Iterator iter = props.keySet().iterator(); iter.hasNext();) {
-            String depMridStr = (String) iter.next();
+        for (Object o : props.keySet()) {
+            String depMridStr = (String) o;
             String[] parts = props.getProperty(depMridStr).split(" ");
             ModuleRevisionId decodedMrid = ModuleRevisionId.decode(depMridStr);
             if (options.isResolveDynamicRevisions()) {
@@ -155,29 +154,23 @@ public class DeliverEngine {
         }
 
         // 3) use pdrResolver to resolve dependencies info
-        Map resolvedDependencies = new HashMap(); // Map (ModuleRevisionId -> String revision)
-        DependencyDescriptor[] dependencies = md.getDependencies();
-        for (int i = 0; i < dependencies.length; i++) {
-            String rev = (String) resolvedRevisions.get(dependencies[i].getDependencyRevisionId());
+        Map<ModuleRevisionId, String> resolvedDependencies = new HashMap<>();
+        // Map (ModuleRevisionId -> String revision)
+        for (DependencyDescriptor dependency : md.getDependencies()) {
+            String rev = resolvedRevisions.get(dependency.getDependencyRevisionId());
             if (rev == null) {
-                rev = dependencies[i].getDependencyRevisionId().getRevision();
+                rev = dependency.getDependencyRevisionId().getRevision();
             }
-            String bra = (String) resolvedBranches.get(dependencies[i].getDependencyRevisionId());
+            String bra = resolvedBranches.get(dependency.getDependencyRevisionId());
             if (bra == null || "null".equals(bra)) {
-                bra = dependencies[i].getDependencyRevisionId().getBranch();
+                bra = dependency.getDependencyRevisionId().getBranch();
             }
-            String depStatus = (String) dependenciesStatus.get(dependencies[i]
-                    .getDependencyRevisionId());
-            ModuleRevisionId mrid2 = null;
-            if (bra == null) {
-                mrid2 = ModuleRevisionId
-                        .newInstance(dependencies[i].getDependencyRevisionId(), rev);
-            } else {
-                mrid2 = ModuleRevisionId.newInstance(dependencies[i].getDependencyRevisionId(),
-                    bra, rev);
-            }
-            resolvedDependencies.put(dependencies[i].getDependencyRevisionId(), options
-                    .getPdrResolver().resolve(md, options.getStatus(), mrid2, depStatus));
+            String depStatus = dependenciesStatus.get(dependency.getDependencyRevisionId());
+            ModuleRevisionId mrid2 = (bra == null)
+                    ? ModuleRevisionId.newInstance(dependency.getDependencyRevisionId(), rev)
+                    : ModuleRevisionId.newInstance(dependency.getDependencyRevisionId(), bra, rev);
+            resolvedDependencies.put(dependency.getDependencyRevisionId(),
+                options.getPdrResolver().resolve(md, options.getStatus(), mrid2, depStatus));
         }
 
         // 4) copy the source resolved ivy to the destination specified,
@@ -188,7 +181,7 @@ public class DeliverEngine {
         Message.info("\tdelivering ivy file to " + publishedIvy);
 
         String[] confs = ConfigurationUtils.replaceWildcards(options.getConfs(), md);
-        Set confsToRemove = new HashSet(Arrays.asList(md.getConfigurationsNames()));
+        Set<String> confsToRemove = new HashSet<>(Arrays.asList(md.getConfigurationsNames()));
         confsToRemove.removeAll(Arrays.asList(confs));
 
         try {
@@ -203,7 +196,7 @@ public class DeliverEngine {
                     .setMerge(options.isMerge())
                     .setMergedDescriptor(md)
                     .setConfsToExclude(
-                        (String[]) confsToRemove.toArray(new String[confsToRemove.size()]));
+                            confsToRemove.toArray(new String[confsToRemove.size()]));
             if (!resolvedBranches.isEmpty()) {
                 opts = opts.setResolvedBranches(resolvedBranches);
             }

http://git-wip-us.apache.org/repos/asf/ant-ivy/blob/69207179/src/java/org/apache/ivy/core/event/EventManager.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/ivy/core/event/EventManager.java b/src/java/org/apache/ivy/core/event/EventManager.java
index 743b7d4..5186b5f 100644
--- a/src/java/org/apache/ivy/core/event/EventManager.java
+++ b/src/java/org/apache/ivy/core/event/EventManager.java
@@ -37,17 +37,17 @@ public class EventManager implements TransferListener {
         addIvyListener(listener, new IvyEventFilter(eventName, null, null));
     }
 
-    public void addIvyListener(IvyListener listener, Filter filter) {
+    public void addIvyListener(IvyListener listener, Filter<IvyEvent> filter) {
         listeners.add(IvyListener.class, new FilteredIvyListener(listener, filter));
     }
 
     public void removeIvyListener(IvyListener listener) {
         listeners.remove(IvyListener.class, listener);
         IvyListener[] listeners = this.listeners.getListeners(IvyListener.class);
-        for (int i = 0; i < listeners.length; i++) {
-            if (listeners[i] instanceof FilteredIvyListener) {
-                if (listener.equals(((FilteredIvyListener) listeners[i]).getIvyListener())) {
-                    this.listeners.remove(IvyListener.class, listeners[i]);
+        for (IvyListener listen : listeners) {
+            if (listen instanceof FilteredIvyListener) {
+                if (listener.equals(((FilteredIvyListener) listen).getIvyListener())) {
+                    this.listeners.remove(IvyListener.class, listen);
                 }
             }
         }

http://git-wip-us.apache.org/repos/asf/ant-ivy/blob/69207179/src/java/org/apache/ivy/core/event/FilteredIvyListener.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/ivy/core/event/FilteredIvyListener.java b/src/java/org/apache/ivy/core/event/FilteredIvyListener.java
index e52512d..88b5c67 100644
--- a/src/java/org/apache/ivy/core/event/FilteredIvyListener.java
+++ b/src/java/org/apache/ivy/core/event/FilteredIvyListener.java
@@ -22,9 +22,9 @@ import org.apache.ivy.util.filter.Filter;
 public class FilteredIvyListener implements IvyListener {
     private IvyListener listener;
 
-    private Filter filter;
+    private Filter<IvyEvent> filter;
 
-    public FilteredIvyListener(IvyListener listener, Filter filter) {
+    public FilteredIvyListener(IvyListener listener, Filter<IvyEvent> filter) {
         this.listener = listener;
         this.filter = filter;
     }
@@ -33,7 +33,7 @@ public class FilteredIvyListener implements IvyListener {
         return listener;
     }
 
-    public Filter getFilter() {
+    public Filter<IvyEvent> getFilter() {
         return filter;
     }
 

http://git-wip-us.apache.org/repos/asf/ant-ivy/blob/69207179/src/java/org/apache/ivy/core/event/IvyEvent.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/ivy/core/event/IvyEvent.java b/src/java/org/apache/ivy/core/event/IvyEvent.java
index 68e13b3..82e2d7f 100644
--- a/src/java/org/apache/ivy/core/event/IvyEvent.java
+++ b/src/java/org/apache/ivy/core/event/IvyEvent.java
@@ -84,7 +84,7 @@ public class IvyEvent {
         addAttribute("conf", StringUtils.join(confs, ", "));
     }
 
-    protected void addAttributes(Map attributes) {
+    protected void addAttributes(Map<String, String> attributes) {
         this.attributes.putAll(attributes);
     }
 

http://git-wip-us.apache.org/repos/asf/ant-ivy/blob/69207179/src/java/org/apache/ivy/core/event/IvyEventFilter.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/ivy/core/event/IvyEventFilter.java b/src/java/org/apache/ivy/core/event/IvyEventFilter.java
index ac9251f..2958513 100644
--- a/src/java/org/apache/ivy/core/event/IvyEventFilter.java
+++ b/src/java/org/apache/ivy/core/event/IvyEventFilter.java
@@ -67,7 +67,7 @@ import org.apache.ivy.util.filter.OrFilter;
  *
  * @since 1.4
  */
-public class IvyEventFilter implements Filter {
+public class IvyEventFilter implements Filter<IvyEvent> {
     private static final String NOT = "NOT ";
 
     private static final String OR = " OR ";
@@ -76,28 +76,27 @@ public class IvyEventFilter implements Filter {
 
     private PatternMatcher matcher;
 
-    private Filter nameFilter;
+    private Filter<IvyEvent> nameFilter;
 
-    private Filter attFilter;
+    private Filter<IvyEvent> attFilter;
 
     public IvyEventFilter(String event, String filterExpression, PatternMatcher matcher) {
-        this.matcher = matcher == null ? ExactPatternMatcher.INSTANCE : matcher;
+        this.matcher = (matcher == null) ? ExactPatternMatcher.INSTANCE : matcher;
         if (event == null) {
-            nameFilter = NoFilter.INSTANCE;
+            nameFilter = NoFilter.instance();
         } else {
             final Matcher eventNameMatcher = this.matcher.getMatcher(event);
-            nameFilter = new Filter() {
-                public boolean accept(Object o) {
-                    IvyEvent e = (IvyEvent) o;
+            nameFilter = new Filter<IvyEvent>() {
+                public boolean accept(IvyEvent e) {
                     return eventNameMatcher.matches(e.getName());
                 }
             };
         }
-        attFilter = filterExpression == null || filterExpression.trim().length() == 0 ? NoFilter.INSTANCE
-                : parseExpression(filterExpression);
+        attFilter = (filterExpression == null || filterExpression.trim().length() == 0)
+                ? NoFilter.<IvyEvent> instance() : parseExpression(filterExpression);
     }
 
-    private Filter parseExpression(String filterExpression) {
+    private Filter<IvyEvent> parseExpression(String filterExpression) {
         // expressions handled for the moment: (informal grammar)
         // EXP := SIMPLE_EXP | AND_EXP | OR_EXP | NOT_EXP
         // AND_EXP := EXP && EXP
@@ -111,7 +110,7 @@ public class IvyEventFilter implements Filter {
             index = filterExpression.indexOf(OR);
             if (index == -1) {
                 if (filterExpression.startsWith(NOT)) {
-                    return new NotFilter(parseExpression(filterExpression.substring(NOT.length())));
+                    return new NotFilter<>(parseExpression(filterExpression.substring(NOT.length())));
                 } else {
                     index = filterExpression.indexOf("=");
                     if (index == -1) {
@@ -124,15 +123,14 @@ public class IvyEventFilter implements Filter {
                     for (int i = 0; i < values.length; i++) {
                         matchers[i] = matcher.getMatcher(values[i].trim());
                     }
-                    return new Filter() {
-                        public boolean accept(Object o) {
-                            IvyEvent e = (IvyEvent) o;
-                            String val = (String) e.getAttributes().get(attname);
+                    return new Filter<IvyEvent>() {
+                        public boolean accept(IvyEvent e) {
+                            String val = e.getAttributes().get(attname);
                             if (val == null) {
                                 return false;
                             }
-                            for (int i = 0; i < matchers.length; i++) {
-                                if (matchers[i].matches(val)) {
+                            for (Matcher matcher : matchers) {
+                                if (matcher.matches(val)) {
                                     return true;
                                 }
                             }
@@ -141,17 +139,17 @@ public class IvyEventFilter implements Filter {
                     };
                 }
             } else {
-                return new OrFilter(parseExpression(filterExpression.substring(0, index)),
+                return new OrFilter<>(parseExpression(filterExpression.substring(0, index)),
                         parseExpression(filterExpression.substring(index + OR.length())));
             }
         } else {
-            return new AndFilter(parseExpression(filterExpression.substring(0, index)),
+            return new AndFilter<>(parseExpression(filterExpression.substring(0, index)),
                     parseExpression(filterExpression.substring(index + AND.length())));
         }
     }
 
-    public boolean accept(Object o) {
-        return o instanceof IvyEvent && nameFilter.accept(o) && attFilter.accept(o);
+    public boolean accept(IvyEvent e) {
+        return nameFilter.accept(e) && attFilter.accept(e);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/ant-ivy/blob/69207179/src/java/org/apache/ivy/core/event/publish/EndArtifactPublishEvent.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/ivy/core/event/publish/EndArtifactPublishEvent.java b/src/java/org/apache/ivy/core/event/publish/EndArtifactPublishEvent.java
index c2e08dd..53e4539 100644
--- a/src/java/org/apache/ivy/core/event/publish/EndArtifactPublishEvent.java
+++ b/src/java/org/apache/ivy/core/event/publish/EndArtifactPublishEvent.java
@@ -30,9 +30,6 @@ import org.apache.ivy.plugins.resolver.DependencyResolver;
  */
 public class EndArtifactPublishEvent extends PublishEvent {
 
-    @SuppressWarnings("unused")
-    private static final long serialVersionUID = -65690169431499422L;
-
     public static final String NAME = "post-publish-artifact";
 
     public static final String STATUS_SUCCESSFUL = "successful";

http://git-wip-us.apache.org/repos/asf/ant-ivy/blob/69207179/src/java/org/apache/ivy/core/event/publish/StartArtifactPublishEvent.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/ivy/core/event/publish/StartArtifactPublishEvent.java b/src/java/org/apache/ivy/core/event/publish/StartArtifactPublishEvent.java
index 42a8068..36ead5a 100644
--- a/src/java/org/apache/ivy/core/event/publish/StartArtifactPublishEvent.java
+++ b/src/java/org/apache/ivy/core/event/publish/StartArtifactPublishEvent.java
@@ -30,9 +30,6 @@ import org.apache.ivy.plugins.resolver.DependencyResolver;
  */
 public class StartArtifactPublishEvent extends PublishEvent {
 
-    @SuppressWarnings("unused")
-    private static final long serialVersionUID = -1134274781039590219L;
-
     public static final String NAME = "pre-publish-artifact";
 
     public StartArtifactPublishEvent(DependencyResolver resolver, Artifact artifact, File data,

http://git-wip-us.apache.org/repos/asf/ant-ivy/blob/69207179/src/java/org/apache/ivy/core/install/InstallEngine.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/ivy/core/install/InstallEngine.java b/src/java/org/apache/ivy/core/install/InstallEngine.java
index 47e45e7..db9a4cb 100644
--- a/src/java/org/apache/ivy/core/install/InstallEngine.java
+++ b/src/java/org/apache/ivy/core/install/InstallEngine.java
@@ -93,28 +93,23 @@ public class InstallEngine {
                     ExactPatternMatcher.ANY_EXPRESSION), ExactPatternMatcher.INSTANCE,
                 new NoConflictManager());
 
-            for (int c = 0; c < options.getConfs().length; c++) {
-                final String[] depConfs = options.getConfs();
-
-                for (int j = 0; j < depConfs.length; j++) {
-                    final String depConf = depConfs[j].trim();
-
-                    if (MatcherHelper.isExact(matcher, mrid)) {
-                        DefaultDependencyDescriptor dd = new DefaultDependencyDescriptor(md, mrid,
-                                false, false, options.isTransitive());
+            for (String dc : options.getConfs()) {
+                final String depConf = dc.trim();
+
+                if (MatcherHelper.isExact(matcher, mrid)) {
+                    DefaultDependencyDescriptor dd = new DefaultDependencyDescriptor(md, mrid,
+                            false, false, options.isTransitive());
+                    dd.addDependencyConfiguration("default", depConf);
+                    md.addDependency(dd);
+                } else {
+                    ModuleRevisionId[] mrids = searchEngine.listModules(fromResolver, mrid, matcher);
+
+                    for (ModuleRevisionId imrid : mrids) {
+                        Message.info("\tfound " + imrid + " to install: adding to the list");
+                        DefaultDependencyDescriptor dd = new DefaultDependencyDescriptor(md,
+                                imrid, false, false, options.isTransitive());
                         dd.addDependencyConfiguration("default", depConf);
                         md.addDependency(dd);
-                    } else {
-                        ModuleRevisionId[] mrids = searchEngine.listModules(fromResolver, mrid,
-                            matcher);
-
-                        for (int i = 0; i < mrids.length; i++) {
-                            Message.info("\tfound " + mrids[i] + " to install: adding to the list");
-                            DefaultDependencyDescriptor dd = new DefaultDependencyDescriptor(md,
-                                    mrids[i], false, false, options.isTransitive());
-                            dd.addDependencyConfiguration("default", depConf);
-                            md.addDependency(dd);
-                        }
                     }
                 }
             }
@@ -134,8 +129,8 @@ public class InstallEngine {
 
             // now that everything is in cache, we can publish all these modules
             Message.info(":: installing in " + to + " ::");
-            for (int i = 0; i < dependencies.length; i++) {
-                ModuleDescriptor depmd = dependencies[i].getDescriptor();
+            for (IvyNode dependency : dependencies) {
+                ModuleDescriptor depmd = dependency.getDescriptor();
                 if (depmd != null) {
                     ModuleRevisionId depMrid = depmd.getModuleRevisionId();
                     Message.verbose("installing " + depMrid);
@@ -145,15 +140,15 @@ public class InstallEngine {
 
                         // publish artifacts
                         ArtifactDownloadReport[] artifacts = report.getArtifactsReports(depMrid);
-                        for (int j = 0; j < artifacts.length; j++) {
-                            if (artifacts[j].getLocalFile() != null) {
-                                toResolver.publish(artifacts[j].getArtifact(),
-                                    artifacts[j].getLocalFile(), options.isOverwrite());
+                        for (ArtifactDownloadReport artifact : artifacts) {
+                            if (artifact.getLocalFile() != null) {
+                                toResolver.publish(artifact.getArtifact(), artifact.getLocalFile(),
+                                    options.isOverwrite());
                             }
                         }
 
                         // publish metadata
-                        MetadataArtifactDownloadReport artifactDownloadReport = dependencies[i]
+                        MetadataArtifactDownloadReport artifactDownloadReport = dependency
                                 .getModuleRevision().getReport();
                         File localIvyFile = artifactDownloadReport.getLocalFile();
                         toResolver.publish(depmd.getMetadataArtifact(), localIvyFile,

http://git-wip-us.apache.org/repos/asf/ant-ivy/blob/69207179/src/java/org/apache/ivy/core/install/InstallEngineSettings.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/ivy/core/install/InstallEngineSettings.java b/src/java/org/apache/ivy/core/install/InstallEngineSettings.java
index 9f3426b..0aa56dd 100644
--- a/src/java/org/apache/ivy/core/install/InstallEngineSettings.java
+++ b/src/java/org/apache/ivy/core/install/InstallEngineSettings.java
@@ -29,7 +29,7 @@ public interface InstallEngineSettings extends ParserSettings {
 
     DependencyResolver getResolver(String from);
 
-    Collection getResolverNames();
+    Collection<String> getResolverNames();
 
     ReportOutputter[] getReportOutputters();
 
@@ -41,6 +41,6 @@ public interface InstallEngineSettings extends ParserSettings {
 
     PatternMatcher getMatcher(String matcherName);
 
-    Collection getMatcherNames();
+    Collection<String> getMatcherNames();
 
 }

http://git-wip-us.apache.org/repos/asf/ant-ivy/blob/69207179/src/java/org/apache/ivy/core/install/InstallOptions.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/ivy/core/install/InstallOptions.java b/src/java/org/apache/ivy/core/install/InstallOptions.java
index 5bb4182..ee6beeb 100644
--- a/src/java/org/apache/ivy/core/install/InstallOptions.java
+++ b/src/java/org/apache/ivy/core/install/InstallOptions.java
@@ -17,6 +17,7 @@
  */
 package org.apache.ivy.core.install;
 
+import org.apache.ivy.core.module.descriptor.Artifact;
 import org.apache.ivy.plugins.matcher.PatternMatcher;
 import org.apache.ivy.util.filter.Filter;
 import org.apache.ivy.util.filter.FilterHelper;
@@ -32,7 +33,7 @@ public class InstallOptions {
 
     private String[] confs = {"*"};
 
-    private Filter artifactFilter = FilterHelper.NO_FILTER;
+    private Filter<Artifact> artifactFilter = FilterHelper.NO_FILTER;
 
     private String matcherName = PatternMatcher.EXACT;
 
@@ -63,12 +64,12 @@ public class InstallOptions {
         return this;
     }
 
-    public Filter getArtifactFilter() {
+    public Filter<Artifact> getArtifactFilter() {
         return artifactFilter;
     }
 
-    public InstallOptions setArtifactFilter(Filter artifactFilter) {
-        this.artifactFilter = artifactFilter == null ? FilterHelper.NO_FILTER : artifactFilter;
+    public InstallOptions setArtifactFilter(Filter<Artifact> artifactFilter) {
+        this.artifactFilter = (artifactFilter == null) ? FilterHelper.NO_FILTER : artifactFilter;
         return this;
     }
 

http://git-wip-us.apache.org/repos/asf/ant-ivy/blob/69207179/src/java/org/apache/ivy/core/module/descriptor/AbstractArtifact.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/ivy/core/module/descriptor/AbstractArtifact.java b/src/java/org/apache/ivy/core/module/descriptor/AbstractArtifact.java
index 95b175c..74bb54f 100644
--- a/src/java/org/apache/ivy/core/module/descriptor/AbstractArtifact.java
+++ b/src/java/org/apache/ivy/core/module/descriptor/AbstractArtifact.java
@@ -62,7 +62,7 @@ public abstract class AbstractArtifact implements Artifact {
         return getId().getAttribute(attName);
     }
 
-    public Map getAttributes() {
+    public Map<String, String> getAttributes() {
         return getId().getAttributes();
     }
 
@@ -70,11 +70,11 @@ public abstract class AbstractArtifact implements Artifact {
         return getId().getExtraAttribute(attName);
     }
 
-    public Map getExtraAttributes() {
+    public Map<String, String> getExtraAttributes() {
         return getId().getExtraAttributes();
     }
 
-    public Map getQualifiedExtraAttributes() {
+    public Map<String, String> getQualifiedExtraAttributes() {
         return getId().getQualifiedExtraAttributes();
     }
 

http://git-wip-us.apache.org/repos/asf/ant-ivy/blob/69207179/src/java/org/apache/ivy/core/module/descriptor/AbstractIncludeExcludeRule.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/ivy/core/module/descriptor/AbstractIncludeExcludeRule.java b/src/java/org/apache/ivy/core/module/descriptor/AbstractIncludeExcludeRule.java
index 6c29ad2..bdea406 100644
--- a/src/java/org/apache/ivy/core/module/descriptor/AbstractIncludeExcludeRule.java
+++ b/src/java/org/apache/ivy/core/module/descriptor/AbstractIncludeExcludeRule.java
@@ -35,11 +35,12 @@ public abstract class AbstractIncludeExcludeRule extends UnmodifiableExtendableI
 
     private ArtifactId id;
 
-    private Collection confs = new ArrayList();
+    private final Collection<String> confs = new ArrayList<>();
 
     private PatternMatcher patternMatcher;
 
-    public AbstractIncludeExcludeRule(ArtifactId aid, PatternMatcher matcher, Map extraAttributes) {
+    public AbstractIncludeExcludeRule(ArtifactId aid, PatternMatcher matcher,
+                                      Map<String, String> extraAttributes) {
         super(null, extraAttributes);
         id = aid;
         patternMatcher = matcher;
@@ -81,7 +82,7 @@ public abstract class AbstractIncludeExcludeRule extends UnmodifiableExtendableI
     }
 
     public String[] getConfigurations() {
-        return (String[]) confs.toArray(new String[confs.size()]);
+        return confs.toArray(new String[confs.size()]);
     }
 
     public PatternMatcher getMatcher() {

http://git-wip-us.apache.org/repos/asf/ant-ivy/blob/69207179/src/java/org/apache/ivy/core/module/descriptor/Configuration.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/ivy/core/module/descriptor/Configuration.java b/src/java/org/apache/ivy/core/module/descriptor/Configuration.java
index cb808dc..56d96c4 100644
--- a/src/java/org/apache/ivy/core/module/descriptor/Configuration.java
+++ b/src/java/org/apache/ivy/core/module/descriptor/Configuration.java
@@ -60,11 +60,11 @@ public class Configuration extends DefaultExtendableItem implements InheritableI
 
     public static Collection<Configuration> findConfigurationExtending(String conf,
             Configuration[] confs) {
-        Collection<Configuration> extendingConfs = new ArrayList<Configuration>();
-        for (int i = 0; i < confs.length; i++) {
-            if (confs[i] != null && Arrays.asList(confs[i].getExtends()).contains(conf)) {
-                extendingConfs.add(confs[i]);
-                extendingConfs.addAll(findConfigurationExtending(confs[i].getName(), confs));
+        Collection<Configuration> extendingConfs = new ArrayList<>();
+        for (Configuration cf : confs) {
+            if (cf != null && Arrays.asList(cf.getExtends()).contains(conf)) {
+                extendingConfs.add(cf);
+                extendingConfs.addAll(findConfigurationExtending(cf.getName(), confs));
             }
         }
         return extendingConfs;
@@ -219,16 +219,16 @@ public class Configuration extends DefaultExtendableItem implements InheritableI
 
         Configuration[] configs = md.getConfigurations();
 
-        Set<String> newExtends = new LinkedHashSet<String>();
-        for (int j = 0; j < extendsFrom.length; j++) {
-            if ("*".equals(extendsFrom[j])) {
+        Set<String> newExtends = new LinkedHashSet<>();
+        for (String extend : extendsFrom) {
+            if ("*".equals(extend)) {
                 addOther(configs, null, newExtends);
-            } else if ("*(public)".equals(extendsFrom[j])) {
+            } else if ("*(public)".equals(extend)) {
                 addOther(configs, Visibility.PUBLIC, newExtends);
-            } else if ("*(private)".equals(extendsFrom[j])) {
+            } else if ("*(private)".equals(extend)) {
                 addOther(configs, Visibility.PRIVATE, newExtends);
             } else {
-                newExtends.add(extendsFrom[j]);
+                newExtends.add(extend);
             }
         }
 
@@ -236,10 +236,10 @@ public class Configuration extends DefaultExtendableItem implements InheritableI
     }
 
     private void addOther(Configuration[] allConfigs, Visibility visibility, Set<String> configs) {
-        for (int i = 0; i < allConfigs.length; i++) {
-            String currentName = allConfigs[i].getName();
+        for (Configuration allConfig : allConfigs) {
+            String currentName = allConfig.getName();
             if (!name.equals(currentName)
-                    && ((visibility == null) || visibility.equals(allConfigs[i].getVisibility()))) {
+                    && (visibility == null || visibility.equals(allConfig.getVisibility()))) {
                 configs.add(currentName);
             }
         }

http://git-wip-us.apache.org/repos/asf/ant-ivy/blob/69207179/src/java/org/apache/ivy/core/module/descriptor/ConfigurationGroup.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/ivy/core/module/descriptor/ConfigurationGroup.java b/src/java/org/apache/ivy/core/module/descriptor/ConfigurationGroup.java
index 5f827a7..80182da 100644
--- a/src/java/org/apache/ivy/core/module/descriptor/ConfigurationGroup.java
+++ b/src/java/org/apache/ivy/core/module/descriptor/ConfigurationGroup.java
@@ -17,7 +17,6 @@
  */
 package org.apache.ivy.core.module.descriptor;
 
-import java.util.Iterator;
 import java.util.Map;
 
 /**
@@ -25,9 +24,9 @@ import java.util.Map;
  */
 public class ConfigurationGroup extends Configuration {
 
-    private final Map/* <String, Configuration> */members;
+    private final Map<String, Configuration> members;
 
-    public ConfigurationGroup(String confName, Map /* <String, Configuration> */members) {
+    public ConfigurationGroup(String confName, Map<String, Configuration> members) {
         super(confName);
         this.members = members;
     }
@@ -43,7 +42,7 @@ public class ConfigurationGroup extends Configuration {
      * @return the list of configurations' names this object is an intersection of.
      */
     public String[] getMembersConfigurationNames() {
-        return (String[]) members.keySet().toArray(new String[members.size()]);
+        return members.keySet().toArray(new String[members.size()]);
     }
 
     /**
@@ -56,12 +55,11 @@ public class ConfigurationGroup extends Configuration {
      * @return the member {@link Configuration} object for the given conf name
      */
     public Configuration getMemberConfiguration(String confName) {
-        return (Configuration) members.get(confName);
+        return members.get(confName);
     }
 
     public Visibility getVisibility() {
-        for (Iterator it = members.values().iterator(); it.hasNext();) {
-            Configuration c = (Configuration) it.next();
+        for (Configuration c : members.values()) {
             if (c != null && Visibility.PRIVATE.equals(c.getVisibility())) {
                 return Visibility.PRIVATE;
             }

http://git-wip-us.apache.org/repos/asf/ant-ivy/blob/69207179/src/java/org/apache/ivy/core/module/descriptor/ConfigurationIntersection.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/ivy/core/module/descriptor/ConfigurationIntersection.java b/src/java/org/apache/ivy/core/module/descriptor/ConfigurationIntersection.java
index 36f2bc3..406fd07 100644
--- a/src/java/org/apache/ivy/core/module/descriptor/ConfigurationIntersection.java
+++ b/src/java/org/apache/ivy/core/module/descriptor/ConfigurationIntersection.java
@@ -17,7 +17,6 @@
  */
 package org.apache.ivy.core.module.descriptor;
 
-import java.util.Iterator;
 import java.util.Map;
 
 /**
@@ -25,10 +24,10 @@ import java.util.Map;
  */
 public class ConfigurationIntersection extends Configuration {
 
-    private final Map/* <String, Configuration> */intersectedConfs;
+    private final Map<String, Configuration> intersectedConfs;
 
     public ConfigurationIntersection(String confName,
-            Map /* <String, Configuration> */intersectedConfs) {
+            Map<String, Configuration> intersectedConfs) {
         super(confName);
         this.intersectedConfs = intersectedConfs;
     }
@@ -44,7 +43,7 @@ public class ConfigurationIntersection extends Configuration {
      * @return the list of configurations' names this object is an intersection of.
      */
     public String[] getIntersectedConfigurationNames() {
-        return (String[]) intersectedConfs.keySet().toArray(new String[intersectedConfs.size()]);
+        return intersectedConfs.keySet().toArray(new String[intersectedConfs.size()]);
     }
 
     /**
@@ -57,12 +56,11 @@ public class ConfigurationIntersection extends Configuration {
      * @return the intersected {@link Configuration} object for the given conf name
      */
     public Configuration getIntersectedConfiguration(String confName) {
-        return (Configuration) intersectedConfs.get(confName);
+        return intersectedConfs.get(confName);
     }
 
     public Visibility getVisibility() {
-        for (Iterator it = intersectedConfs.values().iterator(); it.hasNext();) {
-            Configuration c = (Configuration) it.next();
+        for (Configuration c : intersectedConfs.values()) {
             if (c != null && Visibility.PRIVATE.equals(c.getVisibility())) {
                 return Visibility.PRIVATE;
             }

http://git-wip-us.apache.org/repos/asf/ant-ivy/blob/69207179/src/java/org/apache/ivy/core/module/descriptor/DefaultArtifact.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/ivy/core/module/descriptor/DefaultArtifact.java b/src/java/org/apache/ivy/core/module/descriptor/DefaultArtifact.java
index 3ea103d..05880b2 100644
--- a/src/java/org/apache/ivy/core/module/descriptor/DefaultArtifact.java
+++ b/src/java/org/apache/ivy/core/module/descriptor/DefaultArtifact.java
@@ -84,12 +84,12 @@ public class DefaultArtifact extends AbstractArtifact {
     }
 
     public DefaultArtifact(ModuleRevisionId mrid, Date publicationDate, String name, String type,
-            String ext, Map extraAttributes) {
+            String ext, Map<String, String> extraAttributes) {
         this(mrid, publicationDate, name, type, ext, null, extraAttributes);
     }
 
     public DefaultArtifact(ModuleRevisionId mrid, Date publicationDate, String name, String type,
-            String ext, URL url, Map extraAttributes) {
+            String ext, URL url, Map<String, String> extraAttributes) {
         this(ArtifactRevisionId.newInstance(mrid, name, type, ext, extraAttributes),
                 publicationDate, url, false);
     }

http://git-wip-us.apache.org/repos/asf/ant-ivy/blob/69207179/src/java/org/apache/ivy/core/module/descriptor/DefaultDependencyArtifactDescriptor.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/ivy/core/module/descriptor/DefaultDependencyArtifactDescriptor.java b/src/java/org/apache/ivy/core/module/descriptor/DefaultDependencyArtifactDescriptor.java
index 4785a3f..c7d5537 100644
--- a/src/java/org/apache/ivy/core/module/descriptor/DefaultDependencyArtifactDescriptor.java
+++ b/src/java/org/apache/ivy/core/module/descriptor/DefaultDependencyArtifactDescriptor.java
@@ -29,7 +29,7 @@ import org.apache.ivy.util.extendable.UnmodifiableExtendableItem;
 public class DefaultDependencyArtifactDescriptor extends UnmodifiableExtendableItem implements
         DependencyArtifactDescriptor, ConfigurationAware {
 
-    private Collection confs = new ArrayList();
+    private final Collection<String> confs = new ArrayList<>();
 
     private URL url;
 
@@ -50,7 +50,7 @@ public class DefaultDependencyArtifactDescriptor extends UnmodifiableExtendableI
      * @param extraAttributes ditto
      */
     public DefaultDependencyArtifactDescriptor(DependencyDescriptor dd, String name, String type,
-            String ext, URL url, Map extraAttributes) {
+            String ext, URL url, Map<String, String> extraAttributes) {
         super(null, extraAttributes);
         Checks.checkNotNull(dd, "dd");
         Checks.checkNotNull(name, "name");
@@ -109,7 +109,7 @@ public class DefaultDependencyArtifactDescriptor extends UnmodifiableExtendableI
     }
 
     public String[] getConfigurations() {
-        return (String[]) confs.toArray(new String[confs.size()]);
+        return confs.toArray(new String[confs.size()]);
     }
 
     public URL getUrl() {

http://git-wip-us.apache.org/repos/asf/ant-ivy/blob/69207179/src/java/org/apache/ivy/core/module/descriptor/DefaultDependencyDescriptor.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/ivy/core/module/descriptor/DefaultDependencyDescriptor.java b/src/java/org/apache/ivy/core/module/descriptor/DefaultDependencyDescriptor.java
index a3e86e7..30677eb 100644
--- a/src/java/org/apache/ivy/core/module/descriptor/DefaultDependencyDescriptor.java
+++ b/src/java/org/apache/ivy/core/module/descriptor/DefaultDependencyDescriptor.java
@@ -22,7 +22,6 @@ import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.LinkedHashSet;
 import java.util.List;
@@ -101,25 +100,25 @@ public class DefaultDependencyDescriptor implements DependencyDescriptor {
         if (moduleConfs.length == 1 && "*".equals(moduleConfs[0])) {
             if (dd instanceof DefaultDependencyDescriptor) {
                 DefaultDependencyDescriptor ddd = (DefaultDependencyDescriptor) dd;
-                newdd.confs = new LinkedHashMap(ddd.confs);
-                newdd.setExcludeRules(new LinkedHashMap(ddd.getExcludeRules()));
-                newdd.setIncludeRules(new LinkedHashMap(ddd.getIncludeRules()));
-                newdd.setDependencyArtifacts(new LinkedHashMap(ddd.getDependencyArtifacts()));
+                newdd.confs = new LinkedHashMap<>(ddd.confs);
+                newdd.setExcludeRules(new LinkedHashMap<>(ddd.getExcludeRules()));
+                newdd.setIncludeRules(new LinkedHashMap<>(ddd.getIncludeRules()));
+                newdd.setDependencyArtifacts(new LinkedHashMap<>(ddd.getDependencyArtifacts()));
             } else {
                 throw new IllegalArgumentException(
                         "dependency descriptor transformation does not support * module confs "
                                 + "with descriptors which aren't DefaultDependencyDescriptor");
             }
         } else {
-            for (int i = 0; i < moduleConfs.length; i++) {
-                newdd.confs.put(moduleConfs[i],
-                    new ArrayList(Arrays.asList(dd.getDependencyConfigurations(moduleConfs[i]))));
-                newdd.getExcludeRules().put(moduleConfs[i],
-                    new ArrayList(Arrays.asList(dd.getExcludeRules(moduleConfs[i]))));
-                newdd.getIncludeRules().put(moduleConfs[i],
-                    new ArrayList(Arrays.asList(dd.getIncludeRules(moduleConfs[i]))));
-                newdd.getDependencyArtifacts().put(moduleConfs[i],
-                    new ArrayList(Arrays.asList(dd.getDependencyArtifacts(moduleConfs[i]))));
+            for (String moduleConf : moduleConfs) {
+                newdd.confs.put(moduleConf,
+                    new ArrayList<>(Arrays.asList(dd.getDependencyConfigurations(moduleConf))));
+                newdd.getExcludeRules().put(moduleConf,
+                    new ArrayList<>(Arrays.asList(dd.getExcludeRules(moduleConf))));
+                newdd.getIncludeRules().put(moduleConf,
+                    new ArrayList<>(Arrays.asList(dd.getIncludeRules(moduleConf))));
+                newdd.getDependencyArtifacts().put(moduleConf,
+                    new ArrayList<>(Arrays.asList(dd.getDependencyArtifacts(moduleConf))));
             }
         }
         if (fromSystem) {
@@ -132,16 +131,19 @@ public class DefaultDependencyDescriptor implements DependencyDescriptor {
 
     private ModuleRevisionId dynamicRevId;
 
-    private Map/* <String,List<String>> */confs = new LinkedHashMap();
+    private Map<String, List<String>> confs = new LinkedHashMap<>();
 
     // Map (String masterConf -> Collection(DependencyArtifactDescriptor))
-    private Map dependencyArtifacts; // initialized on demand only for memory consumption reason
+    // initialized on demand only for memory consumption reasons
+    private Map<String, Collection<DependencyArtifactDescriptor>> dependencyArtifacts;
 
     // Map (String masterConf -> Collection(IncludeRule))
-    private Map includeRules; // initialized on demand only for memory consumption reason
+    // initialized on demand only for memory consumption reasons
+    private Map<String, Collection<IncludeRule>> includeRules;
 
     // Map (String masterConf -> Collection(ExcludeRule))
-    private Map excludeRules; // initialized on demand only for memory consumption reason
+    // initialized on demand only for memory consumption reasons
+    private Map<String, Collection<ExcludeRule>> excludeRules;
 
     /**
      * Used to indicate that this revision must be used in case of conflicts, independently of
@@ -189,10 +191,10 @@ public class DefaultDependencyDescriptor implements DependencyDescriptor {
         isTransitive = dd.isTransitive;
         namespace = dd.namespace;
         confs.putAll(dd.confs);
-        excludeRules = dd.excludeRules == null ? null : new LinkedHashMap(dd.excludeRules);
-        includeRules = dd.includeRules == null ? null : new LinkedHashMap(dd.includeRules);
-        dependencyArtifacts = dd.dependencyArtifacts == null ? null : new LinkedHashMap(
-                dd.dependencyArtifacts);
+        excludeRules = (dd.excludeRules == null) ? null : new LinkedHashMap<>(dd.excludeRules);
+        includeRules = (dd.includeRules == null) ? null : new LinkedHashMap<>(dd.includeRules);
+        dependencyArtifacts = (dd.dependencyArtifacts == null) ? null
+                : new LinkedHashMap<>(dd.dependencyArtifacts);
         sourceModule = dd.sourceModule;
     }
 
@@ -236,7 +238,7 @@ public class DefaultDependencyDescriptor implements DependencyDescriptor {
     }
 
     public String[] getModuleConfigurations() {
-        return (String[]) confs.keySet().toArray(new String[confs.keySet().size()]);
+        return confs.keySet().toArray(new String[confs.keySet().size()]);
     }
 
     public String[] getDependencyConfigurations(String moduleConfiguration) {
@@ -265,11 +267,10 @@ public class DefaultDependencyDescriptor implements DependencyDescriptor {
             Configuration c = md.getConfiguration(moduleConfiguration);
             if (c instanceof ConfigurationIntersection) {
                 ConfigurationIntersection intersection = (ConfigurationIntersection) c;
-                Set /* <String> */intersectedDepConfs = new HashSet();
-                String[] intersected = intersection.getIntersectedConfigurationNames();
-                for (int i = 0; i < intersected.length; i++) {
-                    Collection depConfs = getDependencyConfigurationsIncludingExtending(
-                        intersected[i], requestedConfiguration);
+                Set<String> intersectedDepConfs = new HashSet<>();
+                for (String intersect : intersection.getIntersectedConfigurationNames()) {
+                    Collection<String> depConfs = getDependencyConfigurationsIncludingExtending(
+                        intersect, requestedConfiguration);
                     if (intersectedDepConfs.isEmpty()) {
                         intersectedDepConfs.addAll(depConfs);
                     } else {
@@ -280,10 +281,9 @@ public class DefaultDependencyDescriptor implements DependencyDescriptor {
                             // nothing to do, intersection of 'something'
                             // with 'everything' is 'something'
                         } else {
-                            Set /* <String> */intersectedDepConfsCopy = intersectedDepConfs;
-                            intersectedDepConfs = new HashSet();
-                            for (Iterator it = intersectedDepConfsCopy.iterator(); it.hasNext();) {
-                                String intersectedDepConf = (String) it.next();
+                            Set<String> intersectedDepConfsCopy = intersectedDepConfs;
+                            intersectedDepConfs = new HashSet<>();
+                            for (String intersectedDepConf : intersectedDepConfsCopy) {
                                 if (depConfs.contains(intersectedDepConf)) {
                                     // the conf is present in both sets,
                                     // so it is in the intersection
@@ -295,36 +295,34 @@ public class DefaultDependencyDescriptor implements DependencyDescriptor {
                                  * confs yet: it would require supporting parenthesis grouping in
                                  * configurations intersection interpretation
                                  *
-                                 * for (Iterator it2 = depConfs.iterator(); it2.hasNext();) {
-                                 *     String depConf = (String) it2.next();
-                                 *     if (depConf.startsWith("*")) {
-                                 *         if (intersectedDepConf .indexOf("(" + depConf + ")") != -1) {
-                                 *             intersectedDepConfs.add(intersectedDepConf);
-                                 *         } else {
-                                 *             intersectedDepConfs.add( "(" + intersectedDepConf + ")+(" + depConf + ")");
-                                 *         }
-                                 *     } else if (intersectedDepConf.startsWith("*")) {
-                                 *         if (depConf .indexOf("(" + intersectedDepConf + ")") != -1) {
-                                 *             intersectedDepConfs.add(depConf);
-                                 *         } else {
-                                 *             intersectedDepConfs.add( depConf + "+" + intersectedDepConf);
-                                 *         }
-                                 *     }
+                                 * for (String depConf : depConfs) {
+                                 *    if (depConf.startsWith("*")) {
+                                 *       if (intersectedDepConf.contains("(" + depConf + ")")) {
+                                 *          intersectedDepConfs.add(intersectedDepConf);
+                                 *       } else {
+                                 *          intersectedDepConfs.add("(" + intersectedDepConf + ")+(" + depConf + ")");
+                                 *       }
+                                 *    } else if (intersectedDepConf.startsWith("*")) {
+                                 *       if (depConf.contains("(" + intersectedDepConf + ")")) {
+                                 *          intersectedDepConfs.add(depConf);
+                                 *       } else {
+                                 *          intersectedDepConfs.add(depConf + "+" + intersectedDepConf);
+                                 *       }
+                                 *    }
                                  * }
                                  */
                             }
                         }
                     }
                 }
-                List confsList = (List) confs.get(moduleConfiguration);
+                List<String> confsList = confs.get(moduleConfiguration);
                 if (confsList != null) {
                     intersectedDepConfs.addAll(confsList);
                 }
                 if (intersectedDepConfs.isEmpty()) {
-                    List defConfs = (List) confs.get("*");
+                    List<String> defConfs = confs.get("*");
                     if (defConfs != null) {
-                        for (Iterator it = defConfs.iterator(); it.hasNext();) {
-                            String mappedConf = (String) it.next();
+                        for (String mappedConf : defConfs) {
                             if (mappedConf != null && mappedConf.startsWith("@+")) {
                                 return new String[] {moduleConfiguration + mappedConf.substring(1)};
                             } else if (mappedConf != null && mappedConf.equals("@")) {
@@ -333,28 +331,26 @@ public class DefaultDependencyDescriptor implements DependencyDescriptor {
                         }
                     }
                 }
-                return (String[]) intersectedDepConfs
-                        .toArray(new String[intersectedDepConfs.size()]);
+                return intersectedDepConfs.toArray(new String[intersectedDepConfs.size()]);
             } else if (c instanceof ConfigurationGroup) {
                 ConfigurationGroup group = (ConfigurationGroup) c;
-                Set /* <String> */groupDepConfs = new HashSet();
-                String[] members = group.getMembersConfigurationNames();
-                for (int i = 0; i < members.length; i++) {
-                    Collection depConfs = getDependencyConfigurationsIncludingExtending(members[i],
-                        requestedConfiguration);
+                Set<String> groupDepConfs = new HashSet<>();
+                for (String member : group.getMembersConfigurationNames()) {
+                    Collection<String> depConfs = getDependencyConfigurationsIncludingExtending(
+                        member, requestedConfiguration);
                     groupDepConfs.addAll(depConfs);
                 }
-                return (String[]) groupDepConfs.toArray(new String[groupDepConfs.size()]);
+                return groupDepConfs.toArray(new String[groupDepConfs.size()]);
             }
         }
 
-        List confsList = (List) confs.get(moduleConfiguration);
+        List<String> confsList = confs.get(moduleConfiguration);
         if (confsList == null) {
             // there is no mapping defined for this configuration, add the 'other' mappings.
-            confsList = (List) confs.get("%");
+            confsList = confs.get("%");
         }
-        List defConfs = (List) confs.get("*");
-        Collection ret = new LinkedHashSet();
+        List<String> defConfs = confs.get("*");
+        Collection<String> ret = new LinkedHashSet<>();
         if (confsList != null) {
             ret.addAll(confsList);
         }
@@ -362,9 +358,8 @@ public class DefaultDependencyDescriptor implements DependencyDescriptor {
             ret.addAll(defConfs);
         }
 
-        Collection replacedRet = new LinkedHashSet();
-        for (Iterator iter = ret.iterator(); iter.hasNext();) {
-            String c = (String) iter.next();
+        Collection<String> replacedRet = new LinkedHashSet<>();
+        for (String c : ret) {
             String replacedConf = replaceSelfFallbackPattern(c, moduleConfiguration);
             if (replacedConf == null) {
                 replacedConf = replaceThisFallbackPattern(c, requestedConfiguration);
@@ -376,31 +371,29 @@ public class DefaultDependencyDescriptor implements DependencyDescriptor {
         }
         ret = replacedRet;
         if (ret.remove("*")) {
-            StringBuffer r = new StringBuffer("*");
+            StringBuilder r = new StringBuilder("*");
             // merge excluded configurations as one conf like *!A!B
-            for (Iterator iter = ret.iterator(); iter.hasNext();) {
-                String c = (String) iter.next();
+            for (String c : ret) {
                 if (c.startsWith("!")) {
                     r.append(c);
                 }
             }
             return new String[] {r.toString()};
         }
-        return (String[]) ret.toArray(new String[ret.size()]);
+        return ret.toArray(new String[ret.size()]);
     }
 
-    private Collection getDependencyConfigurationsIncludingExtending(String conf,
+    private Collection<String> getDependencyConfigurationsIncludingExtending(String conf,
             String requestedConfiguration) {
-        Set/* <String> */allDepConfs = new LinkedHashSet();
+        Set<String> allDepConfs = new LinkedHashSet<>();
         allDepConfs
                 .addAll(Arrays.asList(getDependencyConfigurations(conf, requestedConfiguration)));
 
-        Collection extendingConfs = Configuration.findConfigurationExtending(conf,
+        Collection<Configuration> extendingConfs = Configuration.findConfigurationExtending(conf,
             md.getConfigurations());
-        for (Iterator it = extendingConfs.iterator(); it.hasNext();) {
-            Configuration extendingConf = (Configuration) it.next();
-            allDepConfs.addAll(Arrays.asList(getDependencyConfigurations(extendingConf.getName(),
-                requestedConfiguration)));
+        for (Configuration extendingConf : extendingConfs) {
+            allDepConfs.addAll(Arrays.asList(
+                getDependencyConfigurations(extendingConf.getName(), requestedConfiguration)));
         }
         return allDepConfs;
     }
@@ -433,10 +426,10 @@ public class DefaultDependencyDescriptor implements DependencyDescriptor {
         if (matcher.matches()) {
             String mappedConf = moduleConfiguration;
             if (matcher.group(1) != null) {
-                mappedConf = mappedConf + matcher.group(1);
+                mappedConf += matcher.group(1);
             }
             if (matcher.group(2) != null) {
-                mappedConf = mappedConf + matcher.group(2);
+                mappedConf += matcher.group(2);
             }
             return mappedConf;
         }
@@ -444,40 +437,42 @@ public class DefaultDependencyDescriptor implements DependencyDescriptor {
     }
 
     public String[] getDependencyConfigurations(String[] moduleConfigurations) {
-        Set confs = new LinkedHashSet();
-        for (int i = 0; i < moduleConfigurations.length; i++) {
-            confs.addAll(Arrays.asList(getDependencyConfigurations(moduleConfigurations[i])));
+        Set<String> confs = new LinkedHashSet<>();
+        for (String moduleConfiguration : moduleConfigurations) {
+            confs.addAll(Arrays.asList(getDependencyConfigurations(moduleConfiguration)));
         }
         if (confs.contains("*")) {
             return new String[] {"*"};
         }
-        return (String[]) confs.toArray(new String[confs.size()]);
+        return confs.toArray(new String[confs.size()]);
     }
 
     public DependencyArtifactDescriptor[] getDependencyArtifacts(String moduleConfiguration) {
-        Collection artifacts = getCollectionForConfiguration(moduleConfiguration,
-            dependencyArtifacts);
-        return (DependencyArtifactDescriptor[]) artifacts
-                .toArray(new DependencyArtifactDescriptor[artifacts.size()]);
+        Collection<DependencyArtifactDescriptor> artifacts = getCollectionForConfiguration(
+            moduleConfiguration, dependencyArtifacts);
+        return artifacts.toArray(new DependencyArtifactDescriptor[artifacts.size()]);
     }
 
     public IncludeRule[] getIncludeRules(String moduleConfiguration) {
-        Collection rules = getCollectionForConfiguration(moduleConfiguration, includeRules);
-        return (IncludeRule[]) rules.toArray(new IncludeRule[rules.size()]);
+        Collection<IncludeRule> rules = getCollectionForConfiguration(moduleConfiguration,
+            includeRules);
+        return rules.toArray(new IncludeRule[rules.size()]);
     }
 
     public ExcludeRule[] getExcludeRules(String moduleConfiguration) {
-        Collection rules = getCollectionForConfiguration(moduleConfiguration, excludeRules);
-        return (ExcludeRule[]) rules.toArray(new ExcludeRule[rules.size()]);
+        Collection<ExcludeRule> rules = getCollectionForConfiguration(moduleConfiguration,
+            excludeRules);
+        return rules.toArray(new ExcludeRule[rules.size()]);
     }
 
-    private Set getCollectionForConfiguration(String moduleConfiguration, Map collectionMap) {
+    private <T> Set<T> getCollectionForConfiguration(String moduleConfiguration,
+            Map<String, Collection<T>> collectionMap) {
         if (collectionMap == null || collectionMap.isEmpty()) {
             return Collections.emptySet();
         }
-        Collection artifacts = (Collection) collectionMap.get(moduleConfiguration);
-        Collection defArtifacts = (Collection) collectionMap.get("*");
-        Set ret = new LinkedHashSet();
+        Collection<T> artifacts = collectionMap.get(moduleConfiguration);
+        Collection<T> defArtifacts = collectionMap.get("*");
+        Set<T> ret = new LinkedHashSet<>();
         if (artifacts != null) {
             ret.addAll(artifacts);
         }
@@ -488,59 +483,56 @@ public class DefaultDependencyDescriptor implements DependencyDescriptor {
     }
 
     public DependencyArtifactDescriptor[] getDependencyArtifacts(String[] moduleConfigurations) {
-        Set artifacts = new LinkedHashSet();
-        for (int i = 0; i < moduleConfigurations.length; i++) {
-            artifacts.addAll(Arrays.asList(getDependencyArtifacts(moduleConfigurations[i])));
+        Set<DependencyArtifactDescriptor> artifacts = new LinkedHashSet<>();
+        for (String moduleConfiguration : moduleConfigurations) {
+            artifacts.addAll(Arrays.asList(getDependencyArtifacts(moduleConfiguration)));
         }
-        return (DependencyArtifactDescriptor[]) artifacts
-                .toArray(new DependencyArtifactDescriptor[artifacts.size()]);
+        return artifacts.toArray(new DependencyArtifactDescriptor[artifacts.size()]);
     }
 
     public IncludeRule[] getIncludeRules(String[] moduleConfigurations) {
-        Set rules = new LinkedHashSet();
-        for (int i = 0; i < moduleConfigurations.length; i++) {
-            rules.addAll(Arrays.asList(getIncludeRules(moduleConfigurations[i])));
+        Set<IncludeRule> rules = new LinkedHashSet<>();
+        for (String moduleConfiguration : moduleConfigurations) {
+            rules.addAll(Arrays.asList(getIncludeRules(moduleConfiguration)));
         }
-        return (IncludeRule[]) rules.toArray(new IncludeRule[rules.size()]);
+        return rules.toArray(new IncludeRule[rules.size()]);
     }
 
     public ExcludeRule[] getExcludeRules(String[] moduleConfigurations) {
-        Set rules = new LinkedHashSet();
-        for (int i = 0; i < moduleConfigurations.length; i++) {
-            rules.addAll(Arrays.asList(getExcludeRules(moduleConfigurations[i])));
+        Set<ExcludeRule> rules = new LinkedHashSet<>();
+        for (String moduleConfiguration : moduleConfigurations) {
+            rules.addAll(Arrays.asList(getExcludeRules(moduleConfiguration)));
         }
-        return (ExcludeRule[]) rules.toArray(new ExcludeRule[rules.size()]);
+        return rules.toArray(new ExcludeRule[rules.size()]);
     }
 
     public DependencyArtifactDescriptor[] getAllDependencyArtifacts() {
         if (dependencyArtifacts == null) {
             return new DependencyArtifactDescriptor[0];
         }
-        Set ret = mergeAll(dependencyArtifacts);
-        return (DependencyArtifactDescriptor[]) ret.toArray(new DependencyArtifactDescriptor[ret
-                .size()]);
+        Set<DependencyArtifactDescriptor> ret = mergeAll(dependencyArtifacts);
+        return ret.toArray(new DependencyArtifactDescriptor[ret.size()]);
     }
 
     public IncludeRule[] getAllIncludeRules() {
         if (includeRules == null) {
             return new IncludeRule[0];
         }
-        Set ret = mergeAll(includeRules);
-        return (IncludeRule[]) ret.toArray(new IncludeRule[ret.size()]);
+        Set<IncludeRule> ret = mergeAll(includeRules);
+        return ret.toArray(new IncludeRule[ret.size()]);
     }
 
     public ExcludeRule[] getAllExcludeRules() {
         if (excludeRules == null) {
             return new ExcludeRule[0];
         }
-        Set ret = mergeAll(excludeRules);
-        return (ExcludeRule[]) ret.toArray(new ExcludeRule[ret.size()]);
+        Set<ExcludeRule> ret = mergeAll(excludeRules);
+        return ret.toArray(new ExcludeRule[ret.size()]);
     }
 
-    private Set mergeAll(Map artifactsMap) {
-        Set ret = new LinkedHashSet();
-        for (Iterator it = artifactsMap.values().iterator(); it.hasNext();) {
-            Collection artifacts = (Collection) it.next();
+    private <T> Set<T> mergeAll(Map<String, Collection<T>> artifactsMap) {
+        Set<T> ret = new LinkedHashSet<>();
+        for (Collection<T> artifacts : artifactsMap.values()) {
             ret.addAll(artifacts);
         }
         return ret;
@@ -561,17 +553,16 @@ public class DefaultDependencyDescriptor implements DependencyDescriptor {
             }
             if (config instanceof ConfigurationGroup) {
                 ConfigurationGroup group = (ConfigurationGroup) config;
-                String[] members = group.getMembersConfigurationNames();
-                for (int i = 0; i < members.length; i++) {
-                    addDependencyConfiguration(members[i], depConf);
+                for (String member : group.getMembersConfigurationNames()) {
+                    addDependencyConfiguration(member, depConf);
                 }
                 return;
             }
         }
 
-        List confsList = (List) confs.get(masterConf);
+        List<String> confsList = confs.get(masterConf);
         if (confsList == null) {
-            confsList = new ArrayList();
+            confsList = new ArrayList<>();
             confs.put(masterConf, confsList);
         }
         if (!confsList.contains(depConf)) {
@@ -591,10 +582,11 @@ public class DefaultDependencyDescriptor implements DependencyDescriptor {
         addObjectToConfiguration(masterConf, rule, getExcludeRules());
     }
 
-    private void addObjectToConfiguration(String callerConf, Object toAdd, Map confsMap) {
-        Collection col = (Collection) confsMap.get(callerConf);
+    private <T> void addObjectToConfiguration(String callerConf, T toAdd,
+            Map<String, Collection<T>> confsMap) {
+        Collection<T> col = confsMap.get(callerConf);
         if (col == null) {
-            col = new ArrayList();
+            col = new ArrayList<>();
             confsMap.put(callerConf, col);
         }
         col.add(toAdd);
@@ -613,9 +605,8 @@ public class DefaultDependencyDescriptor implements DependencyDescriptor {
             artifactId = NameSpaceHelper
                     .transform(artifactId, namespace.getFromSystemTransformer());
         }
-        ExcludeRule[] rules = getExcludeRules(moduleConfigurations);
-        for (int i = 0; i < rules.length; i++) {
-            if (MatcherHelper.matches(rules[i].getMatcher(), rules[i].getId(), artifactId)) {
+        for (ExcludeRule rule : getExcludeRules(moduleConfigurations)) {
+            if (MatcherHelper.matches(rule.getMatcher(), rule.getId(), artifactId)) {
                 return true;
             }
         }
@@ -657,7 +648,7 @@ public class DefaultDependencyDescriptor implements DependencyDescriptor {
         return revId.getAttribute(attName);
     }
 
-    public Map getAttributes() {
+    public Map<String, String> getAttributes() {
         return revId.getAttributes();
     }
 
@@ -665,11 +656,11 @@ public class DefaultDependencyDescriptor implements DependencyDescriptor {
         return revId.getExtraAttribute(attName);
     }
 
-    public Map getExtraAttributes() {
+    public Map<String, String> getExtraAttributes() {
         return revId.getExtraAttributes();
     }
 
-    public Map getQualifiedExtraAttributes() {
+    public Map<String, String> getQualifiedExtraAttributes() {
         return revId.getQualifiedExtraAttributes();
     }
 
@@ -677,35 +668,36 @@ public class DefaultDependencyDescriptor implements DependencyDescriptor {
         return asSystem;
     }
 
-    private void setDependencyArtifacts(Map dependencyArtifacts) {
+    private void setDependencyArtifacts(
+            Map<String, Collection<DependencyArtifactDescriptor>> dependencyArtifacts) {
         this.dependencyArtifacts = dependencyArtifacts;
     }
 
-    private Map getDependencyArtifacts() {
+    private Map<String, Collection<DependencyArtifactDescriptor>> getDependencyArtifacts() {
         if (dependencyArtifacts == null) {
-            dependencyArtifacts = new LinkedHashMap();
+            dependencyArtifacts = new LinkedHashMap<>();
         }
         return dependencyArtifacts;
     }
 
-    private void setIncludeRules(Map includeRules) {
+    private void setIncludeRules(Map<String, Collection<IncludeRule>> includeRules) {
         this.includeRules = includeRules;
     }
 
-    private Map getIncludeRules() {
+    private Map<String, Collection<IncludeRule>> getIncludeRules() {
         if (includeRules == null) {
-            includeRules = new LinkedHashMap();
+            includeRules = new LinkedHashMap<>();
         }
         return includeRules;
     }
 
-    private void setExcludeRules(Map excludeRules) {
+    private void setExcludeRules(Map<String, Collection<ExcludeRule>> excludeRules) {
         this.excludeRules = excludeRules;
     }
 
-    private Map getExcludeRules() {
+    private Map<String, Collection<ExcludeRule>> getExcludeRules() {
         if (excludeRules == null) {
-            excludeRules = new LinkedHashMap();
+            excludeRules = new LinkedHashMap<>();
         }
         return excludeRules;
     }

http://git-wip-us.apache.org/repos/asf/ant-ivy/blob/69207179/src/java/org/apache/ivy/core/module/descriptor/DefaultExcludeRule.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/ivy/core/module/descriptor/DefaultExcludeRule.java b/src/java/org/apache/ivy/core/module/descriptor/DefaultExcludeRule.java
index 52acf82..e99dd0c 100644
--- a/src/java/org/apache/ivy/core/module/descriptor/DefaultExcludeRule.java
+++ b/src/java/org/apache/ivy/core/module/descriptor/DefaultExcludeRule.java
@@ -24,7 +24,7 @@ import org.apache.ivy.plugins.matcher.PatternMatcher;
 
 public class DefaultExcludeRule extends AbstractIncludeExcludeRule implements ExcludeRule {
 
-    public DefaultExcludeRule(ArtifactId aid, PatternMatcher matcher, Map extraAttributes) {
+    public DefaultExcludeRule(ArtifactId aid, PatternMatcher matcher, Map<String, String> extraAttributes) {
         super(aid, matcher, extraAttributes);
     }
 

http://git-wip-us.apache.org/repos/asf/ant-ivy/blob/69207179/src/java/org/apache/ivy/core/module/descriptor/DefaultExtendsDescriptor.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/ivy/core/module/descriptor/DefaultExtendsDescriptor.java b/src/java/org/apache/ivy/core/module/descriptor/DefaultExtendsDescriptor.java
index 1900a05..33753a0 100644
--- a/src/java/org/apache/ivy/core/module/descriptor/DefaultExtendsDescriptor.java
+++ b/src/java/org/apache/ivy/core/module/descriptor/DefaultExtendsDescriptor.java
@@ -29,7 +29,7 @@ public class DefaultExtendsDescriptor implements ExtendsDescriptor {
 
     private String location;
 
-    private List extendsTypes;
+    private final List<String> extendsTypes;
 
     private boolean local;
 
@@ -42,7 +42,7 @@ public class DefaultExtendsDescriptor implements ExtendsDescriptor {
         this.parent = parent;
         this.location = location;
         this.local = local;
-        this.extendsTypes = new ArrayList(types.length);
+        this.extendsTypes = new ArrayList<>(types.length);
         extendsTypes.addAll(Arrays.asList(types));
     }
 
@@ -63,7 +63,7 @@ public class DefaultExtendsDescriptor implements ExtendsDescriptor {
     }
 
     public String[] getExtendsTypes() {
-        return (String[]) extendsTypes.toArray(new String[extendsTypes.size()]);
+        return extendsTypes.toArray(new String[extendsTypes.size()]);
     }
 
     public boolean isAllInherited() {

http://git-wip-us.apache.org/repos/asf/ant-ivy/blob/69207179/src/java/org/apache/ivy/core/module/descriptor/DefaultIncludeRule.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/ivy/core/module/descriptor/DefaultIncludeRule.java b/src/java/org/apache/ivy/core/module/descriptor/DefaultIncludeRule.java
index 87ddc58..82828de 100644
--- a/src/java/org/apache/ivy/core/module/descriptor/DefaultIncludeRule.java
+++ b/src/java/org/apache/ivy/core/module/descriptor/DefaultIncludeRule.java
@@ -24,7 +24,7 @@ import org.apache.ivy.plugins.matcher.PatternMatcher;
 
 public class DefaultIncludeRule extends AbstractIncludeExcludeRule implements IncludeRule {
 
-    public DefaultIncludeRule(ArtifactId aid, PatternMatcher matcher, Map extraAttributes) {
+    public DefaultIncludeRule(ArtifactId aid, PatternMatcher matcher, Map<String, String> extraAttributes) {
         super(aid, matcher, extraAttributes);
     }