Package org.apache.felix.sigil.common.model.osgi

Examples of org.apache.felix.sigil.common.model.osgi.IPackageExport


        {
            public boolean visit(IModelElement element)
            {
                if (element instanceof IPackageExport)
                {
                    IPackageExport pkgExport = (IPackageExport) element;
                    exports.add(pkgExport);

                    if (exports.size() >= ResourcesDialogHelper.UPDATE_BATCH_SIZE)
                    {
                        accumulator.addElements(exports);
View Full Code Here


                {
                    RefactorUtil.touch(context, sourceProject);
                    RefactorUtil.touch(context, destProject);

                    final String packageName = packageFragment.getElementName();
                    IPackageExport oldExport = ModelHelper.findExport(sourceProject,
                        packageName);

                    if (oldExport != null)
                    {
                        IPackageExport newExport = ModelElementFactory.getInstance().newModelElement(
                            IPackageExport.class);

                        newExport.setPackageName(oldExport.getPackageName());
                        newExport.setVersion(oldExport.getRawVersion());

                        changes.add(new ExportPackageChange(destProject, null, newExport));
                        changes.add(new ExportPackageChange(sourceProject, oldExport,
                            null));

                        status.addWarning("Package " + packageName + " is exported from "
                            + sourceProject.getSymbolicName()
                            + ", this may effect client bundles that use require bundle");
                    }
                    else
                    {
                        SubMonitor sub = SubMonitor.convert(monitor);
                       
                        sub.beginTask("Resolving package users", 200);
                       
                        Set<String> users = JavaHelper.findLocalPackageUsers(
                            sourceProject, packageName, sub.newChild(100));
                        Set<String> dependencies = JavaHelper.findLocalPackageDependencies(
                            sourceProject, packageName, sub.newChild(100));

                        if (users.size() > 0 && dependencies.size() > 0)
                        {
                            status.addWarning("Package " + packageName
                                + " is coupled to " + users + " and " + dependencies
                                + " this may cause a cyclical dependency");
                        }

                        if (users.size() > 0)
                        { // attempt to move an API package
                            IPackageExport newExport = RefactorUtil.createNewExport(status, changes,
                                destProject, packageName);
                            RefactorUtil.createNewImport(status, changes, sourceProject, newExport);
                        }

                        if (dependencies.size() > 0)
                        { // moved an impl package
                            for (String dep : dependencies)
                            {
                                IPackageExport newExport = RefactorUtil.createNewExport(status, changes,
                                    sourceProject, dep);
                                RefactorUtil.createNewImport(status, changes, destProject, newExport);
                            }
                        }
                    }
View Full Code Here

        {
            public boolean visit(IModelElement element)
            {
                if (element instanceof IPackageExport)
                {
                    IPackageExport e = (IPackageExport) element;
                    if (e.getPackageName().equals(packageName))
                    {
                        results.add(e);
                    }
                }
                return true;
View Full Code Here

        IAccessRule[] rules = new IAccessRule[ex.size() + 1];

        Iterator<IPackageExport> iter = ex.iterator();
        for (int i = 0; i < rules.length - 1; i++)
        {
            IPackageExport p = iter.next();
            rules[i] = JavaCore.newAccessRule(new Path(p.getPackageName().replace('.',
                '/')).append("*"), IAccessRule.K_ACCESSIBLE);
        }

        rules[rules.length - 1] = DENY_RULE;

View Full Code Here

        return pos == -1 ? null : clazz.substring(pos + 1);
    }

    private static IPackageImport select(Collection<IPackageExport> proposals)
    {
        IPackageExport pe = null;

        for (IPackageExport check : proposals)
        {
            if (pe == null || check.getVersion().compareTo(pe.getVersion()) > 0)
            {
                pe = check;
            }
        }

        String packageName = pe.getPackageName();

        Version version = pe.getVersion();
        VersionRange versions = ModelHelper.getDefaultRange(version);

        IPackageImport pi = ModelElementFactory.getInstance().newModelElement(
            IPackageImport.class);
        pi.setPackageName(packageName);
View Full Code Here

        {
            public boolean visit(IModelElement element)
            {
                if (element instanceof IPackageExport)
                {
                    IPackageExport pe = (IPackageExport) element;
                    if (pe.getPackageName().equals(packageName))
                    {
                        found.add(pe);
                    }
                }
                return found.isEmpty();
View Full Code Here

            return req.getPackageName() + " " + req.getVersions();
        }

        if (element instanceof IPackageExport)
        {
            IPackageExport pe = (IPackageExport) element;
            Version rawVersion = pe.getRawVersion();
            return rawVersion != null ? pe.getPackageName() + " " + rawVersion
                : pe.getPackageName();
        }

        if (element instanceof IResource)
        {
            IResource resource = (IResource) element;
View Full Code Here

                    if ("version".equals(m.group(1))) {
                        version = m.group(2);
                    }
                }
                else {
                    IPackageExport pe = ModelElementFactory.getInstance().newModelElement(
                        IPackageExport.class);
                    pe.setPackageName(name);
                    info.addExport(pe);
                }
            }
           
            if ( version != null ) {
                Version v = VersionTable.getVersion(version);
                for(IPackageExport pe : info.getExports()) {
                    pe.setVersion(v);
                }
            }
        }
    }
View Full Code Here

        // Add imports to the bundle
        ModelElementFactory elementFactory = ModelElementFactory.getInstance();
        int count = 0;
        for (String pkgImport : imports)
        {
            IPackageExport export = exports.get(pkgImport);
            if (export != null && !existingImportsMap.containsKey(pkgImport))
            {
                VersionRange versionRange = ModelHelper.getDefaultRange(export.getVersion());
                IPackageImport newImport = elementFactory.newModelElement(IPackageImport.class);
                newImport.setPackageName(pkgImport);
                newImport.setVersions(versionRange);
                newImport.setOptional(false);
View Full Code Here

    public boolean accepts(ICapabilityModelElement provider)
    {
        if (provider instanceof IPackageExport)
        {
            IPackageExport pe = (IPackageExport) provider;
            return pe.getPackageName().equals(name) && versions.contains(pe.getVersion());
        }
        else
        {
            return false;
        }
View Full Code Here

TOP

Related Classes of org.apache.felix.sigil.common.model.osgi.IPackageExport

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.