Package org.apache.geronimo.plugin.dependency

Source Code of org.apache.geronimo.plugin.dependency.GenerateServiceXml

/**
*
* Copyright 2005 The Apache Software Foundation
*
*  Licensed under the Apache License, Version 2.0 (the "License");
*  you may not use this file except in compliance with the License.
*  You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
*  Unless required by applicable law or agreed to in writing, software
*  distributed under the License is distributed on an "AS IS" BASIS,
*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*  See the License for the specific language governing permissions and
*  limitations under the License.
*/
package org.apache.geronimo.plugin.dependency;

import java.util.List;
import java.util.Iterator;
import java.io.File;
import java.io.IOException;

import org.apache.geronimo.deployment.xbeans.ServiceDocument;
import org.apache.geronimo.deployment.xbeans.ServiceType;
import org.apache.maven.project.Dependency;
import org.apache.maven.repository.Artifact;
import org.apache.xmlbeans.XmlOptions;

/**
* @version $Rev: 396191 $ $Date: 2006-04-23 03:19:16 +0200 (Sun, 23 Apr 2006) $
*/
public class GenerateServiceXml {

    private static final String DEPENDENCY_PROPERTY = "geronimo.dependency";
    private static final String KEEP_VERSION_PROPERTY = "geronimo.keep.version";

    private List artifacts;
    private String targetDir;

    public List getArtifacts() {
        return artifacts;
    }

    public void setArtifacts(List artifacts) {
        this.artifacts = artifacts;
    }


    public String getTargetDir() {
        return targetDir;
    }

    public void setTargetDir(String targetDir) {
        this.targetDir = targetDir;
    }

    public void execute() throws IOException {
        if (artifacts == null) {
            throw new RuntimeException("Artifacts not supplied");
        }
        if (targetDir == null) {
            throw new RuntimeException("No target directory supplied");
        }
        ServiceDocument serviceDocument = ServiceDocument.Factory.newInstance();
        ServiceType serviceType = serviceDocument.addNewService();
        for (Iterator iterator = artifacts.iterator(); iterator.hasNext();) {
            Artifact artifact = (Artifact) iterator.next();
            Dependency dependency = artifact.getDependency();
            if ("true".equals(dependency.getProperty(DEPENDENCY_PROPERTY))) {
                String groupId = dependency.getGroupId();
                String artifactId = dependency.getArtifactId();
                String type = dependency.getType();
                org.apache.geronimo.deployment.xbeans.ArtifactType dependencyType = serviceType.addNewDependency();
                dependencyType.setGroupId(groupId);
                dependencyType.setArtifactId(artifactId);
                if ("true".equals(dependency.getProperty(KEEP_VERSION_PROPERTY))) {
                    String version = dependency.getVersion();
                    dependencyType.setVersion(version);
                }
                if (type != null && !"jar".equals(type)) {
                    dependencyType.setType(type);
                }
            }
        }

        if (serviceType.getDependencyArray().length > 0) {
            File targetDir = new File(this.targetDir);
            if (targetDir.exists()) {
                if (!targetDir.isDirectory()) {
                    throw new RuntimeException("TargetDir: " + this.targetDir + " exists and is not a directory");
                }
            } else {
                targetDir.mkdirs();
            }
            File output = new File(targetDir, "geronimo-dependency.xml");
            XmlOptions xmlOptions = new XmlOptions();
            xmlOptions.setSavePrettyPrint();
            serviceDocument.save(output, xmlOptions);
        }
    }
}
TOP

Related Classes of org.apache.geronimo.plugin.dependency.GenerateServiceXml

TOP
Copyright © 2018 www.massapi.com. 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.