You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by cz...@apache.org on 2015/03/04 13:49:54 UTC

svn commit: r1663974 - in /felix/trunk/bundleplugin/src/main: java/org/apache/felix/bundleplugin/ java/org/apache/felix/bundleplugin/baseline/ resources/META-INF/m2e/

Author: cziegeler
Date: Wed Mar  4 12:49:54 2015
New Revision: 1663974

URL: http://svn.apache.org/r1663974
Log:
FELIX-4822 : Create markers in m2e for baseline warnings/errors - revert changes for now

Removed:
    felix/trunk/bundleplugin/src/main/resources/META-INF/m2e/
Modified:
    felix/trunk/bundleplugin/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java
    felix/trunk/bundleplugin/src/main/java/org/apache/felix/bundleplugin/baseline/AbstractBaselinePlugin.java
    felix/trunk/bundleplugin/src/main/java/org/apache/felix/bundleplugin/baseline/BaselinePlugin.java

Modified: felix/trunk/bundleplugin/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java?rev=1663974&r1=1663973&r2=1663974&view=diff
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java (original)
+++ felix/trunk/bundleplugin/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java Wed Mar  4 12:49:54 2015
@@ -524,7 +524,7 @@ public class BundlePlugin extends Abstra
                 {
                     sb.append(",");
                 }
-                sb.append(sb);
+                sb.append(s);
             }
             properties.setProperty(Analyzer.PLUGIN, sb.toString());
         }

Modified: felix/trunk/bundleplugin/src/main/java/org/apache/felix/bundleplugin/baseline/AbstractBaselinePlugin.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/org/apache/felix/bundleplugin/baseline/AbstractBaselinePlugin.java?rev=1663974&r1=1663973&r2=1663974&view=diff
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/org/apache/felix/bundleplugin/baseline/AbstractBaselinePlugin.java (original)
+++ felix/trunk/bundleplugin/src/main/java/org/apache/felix/bundleplugin/baseline/AbstractBaselinePlugin.java Wed Mar  4 12:49:54 2015
@@ -232,15 +232,6 @@ abstract class AbstractBaselinePlugin
 
         try
         {
-            this.reportErrors(infos);
-        }
-        catch ( final IOException ioe )
-        {
-            throw new MojoExecutionException("Unable to parse baselining information.", ioe);
-        }
-
-        try
-        {
             // go!
             context = this.init(context);
             startBaseline( context, generationDate, project.getArtifactId(), project.getVersion(), previousArtifact.getVersion() );
@@ -424,12 +415,6 @@ abstract class AbstractBaselinePlugin
 
     protected abstract void endBaseline(final Object context);
 
-    protected void reportErrors(final Info[] infos)
-    throws IOException
-    {
-        // nothing to do, will be overridden by baseline plugin
-    }
-
     // internals
 
     private Jar getCurrentBundle()

Modified: felix/trunk/bundleplugin/src/main/java/org/apache/felix/bundleplugin/baseline/BaselinePlugin.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/org/apache/felix/bundleplugin/baseline/BaselinePlugin.java?rev=1663974&r1=1663973&r2=1663974&view=diff
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/org/apache/felix/bundleplugin/baseline/BaselinePlugin.java (original)
+++ felix/trunk/bundleplugin/src/main/java/org/apache/felix/bundleplugin/baseline/BaselinePlugin.java Wed Mar  4 12:49:54 2015
@@ -21,21 +21,12 @@ package org.apache.felix.bundleplugin.ba
 import java.io.File;
 import java.io.FileWriter;
 import java.io.IOException;
-import java.io.LineNumberReader;
-import java.io.StringReader;
 import java.util.Map;
 import java.util.Map.Entry;
 
-import org.codehaus.plexus.util.FileUtils;
-import org.codehaus.plexus.util.IOUtil;
 import org.codehaus.plexus.util.xml.PrettyPrintXMLWriter;
 import org.codehaus.plexus.util.xml.XMLWriter;
-import org.sonatype.plexus.build.incremental.BuildContext;
 
-import aQute.bnd.differ.Baseline.Info;
-import aQute.bnd.service.diff.Delta;
-import aQute.bnd.service.diff.Diff;
-import aQute.bnd.service.diff.Type;
 import aQute.bnd.version.Version;
 
 /**
@@ -67,11 +58,6 @@ public final class BaselinePlugin
      */
     private boolean logResults;
 
-    /**
-     * @component
-     */
-    private BuildContext buildContext;
-
     private static final class Context {
         public FileWriter writer;
         public XMLWriter xmlWriter;
@@ -301,225 +287,4 @@ public final class BaselinePlugin
         xmlWriter.writeText( value );
         xmlWriter.endElement();
     }
-
-    @Override
-    protected void reportErrors(final Info[] infos)
-    throws IOException
-    {
-        for ( final Info info : infos )
-        {
-            // clear previous messages
-            final FileMarker packageMarker = findMarkerLocationForPackage(info.packageName);
-
-            if ( info.suggestedVersion != null )
-            {
-                if ( info.newerVersion.compareTo( info.suggestedVersion ) > 0 )
-                {
-                    final String msg = "Excessive version increase: detected " + info.newerVersion + ", suggested " + info.suggestedVersion;
-
-                    this.buildContext.addMessage(packageMarker.file, packageMarker.line, packageMarker.col, msg, BuildContext.SEVERITY_WARNING, null);
-                }
-                else if ( info.newerVersion.compareTo( info.suggestedVersion ) < 0 )
-                {
-                    final String msg = "Version increase required: detected " + info.newerVersion + ", suggested " + info.suggestedVersion;
-
-                    this.buildContext.addMessage(packageMarker.file, packageMarker.line, packageMarker.col, msg, BuildContext.SEVERITY_ERROR, null);
-                }
-            }
-
-            if ( info.packageDiff.getDelta() == Delta.UNCHANGED && info.newerVersion.compareTo( info.suggestedVersion ) != 0 )
-            {
-                final String msg = "Version has been increased but analysis detected no changes: detected " + info.newerVersion + ", suggested " + info.suggestedVersion;
-                this.buildContext.addMessage(packageMarker.file, packageMarker.line, packageMarker.col, msg, BuildContext.SEVERITY_WARNING, null);
-            }
-            generateStructuralChangeMarkers(info);
-        }
-    }
-
-    private File getPackageFile(final String packageName)
-    {
-        final String sourceDir = this.project.getBuild().getSourceDirectory();
-        final File packageDir = new File((sourceDir + '/' + packageName.replace('.', '/')).replace('/', File.separatorChar));
-
-        return packageDir;
-    }
-
-    private File getSourceFile(final String className)
-    {
-        final String sourceDir = this.project.getBuild().getSourceDirectory();
-        final File packageDir = new File((sourceDir + '/' + className.replace('.', '/') + ".java").replace('/', File.separatorChar));
-
-        return packageDir;
-    }
-
-    private static final class FileMarker
-    {
-        public File file;
-        public int  line;
-        public int  col;
-    }
-
-    /**
-     * Find marker location for a package
-     * and clear old markers.
-     */
-    private FileMarker findMarkerLocationForPackage(final String packageName)
-    throws IOException
-    {
-        final File packageDir = getPackageFile(packageName);
-        this.buildContext.removeMessages(packageDir);
-
-        final File packageInfoFile = new File(packageDir, "packageinfo");
-        this.buildContext.removeMessages(packageInfoFile);
-
-        final File packageInfoJavaFile = new File(packageDir, "package-info.java");
-        this.buildContext.removeMessages(packageInfoJavaFile);
-
-        // package-info.java has precedence
-        if ( packageInfoJavaFile != null && packageInfoJavaFile.exists() )
-        {
-            return findVersionLocationInPackageInfoJava(packageInfoJavaFile);
-        }
-        // packageinfo next
-        if ( packageInfoFile != null && packageInfoFile.exists() )
-        {
-            return findVersionLocationInPackageInfo(packageInfoFile);
-        }
-
-        final FileMarker defaultMarker = new FileMarker();
-        defaultMarker.file = packageDir;
-
-        return defaultMarker;
-    }
-
-    private FileMarker findVersionLocationInPackageInfo(final File file)
-    throws IOException
-    {
-        final FileMarker marker = new FileMarker();
-        marker.file = file;
-        final String contents = FileUtils.fileRead(file);
-        final LineNumberReader reader = new LineNumberReader(new StringReader(contents));
-        try
-        {
-            String line;
-            while ( (line = reader.readLine()) != null )
-            {
-                final int pos = line.indexOf("version ");
-                if ( pos > -1 )
-                {
-                    marker.col = pos;
-                    marker.line = reader.getLineNumber();
-
-                    break;
-                }
-            }
-        }
-        finally
-        {
-            IOUtil.close(reader);
-        }
-        return marker;
-    }
-
-    private FileMarker findVersionLocationInPackageInfoJava(final File file)
-    throws IOException
-    {
-        final FileMarker marker = new FileMarker();
-        marker.file = file;
-        final String contents = FileUtils.fileRead(file);
-        final LineNumberReader reader = new LineNumberReader(new StringReader(contents));
-        try
-        {
-            String line;
-            while ( (line = reader.readLine()) != null )
-            {
-                final int pos = line.indexOf("@Version");
-                if ( pos > -1 )
-                {
-                    marker.col = pos;
-                    marker.line = reader.getLineNumber();
-
-                    break;
-                }
-            }
-        }
-        finally
-        {
-            IOUtil.close(reader);
-        }
-        return marker;
-    }
-
-   private void generateStructuralChangeMarkers(final Info baselineInfo)
-   {
-        final Delta packageDelta = baselineInfo.packageDiff.getDelta();
-
-        // Iterate into the package member diffs
-        for (final Diff pkgMemberDiff : baselineInfo.packageDiff.getChildren())
-        {
-            // only deal with interfaces and classes
-            if ( pkgMemberDiff.getType() != Type.INTERFACE && pkgMemberDiff.getType() != Type.CLASS )
-            {
-                continue;
-            }
-
-            // clear old marker
-            final String className = pkgMemberDiff.getName();
-            final File classFile = this.getSourceFile(className);
-            this.buildContext.removeMessages(classFile);
-
-            // Skip deltas that have lesser significance than the overall package delta
-            if (pkgMemberDiff.getDelta().ordinal() < packageDelta.ordinal())
-            {
-                continue;
-            }
-
-            if (Delta.ADDED == pkgMemberDiff.getDelta())
-            {
-                // TODO
-            }
-            else if (Delta.REMOVED == pkgMemberDiff.getDelta())
-            {
-                // TODO
-            }
-            else
-            {
-                // Iterate into the class member diffs
-                for (final Diff classMemberDiff : pkgMemberDiff.getChildren())
-                {
-                    // Skip deltas that have lesser significance than the overall package delta (again)
-                    if (classMemberDiff.getDelta().ordinal() < packageDelta.ordinal())
-                        continue;
-
-                    if (Delta.ADDED == classMemberDiff.getDelta())
-                    {
-                        addAddedMarker(classFile, classMemberDiff);
-                    }
-                    else if (Delta.REMOVED == classMemberDiff.getDelta())
-                    {
-                        addRemovedMarker(classFile, classMemberDiff);
-                    }
-                    else if (Delta.CHANGED == classMemberDiff.getDelta())
-                    {
-                        addChangedMarker(classFile, classMemberDiff);
-                    }
-                }
-            }
-        }
-    }
-
-   private void addAddedMarker(final File classFile, final Diff diff)
-   {
-       this.buildContext.addMessage(classFile, 0, 0, diff.getType() + " " + diff.getName() + " has been added.", BuildContext.SEVERITY_ERROR, null);
-   }
-
-   private void addRemovedMarker(final File classFile, final Diff diff)
-   {
-       this.buildContext.addMessage(classFile, 0, 0, diff.getType() + " " + diff.getName() + " has been removed.", BuildContext.SEVERITY_ERROR, null);
-   }
-
-   private void addChangedMarker(final File classFile, final Diff diff)
-   {
-       this.buildContext.addMessage(classFile, 0, 0, diff.getType() + " " + diff.getName() + " has been changed.", BuildContext.SEVERITY_ERROR, null);
-   }
 }