Package org.apache.geronimo.system.plugin

Examples of org.apache.geronimo.system.plugin.PluginMetadata


        for (int i = 0; i < stores.size(); i++) {
            AbstractName name = (AbstractName) stores.get(i);
            List configs = mgr.listConfigurations(name);
            for (int j = 0; j < configs.size(); j++) {
                ConfigurationInfo info = (ConfigurationInfo) configs.get(j);
                PluginMetadata data = installer.getPluginMetadata(info.getConfigID());
                Element config = doc.createElement("plugin");
                root.appendChild(config);
                createText(doc, config, "name", data.getName());
                createText(doc, config, "module-id", data.getModuleId().toString());
                createText(doc, config, "category", "Geronimo Deployments");
                createText(doc, config, "description", data.getCategory().equals("Unknown") ? "Automatically generated plugin metadata" : data.getDescription());
                if(data.getPluginURL() != null) {
                    createText(doc, config, "url", data.getPluginURL());
                }
                if(data.getAuthor() != null) {
                    createText(doc, config, "author", data.getAuthor());
                }
                for (int k = 0; k < data.getLicenses().length; k++) {
                    PluginMetadata.License license = data.getLicenses()[k];
                    Element lic = doc.createElement("license");
                    lic.setAttribute("osi-approved", Boolean.toString(license.isOsiApproved()));
                    createText(doc, lic, license.getName());
                    config.appendChild(lic);
                }
                // Skip hash since the CAR will be re-exported anyway and the file will be different
                String[] versions = data.getGeronimoVersions();
                for (int k = 0; k < versions.length; k++) {
                    String ver = versions[k];
                    createText(doc, config, "geronimo-version", ver);
                }
                versions = data.getJvmVersions();
                for (int k = 0; k < versions.length; k++) {
                    String ver = versions[k];
                    createText(doc, config, "jvm-version", ver);
                }
                for (int k = 0; k < data.getPrerequisites().length; k++) {
                    PluginMetadata.Prerequisite prereq = data.getPrerequisites()[k];
                    writePrerequisite(doc, config, prereq);
                }
                for (int k = 0; k < data.getDependencies().length; k++) {
                    String dep = data.getDependencies()[k];
                    createText(doc, config, "dependency", dep);
                }
                for (int k = 0; k < data.getObsoletes().length; k++) {
                    String obs = data.getObsoletes()[k];
                    createText(doc, config, "obsoletes", obs);
                }
                // Skip repositories since we want the download to come from here
            }
        }
View Full Code Here


    public void renderView(RenderRequest request, RenderResponse response, MultiPageModel model) throws PortletException, IOException {
        String configId = request.getParameter("configId");
        String repo = request.getParameter("repository");
        String user = request.getParameter("repo-user");
        String pass = request.getParameter("repo-pass");
        PluginMetadata config = null;
        try {
            PluginList list = (PluginList) request.getPortletSession(true).getAttribute(CONFIG_LIST_SESSION_KEY);
            if(list == null) {
                list = PortletManager.getCurrentServer(request).getPluginInstaller().listPlugins(new URL(repo), user, pass);
                request.getPortletSession(true).setAttribute(CONFIG_LIST_SESSION_KEY, list);
            }
            for (int i = 0; i < list.getPlugins().length; i++) {
                PluginMetadata metadata = list.getPlugins()[i];
                if(metadata.getModuleId().toString().equals(configId)) {
                    config = metadata;
                    break;
                }
            }
        } catch (FailedLoginException e) {
View Full Code Here

        return getMode();
    }

    public void renderView(RenderRequest request, RenderResponse response, MultiPageModel model) throws PortletException, IOException {
        String configId = request.getParameter("configId");
        PluginMetadata data = PortletManager.getCurrentServer(request).getPluginInstaller().getPluginMetadata(Artifact.create(configId));
        request.setAttribute("configId", data.getModuleId());
        request.setAttribute("name", data.getName());
        request.setAttribute("repository", combine(data.getRepositories()));
        request.setAttribute("category", data.getCategory());
        request.setAttribute("url", data.getPluginURL());
        request.setAttribute("author", data.getAuthor());
        request.setAttribute("description", data.getDescription());
        PluginMetadata.License[] licenses = data.getLicenses();
        if(licenses != null && licenses.length > 0) {
            request.setAttribute("license", licenses[0].getName());
            if(licenses[0].isOsiApproved()) {
                request.setAttribute("licenseOSI", "true");
            }
            if(licenses.length > 1) {
                log.warn("Unable to edit plugin metadata containing more than one license!  Additional license data will not be editable.");
            }
        }
        request.setAttribute("gerVersions", combine(data.getGeronimoVersions()));
        request.setAttribute("jvmVersions", combine(data.getJvmVersions()));
        request.setAttribute("dependencies", combine(data.getDependencies()));
        request.setAttribute("obsoletes", combine(data.getObsoletes()));
        PluginMetadata.Prerequisite[] reqs = data.getPrerequisites();
        if(reqs != null && reqs.length > 0) {
            for (int i = 0; i < reqs.length; i++) {
                PluginMetadata.Prerequisite req = reqs[i];
                String prefix = "prereq" + (i+1);
                request.setAttribute(prefix, req.getModuleId().toString());
View Full Code Here

        String osi = request.getParameter("licenseOSI");
        String gers = request.getParameter("gerVersions");
        String jvms = request.getParameter("jvmVersions");
        String deps = request.getParameter("dependencies");
        String obsoletes = request.getParameter("obsoletes");
        PluginMetadata data = PortletManager.getCurrentServer(request).getPluginInstaller().getPluginMetadata(Artifact.create(configId));
        PluginMetadata metadata = new PluginMetadata(name, data.getModuleId(),
                category, description, url, author, null, true, false);
        metadata.setDependencies(split(deps));
        metadata.setGeronimoVersions(split(gers));
        metadata.setJvmVersions(split(jvms));
        metadata.setObsoletes(split(obsoletes));
        List licenses = new ArrayList();
        if(license != null && !license.trim().equals("")) {
            licenses.add(new PluginMetadata.License(license.trim(), osi != null && !osi.equals("")));
        }
        for (int i = 1; i < data.getLicenses().length; i++) {
            licenses.add(data.getLicenses()[i]);
        }
        metadata.setLicenses((PluginMetadata.License[]) licenses.toArray(new PluginMetadata.License[licenses.size()]));
        List prereqs = new ArrayList();
        int counter = 1;
        while(true) {
            String prefix = "prereq" + counter;
            ++counter;
            String id = request.getParameter(prefix);
            if(id == null || id.trim().equals("")) {
                break;
            }
            String type = request.getParameter(prefix+"type");
            String desc = request.getParameter(prefix+"desc");
            if(type != null && type.trim().equals("")) {
                type = null;
            }
            if(desc != null && desc.trim().equals("")) {
                desc = null;
            }
            prereqs.add(new PluginMetadata.Prerequisite(Artifact.create(id), false, type, desc));
        }
        for (int i = 3; i < data.getPrerequisites().length; i++) {
            PluginMetadata.Prerequisite req = data.getPrerequisites()[i];
            prereqs.add(req);
        }
        metadata.setPrerequisites((PluginMetadata.Prerequisite[]) prereqs.toArray(new PluginMetadata.Prerequisite[prereqs.size()]));
        URL[] backupURLs = splitURLs(repo);
        metadata.setRepositories(backupURLs);
        PortletManager.getCurrentServer(request).getPluginInstaller().updatePluginMetadata(metadata);

        response.setRenderParameter("configId", configId);
        response.setRenderParameter("name", name);
View Full Code Here

        } catch (FailedLoginException e) {
            throw new PortletException("Invalid login for Maven repository '"+repository+"'", e);
        }
        Map results = new HashMap();
        for (int i = 0; i < data.getPlugins().length; i++) {
            PluginMetadata metadata = data.getPlugins()[i];
            List values = (List) results.get(metadata.getCategory());
            if(values == null) {
                values = new ArrayList();
                results.put(metadata.getCategory(), values);
            }
            values.add(metadata);
        }
        Collection values = results.values();
        for (Iterator it = values.iterator(); it.hasNext();) {
View Full Code Here

        }

    }

    private void updatePluginMetadata(Artifact artifact) {
        PluginMetadata data = installer.getPluginMetadata(artifact);
        if(data == null) {
            return;
        }
        if(data.getGeronimoVersions() != null && data.getGeronimoVersions().length == 1 &&
                VERSION_MAP.containsKey(data.getGeronimoVersions()[0])) {
            data.setGeronimoVersions((String[]) ((List) VERSION_MAP.get(data.getGeronimoVersions()[0])).toArray(new String[0]));
            if(data.getHash() != null) {
                data = copy(data);
            }
            installer.updatePluginMetadata(data);
        }
    }
View Full Code Here

    /**
     * Create a copy of a metadata, but with an empty hash.  Used when
     * something changed so an existing hash would be invalid.
     */
    private PluginMetadata copy(PluginMetadata source) {
        PluginMetadata data = new PluginMetadata(source.getName(), source.getModuleId(), source.getCategory(),
                source.getDescription(), source.getPluginURL(), source.getAuthor(), null, source.isInstalled(),
                source.isEligible());
        data.setConfigXmls(source.getConfigXmls());
        data.setDependencies(source.getDependencies());
        data.setFilesToCopy(source.getFilesToCopy());
        data.setForceStart(source.getForceStart());
        data.setGeronimoVersions(source.getGeronimoVersions());
        data.setJvmVersions(source.getJvmVersions());
        data.setLicenses(source.getLicenses());
        data.setObsoletes(source.getObsoletes());
        data.setPrerequisites(source.getPrerequisites());
        data.setRepositories(source.getRepositories());
        return data;
    }
View Full Code Here

        Kernel kernel = KernelRegistry.getSingleKernel();
        PluginInstaller installer = getPluginInstaller(kernel);
        String moduleIdName = getInitParameter("moduleId");
        moduleIdName = moduleIdName.replaceAll("SERVER", getServerType());
        URL repo = getFirstPluginRepository(kernel);
        PluginMetadata target = new PluginMetadata("Sample Application", null, "Samples", "A sample application",
                                                   null, null, null, false, true);
        target.setDependencies(new String[]{moduleIdName});
        DownloadResults results = installer.install(new PluginList(new URL[]{repo, new URL("http://www.ibiblio.org/maven2/")},
                                                    new PluginMetadata[]{target}), null, null);
        if(results.isFailed()) {
            throw new ServletException("Unable to install sample application", results.getFailure());
        }
View Full Code Here

        root.setAttribute("xmlns", NAMESPACE);
        doc.appendChild(root);
        for (Iterator it = plugins.iterator(); it.hasNext();) {
            Artifact plugin = (Artifact) it.next();
            System.out.println("Including plugin data for "+plugin);
            PluginMetadata data = installer.getPluginMetadata(plugin);
            if(data == null) {
                throw new IllegalArgumentException("Invalid plugin file; Log4J output for a specific error.");
            }
            File file = destRepo.getLocation(plugin);
            Element config = doc.createElement("plugin");
            root.appendChild(config);
            createText(doc, config, "name", data.getName());
            createText(doc, config, "module-id", data.getModuleId().toString());
            createText(doc, config, "category", data.getCategory());
            createText(doc, config, "description", data.getDescription());
            if(data.getPluginURL() != null) {
                createText(doc, config, "url", data.getPluginURL());
            }
            if(data.getAuthor() != null) {
                createText(doc, config, "author", data.getAuthor());
            }
            for (int i = 0; i < data.getLicenses().length; i++) {
                PluginMetadata.License license = data.getLicenses()[i];
                Element lic = doc.createElement("license");
                lic.appendChild(doc.createTextNode(license.getName()));
                lic.setAttribute("osi-approved", license.isOsiApproved() ? "true" : "false");
                config.appendChild(lic);
            }
            if(data.getHash() != null) {
                Element hash = doc.createElement("hash");
                hash.setAttribute("type", data.getHash().getType());
                hash.appendChild(doc.createTextNode(data.getHash().getValue()));
                config.appendChild(hash);
            } else if(file.isFile() && file.canRead()) {
                Element hash = doc.createElement("hash");
                hash.setAttribute("type", "SHA-1");
                hash.appendChild(doc.createTextNode(ConfigurationStoreUtil.getActualChecksum(file)));
                config.appendChild(hash);
            }
            for (int i = 0; i < data.getGeronimoVersions().length; i++) {
                String version = data.getGeronimoVersions()[i];
                createText(doc, config, "geronimo-version", version);
            }
            for (int i = 0; i < data.getJvmVersions().length; i++) {
                String version = data.getJvmVersions()[i];
                createText(doc, config, "jvm-version", version);
            }
            for (int i = 0; i < data.getPrerequisites().length; i++) {
                PluginMetadata.Prerequisite prereq = data.getPrerequisites()[i];
                writePrerequisite(doc, config, prereq);
            }
            for (int i = 0; i < data.getDependencies().length; i++) {
                String version = data.getDependencies()[i];
                createText(doc, config, "dependency", version);
            }
            for (int i = 0; i < data.getObsoletes().length; i++) {
                String version = data.getObsoletes()[i];
                createText(doc, config, "obsoletes", version);
            }
            // Skip the repository, we'll specify that at the top level
//            for (int i = 0; i < data.getRepositories().length; i++) {
//                URL url = data.getRepositories()[i];
//                createText(doc, config, "source-repository", url.toString());
//            }
            for (int i = 0; i < data.getFilesToCopy().length; i++) {
                PluginMetadata.CopyFile copyFile = data.getFilesToCopy()[i];
                Element copy = doc.createElement("copy-file");
                copy.setAttribute("relative-to", copyFile.isRelativeToVar() ? "server" : "geronimo");
                copy.setAttribute("dest-dir", copyFile.getDestDir());
                copy.appendChild(doc.createTextNode(copyFile.getSourceFile()));
                config.appendChild(copy);
            }
            if(data.getConfigXmls().length > 0) {
                Element content = doc.createElement("config-xml-content");
                for (int i = 0; i < data.getConfigXmls().length; i++) {
                    GBeanOverride override = data.getConfigXmls()[i];
                    Element gbean = override.writeXml(doc, content);
                    gbean.setAttribute("xmlns", "http://geronimo.apache.org/xml/ns/attributes-1.1");
                }
                config.appendChild(content);
            }
View Full Code Here

                    throw new DeploymentException("Invalid login for Maven repository '"+repo+"'");
                }
                Map categories = new HashMap();
                List available = new ArrayList();
                for (int i = 0; i < data.getPlugins().length; i++) {
                    PluginMetadata metadata = data.getPlugins()[i];
                    List list = (List) categories.get(metadata.getCategory());
                    if(list == null) {
                        list = new ArrayList();
                        categories.put(metadata.getCategory(), list);
                    }
                    list.add(metadata);
                }
                for (Iterator it = categories.entrySet().iterator(); it.hasNext();) {
                    Map.Entry entry = (Map.Entry) it.next();
                    String category = (String) entry.getKey();
                    List items = (List) entry.getValue();
                    out.println();
                    out.print(DeployUtils.reformat(category, 4, 72));
                    for (int i = 0; i < items.size(); i++) {
                        PluginMetadata metadata = (PluginMetadata) items.get(i);
                        String prefix = "    ";
                        if(!metadata.isInstalled() && metadata.isEligible()) {
                            available.add(metadata);
                            prefix = Integer.toString(available.size());
                            if(available.size() < 10) {
                                prefix += " ";
                            }
                            prefix += ": ";
                        }
                        out.print(DeployUtils.reformat(prefix+metadata.getName()+" ("+metadata.getVersion()+")", 8, 72));
                        out.flush();
                    }
                }
                if(available.size() == 0) {
                    out.println();
                    out.println("No plugins from this site are eligible for installation.");
                    return;
                }
                out.println();
                out.print("Install Service [enter number or 'q' to quit]: ");
                out.flush();
                BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
                String answer = in.readLine();
                if(answer.equalsIgnoreCase("q")) {
                    return;
                }
                int selection = Integer.parseInt(answer);
                PluginMetadata target = ((PluginMetadata) available.get(selection - 1));
                long start = System.currentTimeMillis();
                Object key = mgr.startInstall(PluginList.createInstallList(data, target.getModuleId()), null, null);
                DownloadResults results = CommandInstallCAR.showProgress(mgr, key);
                int time = (int)(System.currentTimeMillis() - start) / 1000;
                out.println();
                if(!results.isFailed()) {
                    out.print(DeployUtils.reformat("**** Installation Complete!", 4, 72));
                    for (int i = 0; i < results.getDependenciesPresent().length; i++) {
                        Artifact uri = results.getDependenciesPresent()[i];
                        out.print(DeployUtils.reformat("Used existing: "+uri, 4, 72));
                    }
                    for (int i = 0; i < results.getDependenciesInstalled().length; i++) {
                        Artifact uri = results.getDependenciesInstalled()[i];
                        out.print(DeployUtils.reformat("Installed new: "+uri, 4, 72));
                    }
                    out.println();
                    out.print(DeployUtils.reformat("Downloaded "+(results.getTotalDownloadBytes()/1024)+" kB in "+time+"s ("+results.getTotalDownloadBytes()/(1024*time)+" kB/s)", 4, 72));
                }
                if(results.isFinished() && !results.isFailed()) {
                    out.print(DeployUtils.reformat("Now starting "+target.getModuleId()+"...", 4, 72));
                    out.flush();
                    new CommandStart().execute(out, connection, new String[]{target.getModuleId().toString()});
                }
            } catch (IOException e) {
                throw new DeploymentException("Unable to install configuration", e);
            } catch(NumberFormatException e) {
                throw new DeploymentException("Invalid response");
View Full Code Here

TOP

Related Classes of org.apache.geronimo.system.plugin.PluginMetadata

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.