Package org.eclipse.equinox.region

Examples of org.eclipse.equinox.region.Region


    void load(RegionsType regionsType, RegionDigraph regionDigraph) throws BundleException, InvalidSyntaxException {
        BundleContext frameworkContext = framework.getBundleContext();
        for (RegionType regionType: regionsType.getRegion()) {
            String name = regionType.getName();
            log.debug("Creating region: " + name);
            Region region = regionDigraph.createRegion(name);
            for (RegionBundleType bundleType: regionType.getBundle()) {
                if (bundleType.getId() != null) {
                    region.addBundle(bundleType.getId());
                } else {
                    Bundle b = frameworkContext.getBundle(bundleType.getLocation());
                    region.addBundle(b);
                }
            }
        }
        for (FilterType filterType: regionsType.getFilter()) {
            Region from = regionDigraph.getRegion(filterType.getFrom());
            Region to = regionDigraph.getRegion(filterType.getTo());
            log.debug("Creating filter between " + from.getName() + " to " + to.getName());
            RegionFilterBuilder builder = regionDigraph.createRegionFilterBuilder();
            for (FilterBundleType bundleType: filterType.getBundle()) {
                String symbolicName = bundleType.getSymbolicName();
                String version = bundleType.getVersion();
                if (bundleType.getId() != null) {
View Full Code Here


        out.println("");
    }


    protected Region getRegion(RegionDigraph regionDigraph, String region) throws BundleException {
        Region r = regionDigraph.getRegion(region);
        if (r == null) {
            System.out.println("No region: " + region + ", creating it");
            r = regionDigraph.createRegion(region);
        }
        return r;
View Full Code Here

    @Argument(index = 2, name = "items", description = "The bundles by id and packages with version to allow.", required = false, multiValued = true)
    List<String> items;

    protected void doExecute(RegionDigraph regionDigraph) throws Exception {
        Region rFrom = getRegion(regionDigraph, fromRegion);
        Region rTo = getRegion(regionDigraph, toRegion);
        RegionFilterBuilder builder = regionDigraph.createRegionFilterBuilder();
        BundleContext framework = getBundleContext().getBundle(0).getBundleContext();
        if (items != null) {
            for (String item : items) {
                try {
View Full Code Here

        load();
    }

    @Override
    public void install(Bundle b, String regionName) throws BundleException {
        Region region = regionDigraph.getRegion(regionName);
        if (region == null) {
            region = regionDigraph.createRegion(regionName);
        }
        kernel.removeBundle(b);
        region.addBundle(b);
    }
View Full Code Here

    void load(RegionsType regionsType, RegionDigraph regionDigraph) throws BundleException, InvalidSyntaxException {
        BundleContext frameworkContext = framework.getBundleContext();
        for (RegionType regionType: regionsType.getRegion()) {
            String name = regionType.getName();
            log.debug("Creating region: " + name);
            Region region = regionDigraph.createRegion(name);
            for (RegionBundleType bundleType: regionType.getBundle()) {
                if (bundleType.getId() != null) {
                    region.addBundle(bundleType.getId());
                } else {
                    Bundle b = frameworkContext.getBundle(bundleType.getLocation());
                    region.addBundle(b);
                }
            }
        }
        for (FilterType filterType: regionsType.getFilter()) {
            Region from = regionDigraph.getRegion(filterType.getFrom());
            Region to = regionDigraph.getRegion(filterType.getTo());
            log.debug("Creating filter between " + from.getName() + " to " + to.getName());
            RegionFilterBuilder builder = regionDigraph.createRegionFilterBuilder();
            for (FilterBundleType bundleType: filterType.getBundle()) {
                String symbolicName = bundleType.getSymbolicName();
                String version = bundleType.getVersion();
                if (bundleType.getId() != null) {
View Full Code Here

        for (String name : policies.keySet()) {
            temp.createRegion(name);
        }
        // Dispatch bundles
        for (Map.Entry<String, Set<Long>> entry : bundles.entrySet()) {
            Region region = temp.getRegion(entry.getKey());
            for (long bundleId : entry.getValue()) {
                region.addBundle(bundleId);
            }
        }
        // Add policies
        for (Map.Entry<String, Map<String, Map<String, Set<String>>>> entry1 : policies.entrySet()) {
            Region region1 = temp.getRegion(entry1.getKey());
            for (Map.Entry<String, Map<String, Set<String>>> entry2 : entry1.getValue().entrySet()) {
                Region region2 = temp.getRegion(entry2.getKey());
                RegionFilterBuilder rfb = temp.createRegionFilterBuilder();
                for (Map.Entry<String, Set<String>> entry3 : entry2.getValue().entrySet()) {
                    for (String flt : entry3.getValue()) {
                        rfb.allow(entry3.getKey(), flt);
                    }
View Full Code Here

    }

    @Override
    public List<Capability> findProviders(Requirement requirement) {
        List<Capability> caps = new ArrayList<Capability>();
        Region requirerRegion = getRegion(requirement.getResource());
        if (requirerRegion != null) {
            Map<Requirement, Collection<Capability>> resMap =
                    repository.findProviders(Collections.singleton(requirement));
            Collection<Capability> res = resMap != null ? resMap.get(requirement) : null;
            if (res != null && !res.isEmpty()) {
                caps.addAll(res);
            } else if (globalRepository != null) {
                // Only bring in external resources for non optional requirements
                if (!RESOLUTION_OPTIONAL.equals(requirement.getDirectives().get(RESOLUTION_DIRECTIVE))) {
                    resMap = globalRepository.findProviders(Collections.singleton(requirement));
                    res = resMap != null ? resMap.get(requirement) : null;
                    if (res != null && !res.isEmpty()) {
                        caps.addAll(res);
                    }
                }
            }

            // Use the digraph to prune non visible capabilities
            Visitor visitor = new Visitor(caps);
            requirerRegion.visitSubgraph(visitor);
            Collection<Capability> allowed = visitor.getAllowed();
            caps.retainAll(allowed);
            // Handle cases where the same bundle is requested from both
            // a subsystem and one of its ascendant.  In such cases, we
            // need to remove the one from the child if it can view
View Full Code Here

            for (Region r : digraph.getRegions()) {
                for (RegionDigraph.FilteredRegion fr : digraph.getEdges(r)) {
                    String rt = flats.get(r.getName());
                    String rh = flats.get(fr.getRegion().getName());
                    if (!rh.equals(rt)) {
                        Region tail = flatDigraph.getRegion(rt);
                        Region head = flatDigraph.getRegion(rh);
                        RegionFilterBuilder rfb = flatDigraph.createRegionFilterBuilder();
                        for (Map.Entry<String, Collection<String>> entry : fr.getFilter().getSharingPolicy().entrySet()) {
                            // Discard osgi.identity namespace
                            if (!IDENTITY_NAMESPACE.equals(entry.getKey())) {
                                for (String f : entry.getValue()) {
View Full Code Here

        Subsystem child = ss.getChild(name);
        return child != null ? child : ss.createSubsystem(name, true);
    }

    private void populateDigraph(RegionDigraph digraph, Subsystem subsystem) throws BundleException, InvalidSyntaxException {
        Region region = digraph.createRegion(subsystem.getName());
        if (subsystem.getParent() != null) {
            Region parent = digraph.getRegion(subsystem.getParent().getName());
            digraph.connect(region, createRegionFilterBuilder(digraph, subsystem.getImportPolicy()).build(), parent);
            digraph.connect(parent, createRegionFilterBuilder(digraph, subsystem.getExportPolicy()).build(), region);
        }
        for (Subsystem child : subsystem.getChildren()) {
            populateDigraph(digraph, child);
View Full Code Here

        } else {
            bundles = true;
            filters = true;
            namespaces = true;
            for (String regionName : regions) {
                Region region = regionDigraph.getRegion(regionName);
                if (region == null) {
                    System.out.println("No region " + regionName);
                } else {
                    showRegion(region);
                }
View Full Code Here

TOP

Related Classes of org.eclipse.equinox.region.Region

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.