Example usage for org.apache.maven.project MavenProject getModel

List of usage examples for org.apache.maven.project MavenProject getModel

Introduction

In this page you can find the example usage for org.apache.maven.project MavenProject getModel.

Prototype

public Model getModel() 

Source Link

Usage

From source file:org.wso2.developerstudio.eclipse.artifact.registry.handler.project.export.RegistryHandlerArtifactHandler.java

License:Open Source License

public List<IResource> exportArtifact(IProject project) throws Exception {
    List<IResource> exportResources = new ArrayList<IResource>();
    List<String> exportedPackageList = new ArrayList<String>();
    String activatorClass = new String();
    String existingActivatorClass = new String();

    ArchiveManipulator archiveManipulator = new ArchiveManipulator();

    // getting maven details
    MavenProject mavenProject = MavenUtils.getMavenProject(project.getFile("pom.xml").getLocation().toFile());

    // Get the output location
    IJavaProject javaProject = JavaCore.create(project);

    clearTarget(project);/*from   w  w  w.  j a v a2 s  . c o  m*/
    IPath outPutPath = buildJavaProject(project);

    // get resource location
    IPath resources = getResourcePath(project);

    // getting export packages
    for (IPackageFragment pkg : javaProject.getPackageFragments()) {
        if (pkg.getKind() == IPackageFragmentRoot.K_SOURCE) {
            if (pkg.hasChildren()) {
                exportedPackageList.add(pkg.getElementName());
                for (ICompilationUnit compilationUnit : pkg.getCompilationUnits()) {
                    IType[] types = compilationUnit.getTypes();
                    for (IType type : types) {
                        if (type.getSuperInterfaceNames().length > 0
                                && Arrays.asList(type.getSuperInterfaceNames()).contains("BundleActivator")) {
                            activatorClass = type.getFullyQualifiedName();
                        }
                    }
                }
            }
        }
    }

    List<Plugin> plugins = mavenProject.getBuild().getPlugins();
    for (Plugin plugin : plugins) {
        if ("maven-bundle-plugin".equalsIgnoreCase(plugin.getArtifactId())) {
            Xpp3Dom configurationNode = (Xpp3Dom) plugin.getConfiguration();
            Xpp3Dom[] instructions = configurationNode.getChildren("instructions");
            if (instructions.length == 1) {
                Xpp3Dom[] exportPackage = instructions[0].getChildren("Export-Package");
                if (exportPackage.length == 1) {
                    exportedPackageList.clear(); //clear default configuration (All packages by default)
                    String packages = exportPackage[0].getValue();
                    if (packages != null) {
                        exportedPackageList.addAll(Arrays.asList(packages.split(",")));
                    }
                } else {
                    log.warn("Invalid configuration for <Export-Package> entry"
                            + " using default configuration for <Export-Package>");
                }
            } else {
                log.warn("Invalid instructions configuration for plugin : maven-bundle-plugin"
                        + " using default configuration for <Export-Package>");
            }
            break; //not considering multiple versions of the maven-bundle-plugin
        }
    }

    File tempProject = createTempProject();

    File bundleResources = createTempDir(tempProject, "bundle_resources");

    if (exportedPackageList.size() > 0) {
        FileUtils.copyDirectoryContents(outPutPath.toFile(), bundleResources); // copy
                                                                               // binaries
    }

    if (resources.toFile().exists()) {
        FileUtils.copyDirectoryContents(resources.toFile(), bundleResources); // copy
        // resources
    }

    @SuppressWarnings("unchecked")
    List<Dependency> dependencies = mavenProject.getDependencies();
    Iterator<Dependency> iterator = dependencies.iterator();
    while (iterator.hasNext()) {
        Dependency dependency = iterator.next();
        if ("system".equals(dependency.getScope())) {
            String systemPath = dependency.getSystemPath();
            if (systemPath != null && !systemPath.trim().isEmpty()) {
                systemPath = systemPath.replaceAll("^".concat(Pattern.quote("${basedir}/")), "");
                IFile jarFile = project.getFile(systemPath);
                if (jarFile.exists()) {
                    archiveManipulator.extract(jarFile.getLocation().toFile(), bundleResources);
                    // getting export packages
                    IPackageFragmentRoot rootPkg = JavaCore.createJarPackageFragmentRootFrom(jarFile);

                    for (IJavaElement item : rootPkg.getChildren()) {
                        if (item instanceof IPackageFragment) {
                            IPackageFragment pkg = (IPackageFragment) item;
                            if (pkg.hasChildren()) {
                                exportedPackageList.add(pkg.getElementName());
                                for (IClassFile clazz : pkg.getClassFiles()) {
                                    IType type = clazz.getType();
                                    if (type.getSuperInterfaceNames().length > 0 && Arrays
                                            .asList(type.getSuperInterfaceNames()).contains(ACTIVATOR_FQN)) {
                                        existingActivatorClass = type.getFullyQualifiedName();
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }

    }

    if (activatorClass.trim().isEmpty()) {
        activatorClass = existingActivatorClass;
    }

    /* writing manifest */
    BundleManifest manifest = new BundleManifest();
    manifest.setBundleName(project.getName());
    manifest.setBundleSymbolicName(project.getName());
    if (null != mavenProject.getModel().getDescription()
            && !"".equals(mavenProject.getModel().getDescription())) {
        manifest.setBundleDescription(mavenProject.getModel().getDescription());
    } else {
        manifest.setBundleDescription(project.getName());
    }
    if (null != mavenProject.getModel().getVersion() && !"".equals(mavenProject.getDescription())) {
        manifest.setBundleVersion(mavenProject.getModel().getVersion());
    } else {
        manifest.setBundleVersion("1.0.0");
    }
    manifest.setBundleActivatorName(activatorClass);
    manifest.setExportPackagesList(exportedPackageList);
    File metaInfDir = new File(bundleResources, "META-INF");
    if (!metaInfDir.exists())
        metaInfDir.mkdir();
    File manifestFile = new File(metaInfDir, "MANIFEST.MF");
    FileUtils.createFile(manifestFile, manifest.toString());

    File tmpArchive = new File(tempProject, project.getName().concat(".jar"));
    archiveManipulator.archiveDir(tmpArchive.toString(), bundleResources.toString());

    IFile bundleArchive = getTargetArchive(project, "jar");
    FileUtils.copy(tmpArchive, bundleArchive.getLocation().toFile());
    exportResources.add((IResource) bundleArchive);

    TempFileUtils.cleanUp();

    return exportResources;

}

From source file:org.wso2.developerstudio.eclipse.artifact.registry.handler.ui.wizard.RegistryHandlerCreationWizard.java

License:Open Source License

public void updatePom(IProject project) throws Exception {
    File mavenProjectPomLocation = project.getFile("pom.xml").getLocation().toFile();
    MavenProject mavenProject = MavenUtils.getMavenProject(mavenProjectPomLocation);
    StringBuffer sb = new StringBuffer();
    String activatorClass = new String();

    Properties properties = mavenProject.getModel().getProperties();
    properties.put("CApp.type", "lib/registry/handlers");
    mavenProject.getModel().setProperties(properties);

    Plugin plugin = MavenUtils.createPluginEntry(mavenProject, "org.apache.felix", "maven-bundle-plugin",
            "2.3.4", true);

    // getting export packages
    IPackageFragmentRoot rootPkg = JavaCore
            .createJarPackageFragmentRootFrom(project.getFile(regModel.getExternalJar().getName()));

    for (IJavaElement item : rootPkg.getChildren()) {
        if (item instanceof IPackageFragment) {
            IPackageFragment pkg = (IPackageFragment) item;
            if (pkg.hasChildren()) {
                sb.append(pkg.getElementName()).append(",");
                for (IClassFile clazz : pkg.getClassFiles()) {
                    IType type = clazz.getType();
                    if (type.getSuperInterfaceNames().length > 0
                            && Arrays.asList(type.getSuperInterfaceNames()).contains(ACTIVATOR_FQN)) {
                        activatorClass = type.getFullyQualifiedName();
                    }// ww  w  . ja va2s.  co  m
                }
            }
        }
    }
    String exportedPackageList = sb.toString().replaceAll(",$", "");

    Xpp3Dom configurationNode = MavenUtils.createMainConfigurationNode(plugin);
    Xpp3Dom instructionNode = MavenUtils.createXpp3Node("instructions");
    Xpp3Dom bundleSymbolicNameNode = MavenUtils.createXpp3Node(instructionNode, "Bundle-SymbolicName");
    Xpp3Dom bundleNameNode = MavenUtils.createXpp3Node(instructionNode, "Bundle-Name");
    Xpp3Dom bundleActivatorNode = MavenUtils.createXpp3Node(instructionNode, "Bundle-Activator");
    Xpp3Dom exportPackageNode = MavenUtils.createXpp3Node(instructionNode, "Export-Package");
    Xpp3Dom dynamicImportNode = MavenUtils.createXpp3Node(instructionNode, "DynamicImport-Package");
    bundleSymbolicNameNode.setValue(project.getName());
    bundleNameNode.setValue(project.getName());
    bundleActivatorNode.setValue(activatorClass);
    exportPackageNode.setValue(exportedPackageList);
    dynamicImportNode.setValue("*");

    configurationNode.addChild(instructionNode);

    Repository repo = new Repository();
    repo.setUrl("http://maven.wso2.org/nexus/content/groups/wso2-public/");
    repo.setId("wso2-maven2-repository-1");

    mavenProject.getModel().addRepository(repo);
    mavenProject.getModel().addPluginRepository(repo);

    List<Dependency> dependencyList = new ArrayList<Dependency>();

    Dependency dependency = new Dependency();
    dependency.setArtifactId(regModel.getExternalJar().getName());
    dependency.setGroupId("dummy.groupid");
    dependency.setVersion("1.0.0");
    dependency.setScope("system");
    dependency.setSystemPath("${basedir}/" + regModel.getExternalJar().getName());
    dependencyList.add(dependency);
    dependencyList.add(dependency);

    MavenUtils.addMavenDependency(mavenProject, dependencyList);
    MavenUtils.saveMavenProject(mavenProject, mavenProjectPomLocation);

}

From source file:org.wso2.developerstudio.eclipse.artifact.registry.handler.ui.wizard.RegistryHandlerCreationWizard.java

License:Open Source License

public void updatePom(IProject project, HandlerInfo handlerInfo) throws Exception {
    File mavenProjectPomLocation = project.getFile("pom.xml").getLocation().toFile();
    MavenProject mavenProject = MavenUtils.getMavenProject(mavenProjectPomLocation);

    Properties properties = mavenProject.getModel().getProperties();
    properties.put("CApp.type", "lib/registry/handlers");
    mavenProject.getModel().setProperties(properties);

    Plugin plugin = MavenUtils.createPluginEntry(mavenProject, "org.apache.felix", "maven-bundle-plugin",
            "2.3.4", true);

    Xpp3Dom configurationNode = MavenUtils.createMainConfigurationNode(plugin);
    Xpp3Dom instructionNode = MavenUtils.createXpp3Node("instructions");
    Xpp3Dom bundleSymbolicNameNode = MavenUtils.createXpp3Node(instructionNode, "Bundle-SymbolicName");
    Xpp3Dom bundleNameNode = MavenUtils.createXpp3Node(instructionNode, "Bundle-Name");
    Xpp3Dom bundleActivatorNode = MavenUtils.createXpp3Node(instructionNode, "Bundle-Activator");
    Xpp3Dom exportPackageNode = MavenUtils.createXpp3Node(instructionNode, "Export-Package");
    Xpp3Dom dynamicImportNode = MavenUtils.createXpp3Node(instructionNode, "DynamicImport-Package");
    bundleSymbolicNameNode.setValue(project.getName());
    bundleNameNode.setValue(project.getName());
    bundleActivatorNode.setValue(BUNDLE_ACTIVATOR_NAME);
    exportPackageNode.setValue(getExportedPackage(handlerInfo));
    dynamicImportNode.setValue("*");
    configurationNode.addChild(instructionNode);

    Repository repo = new Repository();
    repo.setUrl("http://maven.wso2.org/nexus/content/groups/wso2-public/");
    repo.setId("wso2-maven2-repository-1");

    mavenProject.getModel().addRepository(repo);
    mavenProject.getModel().addPluginRepository(repo);

    List<Dependency> dependencyList = new ArrayList<Dependency>();

    Map<String, JavaLibraryBean> dependencyInfoMap = JavaLibraryUtil.getDependencyInfoMap(project);
    Map<String, String> map = ProjectDependencyConstants.DEPENDENCY_MAP;
    for (JavaLibraryBean bean : dependencyInfoMap.values()) {
        if (bean.getVersion().contains("${")) {
            for (String path : map.keySet()) {
                bean.setVersion(bean.getVersion().replace(path, map.get(path)));
            }//w  w w  .  ja  v a2s.c o m
        }
        Dependency dependency = new Dependency();
        dependency.setArtifactId(bean.getArtifactId());
        dependency.setGroupId(bean.getGroupId());
        dependency.setVersion(bean.getVersion());
        dependencyList.add(dependency);
    }

    if (importHandlerFromWs && importHandlerProject != null) {
        try {
            IFile pomFile = importHandlerProject.getFile("pom.xml");
            MavenProject workspaceProject;
            if (pomFile.exists()) {
                workspaceProject = MavenUtils.getMavenProject(pomFile.getLocation().toFile());
            } else {
                String srcDir = "src";
                workspaceProject = MavenUtils.createMavenProject(
                        "org.wso2.carbon." + importHandlerProject.getName(), importHandlerProject.getName(),
                        "1.0.0", "jar");
                IJavaProject javaProject = JavaCore.create(importHandlerProject);
                IClasspathEntry[] classpath = javaProject.getRawClasspath();
                int entryCount = 0;
                for (IClasspathEntry classpathEntry : classpath) {
                    if (classpathEntry.getEntryKind() == IClasspathEntry.CPE_SOURCE) {
                        if (entryCount == 0) {
                            String entryPath = "";
                            String[] pathSegments = classpathEntry.getPath().segments();
                            if (pathSegments.length > 1) {
                                for (int i = 1; i < pathSegments.length; i++) {
                                    if (i == 1) {
                                        entryPath = pathSegments[i];
                                    } else {
                                        entryPath += "/" + pathSegments[i];
                                    }
                                }
                                if (entryPath.length() > 0) {
                                    srcDir = entryPath;
                                    ++entryCount;
                                }
                            }
                        } else {
                            log.warn("multiple source directories found, Considering '" + srcDir
                                    + "' as source directory");
                            break;
                        }
                    }
                }
                if (entryCount == 0) {
                    log.warn("No source directory specified, using default source directory.");
                }
                workspaceProject.getBuild().setSourceDirectory(srcDir);

                Repository nexusRepo = new Repository();
                nexusRepo.setUrl("http://maven.wso2.org/nexus/content/groups/wso2-public/");
                nexusRepo.setId("wso2-maven2-repository-1");
                workspaceProject.getModel().addRepository(nexusRepo);
                workspaceProject.getModel().addPluginRepository(nexusRepo);

                List<Dependency> libList = new ArrayList<Dependency>();

                Map<String, JavaLibraryBean> dependencyMap = JavaLibraryUtil
                        .getDependencyInfoMap(importHandlerProject);

                for (JavaLibraryBean bean : dependencyMap.values()) {
                    Dependency dependency = new Dependency();
                    dependency.setArtifactId(bean.getArtifactId());
                    dependency.setGroupId(bean.getGroupId());
                    dependency.setVersion(bean.getVersion());
                    libList.add(dependency);
                }

                workspaceProject.setDependencies(libList);
                MavenUtils.saveMavenProject(workspaceProject, pomFile.getLocation().toFile());
                project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
            }

            Dependency dependency = new Dependency();
            dependency.setArtifactId(workspaceProject.getArtifactId());
            dependency.setGroupId(workspaceProject.getGroupId());
            dependency.setVersion(workspaceProject.getVersion());
            dependencyList.add(dependency);
        } catch (Exception e) {
            log.warn("Error reading or updating pom file.", e);
        }
    }

    MavenUtils.addMavenDependency(mavenProject, dependencyList);
    MavenUtils.saveMavenProject(mavenProject, mavenProjectPomLocation);

}

From source file:org.wso2.developerstudio.eclipse.artifact.webapp.project.nature.WebAppProjectNature.java

License:Open Source License

public void updatePom() throws Exception {
    File mavenProjectPomLocation = getProject().getFile("pom.xml").getLocation().toFile();
    MavenProject mavenProject = MavenUtils.getMavenProject(mavenProjectPomLocation);
    /*Adding J2EE Dependency*/
    List<Dependency> dependencies = new ArrayList<Dependency>();
    Dependency j2eeDepen = new Dependency();
    j2eeDepen.setGroupId("javax");
    j2eeDepen.setArtifactId("javaee-web-api");
    j2eeDepen.setVersion("6.0");
    j2eeDepen.setScope("provided");
    dependencies.add(j2eeDepen);// w ww  .  j ava  2 s . c  om
    MavenUtils.addMavenDependency(mavenProject, dependencies);
    /*Adding Plugins*/
    MavenUtils.updateMavenProjectWithWarBuilderPlugin(getProject(), mavenProject, mavenProjectPomLocation);

    Repository repo = new Repository();
    repo.setUrl("http://download.java.net/maven/2");
    repo.setId("java.net2");
    repo.setName("Repository hosting the jee6 artifacts");
    RepositoryPolicy releasePolicy = new RepositoryPolicy();
    releasePolicy.setEnabled(true);
    releasePolicy.setUpdatePolicy("daily");
    releasePolicy.setChecksumPolicy("ignore");
    repo.setReleases(releasePolicy);
    mavenProject.getModel().addRepository(repo);

    MavenUtils.saveMavenProject(mavenProject, mavenProjectPomLocation);
}

From source file:org.wso2.developerstudio.eclipse.distribution.project.editor.DistProjectEditorPage.java

License:Open Source License

/**
 * Create a tree Item for a project//  ww  w  . ja  v  a 2s  .  c o  m
 * 
 * @param parent
 *            Parent tree control
 * @param project
 *            eclipse project
 * @return new TreeItem
 */
TreeItem createNode(Tree parent, final IProject project) {
    TreeItem item = new TreeItem(parent, SWT.NONE);
    MavenProject mavenProject;
    try {
        mavenProject = DistProjectUtils.getMavenProject(project);
        item.setText(0, project.getName());
        item.setText(1, "--");
        item.setText(2, mavenProject.getModel().getVersion());
        NodeData nodeData = new NodeData(project);
        item.setData(project);

        nodeData.setHaschildren(true);
        item.setData(nodeData);

        item.setImage(0, SWTResourceManager.getImage(this.getClass(), "/icons/projects.gif"));
    } catch (Exception e) {
        log.error("createNode fail", e);
        return null;
    }
    return item;

}

From source file:org.wso2.developerstudio.eclipse.distribution.project.export.CappArtifactsListProvider.java

License:Open Source License

public List<ListData> getArtifactsListForSingleArtifactProject(IProject project) throws Exception {
    MavenProject mavenProject = DistProjectUtils.getMavenProject(project);
    ArtifactTypeMapping artifactTypeMapping = new ArtifactTypeMapping();
    List<ListData> singleProjectArtifactAsAList = new ArrayList<ListData>();
    Dependency dependency = new Dependency();
    dependency.setArtifactId(mavenProject.getArtifactId());
    dependency.setGroupId(mavenProject.getGroupId());
    dependency.setVersion(mavenProject.getVersion());
    String cAppType = mavenProject.getModel().getPackaging();
    if (cAppType == null || !artifactTypeMapping.isValidArtifactType(cAppType)) {
        if (mavenProject.getModel().getProperties().containsKey("CApp.type")) {
            cAppType = (String) mavenProject.getModel().getProperties().get("CApp.type");
        }//from  w w  w  .  j a  v  a 2s.co  m
    }

    dependency.setType(artifactTypeMapping.getType(cAppType));
    ServerRoleMapping serverRoleMapping = new ServerRoleMapping();
    String serverRole = serverRoleMapping.getServerRole(cAppType);

    DependencyData dependencyData = new DependencyData();
    dependencyData.setDependency(dependency);
    dependencyData.setSelf(project);
    dependencyData.setCApptype(cAppType);
    dependencyData.setServerRole(getServerRole(serverRole));

    singleProjectArtifactAsAList
            .add(createListData(DistProjectUtils.getArtifactInfoAsString(dependency), dependencyData));
    return singleProjectArtifactAsAList;
}

From source file:org.wso2.developerstudio.eclipse.distribution.project.export.CarExportHandler.java

License:Open Source License

public List<IResource> exportArtifact(IProject project) throws Exception {
    List<IResource> exportResources = new ArrayList<IResource>();
    List<ArtifactData> artifactList = new ArrayList<ArtifactData>();
    Map<IProject, Map<String, IResource>> resourceProjectList = new HashMap<IProject, Map<String, IResource>>();
    IFile pomFileRes;/* w  ww. j  a v a 2 s  . com*/
    File pomFile;
    MavenProject parentPrj;
    ArchiveManipulator archiveManipulator = new ArchiveManipulator();

    clearTarget(project);

    // Let's create a temp project
    File tempProject = createTempProject();

    File carResources = createTempDir(tempProject, "car_resources");
    pomFileRes = project.getFile(POM_FILE);
    if (!pomFileRes.exists()) {
        throw new Exception("not a valid carbon application project");
    }
    pomFile = pomFileRes.getLocation().toFile();

    ProjectList projectListProvider = new ProjectList();
    List<ListData> projectListData = projectListProvider.getListData(null, null);
    Map<String, DependencyData> projectList = new HashMap<String, DependencyData>();
    Map<String, String> serverRoleList = new HashMap<String, String>();
    for (ListData data : projectListData) {
        DependencyData dependencyData = (DependencyData) data.getData();
        projectList.put(DistProjectUtils.getArtifactInfoAsString(dependencyData.getDependency()),
                dependencyData);
    }

    parentPrj = MavenUtils.getMavenProject(pomFile);

    for (Dependency dependency : (List<Dependency>) parentPrj.getDependencies()) {
        String dependencyKey = DistProjectUtils.getArtifactInfoAsString(dependency);
        serverRoleList.put(dependencyKey, DistProjectUtils.getServerRole(parentPrj, dependency));
        if (projectList.containsKey(dependencyKey)) {
            DependencyData dependencyData = projectList.get(dependencyKey);
            Object parent = dependencyData.getParent();
            Object self = dependencyData.getSelf();
            String serverRole = serverRoleList.get(DistProjectUtils.getArtifactInfoAsString(dependency));
            dependencyData.setServerRole(serverRole.replaceAll("^capp/", ""));
            if (parent != null && self != null) { // multiple artifact
                if (parent instanceof IProject && self instanceof String) {
                    IFile file = ((IProject) parent).getFile((String) self);
                    if (file.exists()) {
                        ArtifactData artifactData = new ArtifactData();
                        artifactData.setDependencyData(dependencyData);
                        artifactData.setFile(distProjectUtils.getFileName(dependencyData));
                        artifactData.setResource((IResource) file);
                        artifactList.add(artifactData);
                    }
                }
            } else if (parent == null && self != null) { // artifacts as
                // single artifact archive
                DefaultArtifactExportHandler artifactExportHandler = new DefaultArtifactExportHandler();
                artifactExportHandler.exportArtifact(artifactList, null, null, dependencyData, null, self);

            } else if (parent != null && self == null) { // these are
                                                         // registry
                                                         // resources
                exportRegistryResourceArtifact(artifactList, resourceProjectList, dependencyData, parent);
            } else {
                log.error(
                        "unidentified artifact structure, cannot be exported as a deployable artifact for server "
                                + serverRole);
            }
        }
    }

    OMFactory factory = OMAbstractFactory.getOMFactory();
    OMElement artifactsDocRoot = factory.createOMElement(new QName("artifacts"));
    OMElement artifactElt = factory.createOMElement(new QName("artifact"));
    artifactElt.addAttribute("name", parentPrj.getModel().getArtifactId(), null);
    artifactElt.addAttribute("version", parentPrj.getModel().getVersion(), null);
    artifactElt.addAttribute("type", "carbon/application", null);

    Collections.sort(artifactList);

    for (ArtifactData artifact : artifactList) {
        File artifactDir = new File(carResources, getArtifactDir(artifact.getDependencyData()));
        if (artifact.getResource() instanceof IFolder) {
            FileUtils.copyDirectory(artifact.getResource().getLocation().toFile(), artifactDir);
        } else if (artifact.getResource() instanceof IFile) {
            FileUtils.copy(artifact.getResource().getLocation().toFile(),
                    new File(artifactDir, artifact.getFile()));
        }
        artifactElt.addChild(createDependencyElement(factory, artifact));
        createArtifactXML(artifactDir, artifact);
    }

    artifactsDocRoot.addChild(artifactElt);
    File artifactsXml = new File(carResources, "artifacts.xml");
    XMLUtil.prettify(artifactsDocRoot, new FileOutputStream(artifactsXml));

    File tmpArchive = new File(tempProject,
            project.getName().concat("_").concat(parentPrj.getVersion()).concat(".car"));
    archiveManipulator.archiveDir(tmpArchive.toString(), carResources.toString());

    IFile carbonArchive = getTargetArchive(project, parentPrj.getVersion(), "car");
    FileUtils.copy(tmpArchive, carbonArchive.getLocation().toFile());
    exportResources.add((IResource) carbonArchive);
    clearTempDirInWorksapce(project.getName(), SPLIT_DIR_NAME);
    TempFileUtils.cleanUp();

    return exportResources;
}

From source file:org.wso2.developerstudio.eclipse.distribution.project.ui.wizard.DistributionProjectExportWizardPage.java

License:Open Source License

/**
 * Create a tree Item for a project//from   www  . ja  va2 s  .  co m
 * @param parent  Parent tree control
 * @param project eclipse project
 * @return  new TreeItem
 */
TreeItem createNode(Tree parent, final IProject project) {
    TreeItem item = new TreeItem(parent, SWT.NONE);
    MavenProject mavenProject;
    try {
        mavenProject = DistProjectUtils.getMavenProject(project);
        item.setText(0, project.getName());
        item.setText(1, "--");
        item.setText(2, mavenProject.getModel().getVersion());
        NodeData nodeData = new NodeData(project);
        item.setData(project);

        nodeData.setHaschildren(true);
        item.setData(nodeData);

        item.setImage(0, SWTResourceManager.getImage(this.getClass(), "/icons/projects.gif"));
    } catch (Exception e) {
        return null;
    }
    return item;

}

From source file:org.wso2.developerstudio.eclipse.distribution.project.ui.wizard.DistributionProjectWizard.java

License:Open Source License

public boolean performFinish() {
    try {/*from  w ww . j a v a2  s. c  o  m*/
        DistributionProjectModel projectModel = (DistributionProjectModel) getModel();
        project = createNewProject();
        File pomfile = project.getFile("pom.xml").getLocation().toFile();
        createPOM(pomfile);
        ProjectUtils.addNatureToProject(project, false, DISTRIBUTION_PROJECT_NATURE);
        MavenUtils.updateWithMavenEclipsePlugin(pomfile, new String[] {},
                new String[] { DISTRIBUTION_PROJECT_NATURE });
        project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());

        MavenProject mavenProject = MavenUtils.getMavenProject(pomfile);
        mavenProject.getModel().setPackaging("carbon/application");
        Plugin plugin = MavenUtils.createPluginEntry(mavenProject, "org.wso2.maven", "maven-car-plugin",
                MavenConstants.MAVEN_CAR_VERSION, true);
        PluginExecution pluginExecution;

        pluginExecution = new PluginExecution();
        pluginExecution.addGoal("car");
        pluginExecution.setPhase("package");
        pluginExecution.setId("car");
        plugin.addExecution(pluginExecution);

        Plugin carDeployPlugin = MavenUtils.createPluginEntry(mavenProject, "org.wso2.maven",
                "maven-car-deploy-plugin", MavenConstants.MAVEN_CAR_DEPLOY_VERSION, true);
        Xpp3Dom carDeployConfElement = MavenUtils.createMainConfigurationNode(carDeployPlugin);
        Xpp3Dom serversElement = MavenUtils.createXpp3Node(carDeployConfElement, "carbonServers");
        Xpp3Dom carbonServer = MavenUtils.createXpp3Node(serversElement, "CarbonServer");
        Xpp3Dom trustStore = MavenUtils.createXpp3Node(carbonServer, "trustStorePath");
        trustStore.setValue("${basedir}/src/main/resources/security/wso2carbon.jks");
        Xpp3Dom trustStorePW = MavenUtils.createXpp3Node(carbonServer, "trustStorePassword");
        trustStorePW.setValue("wso2carbon");
        Xpp3Dom trustStoreType = MavenUtils.createXpp3Node(carbonServer, "trustStoreType");
        trustStoreType.setValue("JKS");
        Xpp3Dom serverUrl = MavenUtils.createXpp3Node(carbonServer, "serverUrl");
        serverUrl.setValue("https://localhost:9443");
        Xpp3Dom serverUserName = MavenUtils.createXpp3Node(carbonServer, "userName");
        serverUserName.setValue("admin");
        Xpp3Dom serverPW = MavenUtils.createXpp3Node(carbonServer, "password");
        serverPW.setValue("admin");
        Xpp3Dom serverOperation = MavenUtils.createXpp3Node(carbonServer, "operation");
        serverOperation.setValue("deploy");

        Repository repo = new Repository();
        repo.setUrl("http://dist.wso2.org/maven2");
        repo.setId("wso2-maven2-repository-1");

        Repository repo1 = new Repository();
        repo1.setUrl("http://maven.wso2.org/nexus/content/groups/wso2-public/");
        repo1.setId("wso2-nexus-repository-1");

        mavenProject.getModel().addRepository(repo);
        mavenProject.getModel().addPluginRepository(repo);

        mavenProject.getModel().addRepository(repo1);
        mavenProject.getModel().addPluginRepository(repo1);

        List<Dependency> dependencyList = new ArrayList<Dependency>();
        Properties properties = mavenProject.getModel().getProperties();
        for (DependencyData dependencyData : projectModel.getSelectedProjects()) {
            Dependency dependency = dependencyData.getDependency();
            dependencyList.add(dependency);
            properties.put(DistProjectUtils.getArtifactInfoAsString(dependency),
                    dependencyData.getServerRole());
        }
        ArtifactTypeMapping artifactTypeMapping = new ArtifactTypeMapping();
        properties.put("artifact.types", artifactTypeMapping.getArtifactTypes());
        mavenProject.getModel().setProperties(properties);

        MavenUtils.addMavenDependency(mavenProject, dependencyList);
        MavenUtils.saveMavenProject(mavenProject, pomfile);
        project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
        openEditor();
    } catch (Exception e) {
        log.error("An error occurred generating a project: ", e);
        return false;
    }
    return true;
}

From source file:org.wso2.developerstudio.eclipse.distribution.project.ui.wizard.ProjectExportWizard.java

License:Open Source License

private void exportArchivable(IProject project) throws Exception {
    String cAppType = "";
    MavenProject mavenProject;
    String ext = "";
    String finalFileName = "";
    mavenProject = DistProjectUtils.getMavenProject(project);
    cAppType = mavenProject.getModel().getPackaging();
    String version = mavenProject.getModel().getVersion();
    if (cAppType == null || !artifactTypeMapping.isValidArtifactType(cAppType)) {
        if (mavenProject.getModel().getProperties().containsKey("CApp.type")) {
            cAppType = (String) mavenProject.getModel().getProperties().get("CApp.type");
        }//from w  ww .j a va 2 s .  c om
    }
    List<IResource> archive = ExportUtil.buildProject(detailsPage.getSelectedProject(), cAppType);
    if (archive.size() == 1) {
        ext = artifactTypeMapping.getType(cAppType);
        finalFileName = String.format("%s_%s.%s", project.getName(), version, ext);
        File destFileName = new File(detailsPage.getExportPath(), finalFileName);
        if (destFileName.exists()) {
            org.apache.commons.io.FileUtils.deleteQuietly(destFileName);
        }
        FileUtils.copy(archive.get(0).getLocation().toFile(), destFileName);
    } else {
        throw new Exception("No resource found that matches the given type " + cAppType);
    }
}