Package org.jnode.plugin

Examples of org.jnode.plugin.PluginDescriptor


        final File file = new File(getDestdir(), data.getHtmlFile());
        file.getParentFile().mkdirs();
        final PrintWriter out = new PrintWriter(new FileWriter(file));
        try {
            final PluginDescriptor descr = data.getDescriptor();

            out.println("<html><head>");
            out.println("<title>" + descr.getId() + "</title>");
            out.println("<link rel='stylesheet' TYPE='text/css' href='../"
                + CSS_FILE + "'>");
            out.println("</head><body>");

            addToolbar(out, "../");

            final String title;
            if (descr.isFragment()) {
                title = "Fragment summary";
            } else {
                title = "Plugin summary";
            }

            addSummaryTableHdr(out, title);
            addTableRow(out, "Id", descr.getId());
            addTableRow(out, "Name", descr.getName());
            addTableRow(out, "Version", descr.getVersion().toString());
            addTableRow(out, "Provider", formatProvider(descr));
            addTableRow(out, "License", formatLicense(descr));
            addTableRow(out, "Plugin class",
                descr.hasCustomPluginClass() ? descr
                    .getCustomPluginClassName() : "-");
            addTableRow(out, "Flags", formatFlags(descr));
            endSummaryTableHdr(out);

            if (descr.getPrerequisites().length > 0) {
                addSummaryTableHdr(out, "Requires");
                for (PluginPrerequisite prereq : descr.getPrerequisites()) {
                    final String href = prereq.getPluginReference().getId() + EXT;
                    final PluginData prereqData = getPluginData(prereq
                        .getPluginReference().getId());
                    final String name = (prereqData != null) ? prereqData
                        .getDescriptor().getName() : "?";
                    addTableRow(out, "<a href='" + href + "'>"
                        + prereq.getPluginReference().getId() + "</a>", name);
                }
                endSummaryTableHdr(out);
            }

            final List<PluginData> requiredBy = getRequiredBy(descr.getId());
            if (!requiredBy.isEmpty()) {
                addSummaryTableHdr(out, "Required by");
                for (PluginData reqBy : requiredBy) {
                    final String id = reqBy.getDescriptor().getId();
                    final String href = id + EXT;
                    final String name = reqBy.getDescriptor().getName();
                    addTableRow(out, "<a href='" + href + "'>" + id + "</a>",
                        name);
                }
                endSummaryTableHdr(out);
            }

            if (descr.getRuntime() != null) {
                addSummaryTableHdr(out, "Libraries");
                for (Library library : descr.getRuntime().getLibraries()) {
                    final String libName = library.getName();
                    final StringBuilder sb = new StringBuilder();

                    for (String export : library.getExports()) {
                        sb.append(export);
                        sb.append("<br/>");
                    }
                    for (String exclude : library.getExcludes()) {
                        sb.append("exclude: ");
                        sb.append(exclude);
                        sb.append("<br/>");
                    }
                    addTableRow(out, libName, sb.toString());
                }
                endSummaryTableHdr(out);
            }

            final ExtensionPoint[] epList = descr.getExtensionPoints();
            if ((epList != null) && (epList.length > 0)) {
                addSummaryTableHdr(out, "Extension points");
                for (ExtensionPoint ep : epList) {
                    addTableRow(out, ep.getSimpleIdentifier(), ep.getName());
                }
                endSummaryTableHdr(out);
            }

            final Extension[] extList = descr.getExtensions();
            if ((extList != null) && (extList.length > 0)) {
                addSummaryTableHdr(out, "Extensions");
                for (Extension ext : extList) {
                    final StringBuilder sb = new StringBuilder();
View Full Code Here


    public void setTargetArch(String string) {
        targetArch = string;
    }

    protected PluginDescriptor readDescriptor(File descriptor) {
        final PluginDescriptor descr;
        try {
            final XMLElement root = new XMLElement(new Hashtable<Object, Object>(), true, false);
            try {
                final FileReader r = new FileReader(descriptor);
                try {
View Full Code Here

     * @param descriptors map of fullPluginId to File descriptor
     * @param descriptor  the plugin descriptor XML
     * @throws BuildException on failure
     */
    public void buildPlugin(Map<String, File> descriptors, File descriptor) throws BuildException {
        final PluginDescriptor descr = readDescriptor(descriptor);

        final String fullId = descr.getId() + "_" + descr.getVersion();
        if (descriptors.containsKey(fullId)) {
            File otherDesc = descriptors.get(fullId);
            throw new BuildException("Same id(" + fullId + ") for 2 plugins: " + otherDesc + ", " + descriptor);
        }
        descriptors.put(fullId, descriptor);

        File destFile = new File(todir, fullId + ".jar");

        // Check if we have to do something
        if (isUpToDate(descriptor, descr, destFile))
            return;

        final Jar jarTask = new Jar();
        jarTask.setProject(getProject());
        jarTask.setTaskName(getTaskName());
        jarTask.setDestFile(destFile);
        jarTask.setCompress(false);

        // Add plugin.xml
        final File tmpPluginDir;
        final File tmpPluginXmlFile;
        try {
            tmpPluginDir = new File(tmpDir, "jnode-plugins" + File.separator + fullId);
            tmpPluginDir.mkdirs();
            tmpPluginXmlFile = new File(tmpPluginDir, "plugin.xml");
            FileUtils.newFileUtils().copyFile(descriptor, tmpPluginXmlFile);
            FileSet fs = new FileSet();
            fs.setDir(tmpPluginDir);
            fs.createInclude().setName("plugin.xml");
            jarTask.addFileset(fs);
        } catch (IOException ex) {
            throw new BuildException(ex);
        }

        // Create manifest
        try {
            jarTask.addConfiguredManifest(createManifest(descr));
        } catch (ManifestException ex) {
            throw new BuildException(ex);
        }

        // Add runtime resources
        final Runtime rt = descr.getRuntime();
        if (rt != null) {
            final HashMap<File, ZipFileSet> fileSets = new HashMap<File, ZipFileSet>();
            final Library[] libs = rt.getLibraries();
            for (int l = 0; l < libs.length; l++) {
                processLibrary(jarTask, libs[l], fileSets, getPluginDir());
View Full Code Here

        throws BuildException {
        final Map<String, List<String>> idToVersions = new HashMap<String, List<String>>();
       
        // get all couples (id, version) in idToVersions
        for (PluginJar piJar : pluginJars) {
            final PluginDescriptor descr = piJar.getDescriptor();
           
            List<String> versions = idToVersions.get(descr.getId());
            if (versions == null) {
                versions = new ArrayList<String>();
                idToVersions.put(descr.getId(), versions);
            }
           
            versions.add(descr.getVersion().toString());
        }
       
        // now, check that each dependency is satisfied
        for (PluginJar piJar : pluginJars) {
            final PluginDescriptor descr = piJar.getDescriptor();
            final PluginPrerequisite[] prereqs = descr.getPrerequisites();
           
            for (int j = 0; j < prereqs.length; j++) {
                PluginPrerequisite required = prereqs[j];
                List<String> versions = idToVersions.get(required.getPluginReference().getId());
               
                boolean versionSpecified = (required.getPluginReference().getVersion() == null);

                boolean satisfied = false;
                if (versions != null) {
                    satisfied = !versionSpecified ||
                        versions.contains(required.getPluginReference().getVersion());
                }
               
                if (!satisfied) {
                    String reqVersionStr =  versionSpecified ? "" : " version " +
                            required.getPluginReference().getVersion();
                   
                    String versionStr =  (descr.getVersion()  == null) ? "" : " version " +
                            descr.getVersion();
                   
                    throw new BuildException("Cannot find plugin "
                        + required.getPluginReference().getId() + reqVersionStr
                        + ", which is required by " + descr.getId()
                        + versionStr);
                }
            }
        }
    }
View Full Code Here

        final URL getPluginUrl() {
            return this.pluginUrl;
        }

        public boolean hasAllPrerequisitesInSet(Set<String> ids) {
            final PluginDescriptor descr = getDescriptor();
            final PluginPrerequisite[] prereqs = descr.getPrerequisites();
            for (int j = 0; j < prereqs.length; j++) {
                if (!ids.contains(prereqs[j].getPluginReference().getId())) {
                    return false;
                }
            }
View Full Code Here

            final String name = entry.getKey();
            if (name.endsWith(".jar")) {
                try {
                    // Load it
                    loader.setBuffer(entry.getValue());
                    final PluginDescriptor descr = piRegistry.loadPlugin(loader, null, false); //resolve=false
                    descriptors.add(descr);
                } catch (PluginException ex) {
                    BootLogInstance.get().error("Cannot load " + name, ex);
                }
            }
View Full Code Here

            // Use in tests and asm constant construction
            return null;
        }

        // Find and instantiate the heap manager.
        PluginDescriptor core = pluginReg
            .getPluginDescriptor("org.jnode.vm.core");
        Extension[] memMgrs = core.getExtensionPoint("memmgr").getExtensions();
        if (memMgrs.length != 1) {
            throw new InstantiationException(
                "memmgr extension point must have 1 extension");
        }
        Extension memMgr = memMgrs[0];
View Full Code Here

        tests.clear();
        categories.clear();
        categoriesNames.clear();

        for (Extension ext : typesEP.getExtensions()) {
            final PluginDescriptor desc = ext.getDeclaringPluginDescriptor();
            log.debug("plugin " + desc.getName() + " classloader=" + desc.getPluginClassLoader());
            final ConfigurationElement[] elements = ext.getConfigurationElements();
            for (ConfigurationElement e : elements) {
                if ("test".equals(e.getName())) {
                    addTest(tests, e, desc);
                } else if ("suite".equals(e.getName())) {
View Full Code Here

TOP

Related Classes of org.jnode.plugin.PluginDescriptor

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.