You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by ri...@apache.org on 2011/02/16 18:40:57 UTC

svn commit: r1071322 - /felix/trunk/framework/src/main/java/org/apache/felix/framework/resolver/ResolverImpl.java

Author: rickhall
Date: Wed Feb 16 17:40:56 2011
New Revision: 1071322

URL: http://svn.apache.org/viewvc?rev=1071322&view=rev
Log:
Improved error messages must handle non-package dependencies and
need to report the conflicting requirement for fragments. (FELIX-2841)

Modified:
    felix/trunk/framework/src/main/java/org/apache/felix/framework/resolver/ResolverImpl.java

Modified: felix/trunk/framework/src/main/java/org/apache/felix/framework/resolver/ResolverImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/resolver/ResolverImpl.java?rev=1071322&r1=1071321&r2=1071322&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/apache/felix/framework/resolver/ResolverImpl.java (original)
+++ felix/trunk/framework/src/main/java/org/apache/felix/framework/resolver/ResolverImpl.java Wed Feb 16 17:40:56 2011
@@ -891,8 +891,8 @@ public class ResolverImpl implements Res
                             + toStringBlame(sourceBlame)
                             + "\n\nChain 2:\n"
                             + toStringBlame(blame),
-                            null,
-                            null);
+                            module,
+                            blame.m_reqs.get(0));
                         m_logger.log(
                             Logger.LOG_DEBUG,
                             "Candidate permutation failed due to a conflict with a "
@@ -1526,31 +1526,53 @@ public class ResolverImpl implements Res
                 sb.append(req.getModule().getSymbolicName());
                 sb.append(" [");
                 sb.append(req.getModule().toString());
-                sb.append("]\n    import: ");
+                sb.append("]\n");
+                if (req.getNamespace().equals(Capability.PACKAGE_NAMESPACE))
+                {
+                    sb.append("    import: ");
+                }
+                else
+                {
+                    sb.append("    require: ");
+                }
                 sb.append(req.getFilter().toString());
                 sb.append("\n     |");
-                sb.append("\n    export: ");
+                if (req.getNamespace().equals(Capability.PACKAGE_NAMESPACE))
+                {
+                    sb.append("\n    export: ");
+                }
+                else
+                {
+                    sb.append("\n    provide: ");
+                }
                 if ((i + 1) < blame.m_reqs.size())
                 {
-                    Capability export = Util.getSatisfyingCapability(
+                    Capability cap = Util.getSatisfyingCapability(
                         blame.m_reqs.get(i + 1).getModule(),
                         blame.m_reqs.get(i));
-                    sb.append(export.getAttribute(Capability.PACKAGE_ATTR).toString());
-                    Capability usedCap;
-                    if ((i + 2) < blame.m_reqs.size())
+                    if (cap.getNamespace().equals(Capability.PACKAGE_NAMESPACE))
                     {
-                        usedCap = Util.getSatisfyingCapability(
-                            blame.m_reqs.get(i + 2).getModule(),
-                            blame.m_reqs.get(i + 1));
+                        sb.append(cap.getAttribute(Capability.PACKAGE_ATTR).toString());
+                        Capability usedCap;
+                        if ((i + 2) < blame.m_reqs.size())
+                        {
+                            usedCap = Util.getSatisfyingCapability(
+                                blame.m_reqs.get(i + 2).getModule(),
+                                blame.m_reqs.get(i + 1));
+                        }
+                        else
+                        {
+                            usedCap = Util.getSatisfyingCapability(
+                                blame.m_cap.getModule(),
+                                blame.m_reqs.get(i + 1));
+                        }
+                        sb.append("; uses:=");
+                        sb.append(usedCap.getAttribute(Capability.PACKAGE_ATTR).getValue());
                     }
                     else
                     {
-                        usedCap = Util.getSatisfyingCapability(
-                            blame.m_cap.getModule(),
-                            blame.m_reqs.get(i + 1));
+                        sb.append(cap);
                     }
-                    sb.append("; uses:=");
-                    sb.append(usedCap.getAttribute(Capability.PACKAGE_ATTR).getValue());
                     sb.append("\n");
                 }
                 else