This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

View | Details | Raw Unified | Return to bug 206365
Collapse All | Expand All

(-)a/o.n.bootstrap/src/org/netbeans/Util.java (+24 lines)
Lines 49-54 Link Here
49
import java.util.ArrayList;
49
import java.util.ArrayList;
50
import java.util.logging.Level;
50
import java.util.logging.Level;
51
import java.util.logging.Logger;
51
import java.util.logging.Logger;
52
import java.util.regex.Matcher;
53
import java.util.regex.Pattern;
52
import org.openide.util.*;
54
import org.openide.util.*;
53
import org.openide.modules.*;
55
import org.openide.modules.*;
54
56
Lines 340-345 Link Here
340
                    }
342
                    }
341
                }
343
                }
342
            }
344
            }
345
            // #206365: handle specially OSGi bundles
346
            if (m.getManifest().getMainAttributes().getValue("Bundle-SymbolicName") != null) {
347
                String requireBundle;
348
                if ((requireBundle = m.getManifest().getMainAttributes().getValue("Require-Bundle")) != null) {
349
                    StringBuilder sb = new StringBuilder();
350
                    // http://stackoverflow.com/questions/1757065/java-splitting-a-comma-separated-string-but-ignoring-commas-in-quotes
351
                    for (String dep : requireBundle.split(",(?=([^\"]*\"[^\"]*\")*[^\"]*$)")) {
352
                        Matcher matcher = Pattern.compile("([^;]+)(.*)").matcher(dep);
353
                        if (!matcher.matches()) {
354
                            throw new IllegalStateException("Could not parse dependency: " + dep + " in " + m);
355
                        }
356
                        String requiredBundleName = matcher.group(1); // dep CNB
357
                        if (requiredBundleName != null && requiredBundleName.length() > 0) {
358
                            Module m2 = modulesByName.get(requiredBundleName);
359
                            if (m2 != null) {
360
                                s.add(m2);
361
                            }
362
                        }
363
                    }
364
                }                
365
            }
366
            // end of #206365
343
            s.remove(m);
367
            s.remove(m);
344
            if (transitive) {
368
            if (transitive) {
345
                Set<Module> toAdd;
369
                Set<Module> toAdd;

Return to bug 206365