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.jboss.maven.plugins.qstools.DependencyProvider.java

License:Apache License

private String resolveMavenProperty(MavenProject project, String textContent) throws InterpolationException {
    StringSearchInterpolator interpolator = new StringSearchInterpolator();
    // Associate project.model with ${project.*} and ${pom.*} prefixes
    PrefixedValueSourceWrapper modelWrapper = new PrefixedValueSourceWrapper(
            new ObjectBasedValueSource(project.getModel()), "project.", true);
    interpolator.addValueSource(modelWrapper);
    interpolator.addValueSource(new PropertiesBasedValueSource(project.getModel().getProperties()));
    return interpolator.interpolate(textContent);
}

From source file:org.jboss.tools.arquillian.ui.internal.refactoring.AddMissingTypeRefactoring.java

License:Open Source License

@Override
public Change createChange(IProgressMonitor pm) throws CoreException, OperationCanceledException {
    message = null;//from  ww  w .j  a va  2  s.c  o  m
    if (astRoot == null || (abstractMethodBindings == null && deploymentMethodName == null)) {
        message = CANNOT_FIND_A_DEPLOYMENT_METHOD;
        return null;
    }
    MethodDeclaration deploymentMethod = null;
    TextFileChange result = new TextFileChange(file.getName(), file);
    MultiTextEdit rootEdit = new MultiTextEdit();
    importRewrite = CodeStyleConfiguration.createImportRewrite(astRoot, true);
    if (astRoot.getAST().hasResolvedBindings()) {
        importRewrite.setUseContextToFilterImplicitImports(true);
    }
    rewrite = ASTRewrite.create(astRoot.getAST());
    IType fType = cUnit.findPrimaryType();
    if (fType.isAnonymous()) {
        final ClassInstanceCreation creation = (ClassInstanceCreation) ASTNodes
                .getParent(NodeFinder.perform(astRoot, fType.getNameRange()), ClassInstanceCreation.class);
        if (creation != null) {
            final AnonymousClassDeclaration declaration = creation.getAnonymousClassDeclaration();
            if (declaration != null)
                listRewriter = rewrite.getListRewrite(declaration,
                        AnonymousClassDeclaration.BODY_DECLARATIONS_PROPERTY);
        }
    } else {
        final AbstractTypeDeclaration declaration = (AbstractTypeDeclaration) ASTNodes
                .getParent(NodeFinder.perform(astRoot, fType.getNameRange()), AbstractTypeDeclaration.class);
        if (declaration != null)
            listRewriter = rewrite.getListRewrite(declaration, declaration.getBodyDeclarationsProperty());
    }
    if (listRewriter == null) {
        throw new CoreException(new Status(IStatus.ERROR, ArquillianUIActivator.PLUGIN_ID, IStatus.ERROR,
                "Could not find the type element", null));
    }
    ast = astRoot.getAST();
    ReturnStatement returnStatement;
    if (abstractMethodBindings != null) {
        IMethodBinding abstractMethodBinding = null;
        for (IMethodBinding binding : abstractMethodBindings) {
            if (binding.getName().equals(deploymentMethodName)) {
                abstractMethodBinding = binding;
                break;
            }
        }
        if (abstractMethodBinding == null) {
            message = CANNOT_FIND_A_DEPLOYMENT_METHOD;
            return null;
        }
        deploymentMethod = ast.newMethodDeclaration();
        deploymentMethod.setName(ast.newSimpleName(deploymentMethodName));

        IJavaProject javaProject = abstractMethodBinding.getJavaElement().getJavaProject();
        String archiveTypeName = ArquillianUtility.ORG_JBOSS_SHRINKWRAP_API_SPEC_JAVA_ARCHIVE;
        if (javaProject != null && javaProject.isOpen()) {
            IProject project = javaProject.getProject();
            IFile pomFile = project.getFile(IMavenConstants.POM_FILE_NAME);
            if (pomFile != null && pomFile.exists()) {
                try {
                    IMavenProjectFacade facade = MavenPlugin.getMavenProjectRegistry().create(project,
                            new NullProgressMonitor());
                    MavenProject mavenProject = facade.getMavenProject(new NullProgressMonitor());
                    Model model = mavenProject.getModel();
                    String packaging = model.getPackaging();
                    if (ArquillianConstants.WAR.equals(packaging)) {
                        archiveTypeName = ArquillianUtility.ORG_JBOSS_SHRINKWRAP_API_SPEC_WEB_ARCHIVE;
                    }
                    if (ArquillianConstants.EAR.equals(packaging)) {
                        archiveTypeName = ArquillianUtility.ORG_JBOSS_SHRINKWRAP_API_SPEC_ENTERPRISE_ARCHIVE;
                    }
                    if (ArquillianConstants.RAR.equals(packaging)) {
                        archiveTypeName = ArquillianUtility.ORG_JBOSS_SHRINKWRAP_API_SPEC_RESOURCEADAPTER_ARCHIVE;
                    }
                } catch (CoreException e) {
                    ArquillianUIActivator.log(e);
                }
            }
        }
        int index = archiveTypeName.lastIndexOf("."); //$NON-NLS-1$
        String simpleArchiveName;
        if (index >= 0) {
            simpleArchiveName = archiveTypeName.substring(index + 1);
        } else {
            simpleArchiveName = archiveTypeName;
        }
        SimpleName type2 = ast.newSimpleName(simpleArchiveName);
        importRewrite.addImport(archiveTypeName);
        deploymentMethod.setReturnType2(ast.newSimpleType(type2));
        deploymentMethod.setConstructor(false);
        deploymentMethod.modifiers()
                .addAll(ASTNodeFactory.newModifiers(ast, Modifier.PUBLIC | Modifier.STATIC));

        Annotation marker = rewrite.getAST().newMarkerAnnotation();
        importRewrite.addImport(ArquillianUtility.ORG_JBOSS_ARQUILLIAN_CONTAINER_TEST_API_DEPLOYMENT);
        marker.setTypeName(rewrite.getAST().newSimpleName("Deployment")); //$NON-NLS-1$
        rewrite.getListRewrite(deploymentMethod, MethodDeclaration.MODIFIERS2_PROPERTY).insertFirst(marker,
                null);

        Block body = ast.newBlock();
        deploymentMethod.setBody(body);

        // XXXArchive archive = (XXXArchive) AbstractTest.createDeployment();
        String declaringClassQualifiedName = abstractMethodBinding.getDeclaringClass().getQualifiedName();
        importRewrite.addImport(declaringClassQualifiedName);
        String declaringClassName = abstractMethodBinding.getDeclaringClass().getName();
        MethodInvocation deploymentInvocation = ast.newMethodInvocation();
        deploymentInvocation.setExpression(ast.newName(declaringClassName));
        deploymentInvocation.setName(ast.newSimpleName(deploymentMethodName));
        VariableDeclarationFragment archiveDeclFragment = ast.newVariableDeclarationFragment();
        archiveDeclFragment.setName(ast.newSimpleName(ARCHIVE_VARIABLE));
        ITypeBinding returnType = abstractMethodBinding.getReturnType();
        if (!archiveTypeName.equals(returnType.getQualifiedName())) {
            CastExpression cast = ast.newCastExpression();
            cast.setType(ast.newSimpleType(ast.newName(simpleArchiveName)));
            cast.setExpression(deploymentInvocation);
            archiveDeclFragment.setInitializer(cast);
        } else {
            archiveDeclFragment.setInitializer(deploymentInvocation);
        }
        VariableDeclarationStatement vStatement = ast.newVariableDeclarationStatement(archiveDeclFragment);
        vStatement.setType(ast.newSimpleType(ast.newName(simpleArchiveName)));
        body.statements().add(vStatement);

        //return archive;
        returnStatement = ast.newReturnStatement();
        returnStatement.setExpression(ast.newSimpleName(ARCHIVE_VARIABLE));
        //body.statements().add(returnStatement);
    } else {
        for (MethodDeclaration md : deploymentMethodDeclarations) {
            if (deploymentMethodName.equals(md.getName().getIdentifier())) {
                deploymentMethod = md;
                break;
            }
        }
        if (deploymentMethod == null) {
            message = CANNOT_FIND_A_DEPLOYMENT_METHOD;
            return null;
        }
        returnStatement = getReturnStatement(deploymentMethod);
        ast = deploymentMethod.getAST();
        rewrite = ASTRewrite.create(ast);
    }

    if (returnStatement == null) {
        message = "Cannot find a return statement";
        return null;
    }

    Expression expression = returnStatement.getExpression();

    if (expression instanceof MethodInvocation) {
        int start = expression.getStartPosition();
        int length = expression.getLength();
        selectedExpression = getSelectedExpression(new SourceRange(start, length));
        tempName = ARCHIVE_VARIABLE;
        int i = 0;
        while (!checkTempName(tempName).isOK()) {
            tempName = tempName + i++;
        }
        createAndInsertTempDeclaration(start, length);
        addReplaceExpressionWithTemp();
        createStatements(tempName, className, deploymentMethod, returnStatement, rootEdit, pm);
    }
    if (expression instanceof SimpleName) {
        String name = ((SimpleName) expression).getIdentifier();
        createStatements(name, className, deploymentMethod, returnStatement, rootEdit, pm);
    }

    result.setEdit(rootEdit);
    return result;
}

From source file:org.jboss.tools.arquillian.ui.internal.wizards.NewArquillianJUnitTestCaseDeploymentPage.java

License:Open Source License

@Override
public void createControl(Composite parent) {
    Composite composite = new Composite(parent, SWT.NONE);
    composite.setLayout(new GridLayout(2, false));
    GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);
    composite.setLayoutData(gd);//from   ww w.  j a  v a2 s  .  co  m
    Dialog.applyDialogFont(composite);
    setControl(composite);

    // method name
    Label methodNameLabel = new Label(composite, SWT.NONE);
    methodNameLabel.setText("Method name:");

    methodNameText = new Text(composite, SWT.BORDER);
    methodNameText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

    // deployment name
    Label deploymentNameLabel = new Label(composite, SWT.NONE);
    deploymentNameLabel.setText("Deployment name:");

    deploymentNameText = new Text(composite, SWT.BORDER);
    deploymentNameText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

    // deployment order
    Label deploymentOrderLabel = new Label(composite, SWT.NONE);
    deploymentOrderLabel.setText("Deployment order:");

    deploymentOrderText = new Text(composite, SWT.BORDER);
    deploymentOrderText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    deploymentOrderText.addListener(SWT.Verify, new Listener() {

        public void handleEvent(Event e) {
            String string = e.text;
            char[] chars = new char[string.length()];
            string.getChars(0, chars.length, chars, 0);
            for (int i = 0; i < chars.length; i++) {
                if (!('0' <= chars[i] && chars[i] <= '9')) {
                    Display.getCurrent().beep();
                    e.doit = false;
                    return;
                }
            }
        }
    });

    // archive type
    Label archiveTypeLabel = new Label(composite, SWT.NONE);
    archiveTypeLabel.setText("Archive type:");

    archiveTypeCombo = new Combo(composite, SWT.READ_ONLY);
    archiveTypeCombo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    archiveTypeCombo.setItems(archiveTypes);

    //archive name
    Label archiveNameLabel = new Label(composite, SWT.NONE);
    archiveNameLabel.setText("Archive name:");

    archiveNameText = new Text(composite, SWT.BORDER);
    archiveNameText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

    archiveNameText.addModifyListener(new ModifyListener() {

        @Override
        public void modifyText(ModifyEvent e) {
            validate();
        }
    });
    // beans.xml
    beansXmlButton = new Button(composite, SWT.CHECK);
    gd = new GridData();
    gd.horizontalSpan = 2;
    beansXmlButton.setText("Add an empty beans.xml file");

    // FIXME 
    methodNameText.setText("createDeployment"); //$NON-NLS-1$
    archiveTypeCombo.select(JAR_INDEX);
    IJavaProject javaProject = getJavaProject();
    if (javaProject != null && javaProject.isOpen()) {
        IProject project = javaProject.getProject();
        IFile pomFile = project.getFile(IMavenConstants.POM_FILE_NAME);
        if (pomFile != null && pomFile.exists()) {
            try {
                IMavenProjectFacade facade = MavenPlugin.getMavenProjectRegistry().create(project,
                        new NullProgressMonitor());
                MavenProject mavenProject = facade.getMavenProject(new NullProgressMonitor());
                Model model = mavenProject.getModel();
                String packaging = model.getPackaging();
                if (ArquillianConstants.WAR.equals(packaging)) {
                    archiveTypeCombo.select(WAR_INDEX);
                }
                if (ArquillianConstants.EAR.equals(packaging)) {
                    archiveTypeCombo.select(EAR_INDEX);
                }
                if (ArquillianConstants.RAR.equals(packaging)) {
                    archiveTypeCombo.select(RAR_INDEX);
                }
            } catch (CoreException e1) {
                ArquillianUIActivator.log(e1);
            }
        }

    }
    archiveNameText.setText(""); //$NON-NLS-1$
    beansXmlButton.setSelection(true);
    beansXmlButton.setEnabled(archiveTypeCombo.getSelectionIndex() != EAR_INDEX);

    methodNameText.addModifyListener(new ModifyListener() {

        @Override
        public void modifyText(ModifyEvent e) {
            validate();
        }
    });

    archiveTypeCombo.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            beansXmlButton.setEnabled(archiveTypeCombo.getSelectionIndex() != EAR_INDEX);
            refreshResourceViewer();
            validate();
        }

    });

    createTypesControls(composite);
    createResourcesControls(composite);
    if (javaElement instanceof ICompilationUnit && getType((ICompilationUnit) javaElement) != null) {
        // archive type
        Label insertionPointLabel = new Label(composite, SWT.NONE);
        insertionPointLabel.setText("Insertion point:");

        insertionPointCombo = new Combo(composite, SWT.READ_ONLY);
        insertionPointCombo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
        type = getType((ICompilationUnit) javaElement);
        try {
            elements = type.getChildren();
        } catch (JavaModelException e1) {
            elements = new IJavaElement[0];
        }
        List<String> items = new ArrayList<String>();
        items.add("First member");
        items.add("Last member");
        insertPositions = new ArrayList<IJavaElement>();

        insertPositions.add(elements.length > 0 ? elements[0] : null); // first
        insertPositions.add(null); // last

        for (int i = 0; i < elements.length; i++) {
            IJavaElement curr = elements[i];
            String methodLabel = JavaElementLabels.getElementLabel(curr, JavaElementLabels.M_PARAMETER_TYPES);
            items.add("After '" + methodLabel + "'");
            try {
                insertPositions.add(findSibling(curr, elements));
            } catch (JavaModelException e1) {
                ArquillianUIActivator.log(e1);
                insertPositions.add(null);
            }
        }
        insertPositions.add(null);

        insertionPointCombo.setItems(items.toArray(new String[0]));
        insertionPointCombo.select(0);
        if (javaElement != null) {
            String text = methodNameText.getText();
            javaProject = getJavaProject();
            IJavaElement context = null;
            if (javaProject != null) {
                context = javaProject;
            }
            IStatus status = validateMethodName(text, context);
            if (!status.isOK()) {
                setErrorMessage(status.getMessage());
            }
        }
    }
}

From source file:org.jboss.tools.maven.core.MavenUtil.java

License:Open Source License

/**
 * Refresh the mavenProject parent, if it exists in the workspace.
 *  /*  w  w  w . ja v a  2 s  .  co  m*/
 * @param mavenProject
 * @throws CoreException
 */
public static void refreshParent(MavenProject mavenProject) throws CoreException {
    if (mavenProject == null || mavenProject.getModel() == null) {
        return;
    }
    Parent parent = mavenProject.getModel().getParent();
    if (parent != null) {
        IMavenProjectFacade parentFacade = MavenPlugin.getMavenProjectRegistry()
                .getMavenProject(parent.getGroupId(), parent.getArtifactId(), parent.getVersion());
        if (parentFacade != null) {
            parentFacade.getProject().refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
        }
    }
}

From source file:org.jetbrains.idea.maven.server.embedder.Maven2ServerEmbedderImpl.java

License:Apache License

@Nonnull
private MavenServerExecutionResult createExecutionResult(File file, MavenExecutionResult result,
        DependencyNode rootNode) throws RemoteException {
    Collection<MavenProjectProblem> problems = MavenProjectProblem.createProblemsList();
    Set<MavenId> unresolvedArtifacts = new HashSet<MavenId>();

    validate(file, result.getExceptions(), problems, unresolvedArtifacts);

    MavenProject mavenProject = result.getMavenProject();
    if (mavenProject == null) {
        return new MavenServerExecutionResult(null, problems, unresolvedArtifacts);
    }/*  ww w  .  j a  va 2 s .c o m*/

    MavenModel model = Maven2ModelConverter.convertModel(mavenProject.getModel(),
            mavenProject.getCompileSourceRoots(), mavenProject.getTestCompileSourceRoots(),
            mavenProject.getArtifacts(), (rootNode == null ? Collections.emptyList() : rootNode.getChildren()),
            mavenProject.getExtensionArtifacts(), getLocalRepositoryFile());

    RemoteNativeMavenProjectHolder holder = new RemoteNativeMavenProjectHolder(mavenProject);
    try {
        UnicastRemoteObject.exportObject(holder, 0);
    } catch (RemoteException e) {
        throw new RuntimeException(e);
    }

    Collection<String> activatedProfiles = collectActivatedProfiles(mavenProject);

    MavenServerExecutionResult.ProjectData data = new MavenServerExecutionResult.ProjectData(model,
            Maven2ModelConverter.convertToMap(mavenProject.getModel()), holder, activatedProfiles);
    return new MavenServerExecutionResult(data, problems, unresolvedArtifacts);
}

From source file:org.jetbrains.idea.maven.server.Maven30ServerEmbedderImpl.java

License:Apache License

@Nonnull
private MavenServerExecutionResult createExecutionResult(File file, MavenExecutionResult result,
        DependencyNode rootNode) throws RemoteException {
    Collection<MavenProjectProblem> problems = MavenProjectProblem.createProblemsList();
    Set<MavenId> unresolvedArtifacts = new HashSet<MavenId>();

    validate(file, result.getExceptions(), problems, unresolvedArtifacts);

    MavenProject mavenProject = result.getMavenProject();
    if (mavenProject == null)
        return new MavenServerExecutionResult(null, problems, unresolvedArtifacts);

    MavenModel model = null;// ww  w. j  a  va  2 s  .  c om
    try {
        if (USE_MVN2_COMPATIBLE_DEPENDENCY_RESOLVING) {
            //noinspection unchecked
            final List<DependencyNode> dependencyNodes = rootNode == null
                    ? Collections.<DependencyNode>emptyList()
                    : rootNode.getChildren();
            model = MavenModelConverter.convertModel(mavenProject.getModel(),
                    mavenProject.getCompileSourceRoots(), mavenProject.getTestCompileSourceRoots(),
                    mavenProject.getArtifacts(), dependencyNodes, mavenProject.getExtensionArtifacts(),
                    getLocalRepositoryFile());
        } else {
            final DependencyResolutionResult dependencyResolutionResult = result
                    .getDependencyResolutionResult();
            final org.sonatype.aether.graph.DependencyNode dependencyGraph = dependencyResolutionResult != null
                    ? dependencyResolutionResult.getDependencyGraph()
                    : null;

            final List<org.sonatype.aether.graph.DependencyNode> dependencyNodes = dependencyGraph != null
                    ? dependencyGraph.getChildren()
                    : Collections.<org.sonatype.aether.graph.DependencyNode>emptyList();
            model = Maven30AetherModelConverter.convertModelWithAetherDependencyTree(mavenProject.getModel(),
                    mavenProject.getCompileSourceRoots(), mavenProject.getTestCompileSourceRoots(),
                    mavenProject.getArtifacts(), dependencyNodes, mavenProject.getExtensionArtifacts(),
                    getLocalRepositoryFile());
        }
    } catch (Exception e) {
        validate(mavenProject.getFile(), Collections.singleton(e), problems, null);
    }

    RemoteNativeMavenProjectHolder holder = new RemoteNativeMavenProjectHolder(mavenProject);
    try {
        UnicastRemoteObject.exportObject(holder, 0);
    } catch (RemoteException e) {
        throw new RuntimeException(e);
    }

    Collection<String> activatedProfiles = collectActivatedProfiles(mavenProject);

    MavenServerExecutionResult.ProjectData data = new MavenServerExecutionResult.ProjectData(model,
            MavenModelConverter.convertToMap(mavenProject.getModel()), holder, activatedProfiles);
    return new MavenServerExecutionResult(data, problems, unresolvedArtifacts);
}

From source file:org.jetbrains.idea.maven.server.Maven32ServerEmbedderImpl.java

License:Apache License

@Nonnull
private MavenServerExecutionResult createExecutionResult(File file, MavenExecutionResult result,
        DependencyNode rootNode) throws RemoteException {
    Collection<MavenProjectProblem> problems = MavenProjectProblem.createProblemsList();
    Set<MavenId> unresolvedArtifacts = new HashSet<MavenId>();

    validate(file, result.getExceptions(), problems, unresolvedArtifacts);

    MavenProject mavenProject = result.getMavenProject();
    if (mavenProject == null) {
        return new MavenServerExecutionResult(null, problems, unresolvedArtifacts);
    }//from  w  ww  .  j a v a  2s  . c om

    MavenModel model = null;
    try {
        if (USE_MVN2_COMPATIBLE_DEPENDENCY_RESOLVING) {
            //noinspection unchecked
            final List<DependencyNode> dependencyNodes = rootNode == null
                    ? Collections.<DependencyNode>emptyList()
                    : rootNode.getChildren();
            model = MavenModelConverter.convertModel(mavenProject.getModel(),
                    mavenProject.getCompileSourceRoots(), mavenProject.getTestCompileSourceRoots(),
                    mavenProject.getArtifacts(), dependencyNodes, mavenProject.getExtensionArtifacts(),
                    getLocalRepositoryFile());
        } else {
            final DependencyResolutionResult dependencyResolutionResult = result
                    .getDependencyResolutionResult();
            final org.eclipse.aether.graph.DependencyNode dependencyGraph = dependencyResolutionResult != null
                    ? dependencyResolutionResult.getDependencyGraph()
                    : null;

            final List<org.eclipse.aether.graph.DependencyNode> dependencyNodes = dependencyGraph != null
                    ? dependencyGraph.getChildren()
                    : Collections.<org.eclipse.aether.graph.DependencyNode>emptyList();
            model = Maven3AetherModelConverter.convertModelWithAetherDependencyTree(mavenProject.getModel(),
                    mavenProject.getCompileSourceRoots(), mavenProject.getTestCompileSourceRoots(),
                    mavenProject.getArtifacts(), dependencyNodes, mavenProject.getExtensionArtifacts(),
                    getLocalRepositoryFile());
        }
    } catch (Exception e) {
        validate(mavenProject.getFile(), Collections.singleton(e), problems, null);
    }

    RemoteNativeMavenProjectHolder holder = new RemoteNativeMavenProjectHolder(mavenProject);
    try {
        UnicastRemoteObject.exportObject(holder, 0);
    } catch (RemoteException e) {
        throw new RuntimeException(e);
    }

    Collection<String> activatedProfiles = collectActivatedProfiles(mavenProject);

    MavenServerExecutionResult.ProjectData data = new MavenServerExecutionResult.ProjectData(model,
            MavenModelConverter.convertToMap(mavenProject.getModel()), holder, activatedProfiles);
    return new MavenServerExecutionResult(data, problems, unresolvedArtifacts);
}

From source file:org.kloeckner.maven.plugin.VersionRange.java

License:Apache License

private void transformDocument(MavenProject project, Element rootElement, List<MavenProject> reactorProjects,
        Object result, boolean simulate) throws MojoExecutionException {
    Namespace namespace = rootElement.getNamespace();

    List<String> eagerArtifactsStrings = VersionRangeUtils.loadEagerDependencies(dependencyVersionRangePath,
            dependencyVersionRangeFile);

    Map<String, String> mappedVersions = getNextVersionMap(eagerArtifactsStrings);
    Map<String, String> originalVersions = getOriginalVersionMap(project);

    getLog().debug("mapped Versions (newer Versions):" + mappedVersions);
    getLog().debug("original Versions: " + originalVersions);

    Model model = project.getModel();
    Element properties = rootElement.getChild("properties", namespace);

    // String parentVersion = EagerUpdateUtils.rewriteParent(project,
    // rootElement, namespace, mappedVersions, originalVersions);
    VersionRangeUtils.rewriteParent(project, rootElement, namespace, mappedVersions, originalVersions);

    List<Element> roots = new ArrayList<Element>();
    roots.add(rootElement);// w  w  w  .jav  a2s  .com
    List<Element> profileElements = VersionRangeUtils.getChildren(rootElement, "profiles", "profile");
    getLog().debug("got profiles: " + profileElements);
    roots.addAll(profileElements);

    for (Element root : roots) {
        rewriteArtifactVersions(VersionRangeUtils.getChildren(root, "parent"), mappedVersions, originalVersions,
                model, properties, result);
        rewriteArtifactVersions(VersionRangeUtils.getChildren(root, "dependencies", "dependency"),
                mappedVersions, originalVersions, model, properties, result);
        rewriteArtifactVersions(
                VersionRangeUtils.getChildren(root, "dependencyManagement", "dependencies", "dependency"),
                mappedVersions, originalVersions, model, properties, result);
    }
}

From source file:org.l2x6.maven.srcdeps.SrcdepsLifecycleParticipant.java

License:Apache License

@Override
public void afterProjectsRead(MavenSession session) throws MavenExecutionException {
    boolean globalSkip = Boolean
            .valueOf(session.getUserProperties().getProperty(Element.skip.toSrcDepsProperty(), "false"));
    if (globalSkip) {
        logger.info("srcdeps-maven-plugin skipped");
        return;//w  w w  .ja  v a 2  s .co m
    }

    List<String> goals = session.getGoals();
    if (goals != null && shouldTriggerSrcdepsBuild(goals)) {
        List<MavenProject> projects = session.getProjects();
        logger.debug("SrcdepsLifecycleParticipant projects = " + projects);

        Set<Gav> projectGavs = new HashSet<SrcdepsLifecycleParticipant.Gav>();
        for (MavenProject project : projects) {
            projectGavs.add(Gav.ofModel(project.getModel()));
        }

        boolean builtSomething = false;

        for (MavenProject project : projects) {
            logger.info("srcdeps-maven-plugin scanning project " + project.getGroupId() + ":"
                    + project.getArtifactId());

            Optional<Plugin> plugin = findPlugin(project,
                    SrcdepsPluginConstants.ORG_L2X6_MAVEN_SRCDEPS_GROUP_ID,
                    SrcdepsPluginConstants.SRCDEPS_MAVEN_PLUGIN_ADRTIFACT_ID);
            if (plugin.isPresent() && project.getDependencies() != null) {

                Optional<Xpp3Dom> conf = plugin.map(Mapper.TO_DOM);
                if (conf.isPresent()) {

                    MojoExecution mojoExecution = new MojoExecution(plugin.value(), "install", "whatever");
                    PropsEvaluator evaluator = new PropsEvaluator(
                            new PluginParameterExpressionEvaluator(session, mojoExecution));
                    SrcdepsConfiguration srcdepsConfiguration = new SrcdepsConfiguration.Builder(evaluator,
                            conf.value(), session, logger).build();
                    if (srcdepsConfiguration.isSkip()) {
                        logger.info("srcdeps-maven-plugin skipped for project " + project.getGroupId() + ":"
                                + project.getArtifactId());
                    } else {
                        @SuppressWarnings("unchecked")
                        Map<Dependency, SrcVersion> revisions = filterSrcdeps(project.getDependencies(),
                                projectGavs);
                        if (!revisions.isEmpty()) {
                            assertFailWithProfiles(session, srcdepsConfiguration);
                            new SrcdepsInstaller(session, logger, artifactHandlerManager, srcdepsConfiguration,
                                    revisions, buildService).install();
                            builtSomething = true;
                        }
                    }
                }
            }
        }

        if (builtSomething) {
            Optional<Plugin> plugin = findPlugin(session.getTopLevelProject(), "org.apache.maven.plugins",
                    "maven-clean-plugin");
            if (plugin.isPresent()) {
                addCleanExclude(session.getTopLevelProject(), plugin.value());
            }
        }

    }
}

From source file:org.ops4j.pax.construct.lifecycle.EclipseOSGiMojo.java

License:Apache License

/**
 * Download and save the Maven POM for the given artifact
 * /*w  ww . j  a  va2  s . c  o m*/
 * @param baseDir base directory
 * @param artifact Maven artifact
 * @return the downloaded project
 */
private MavenProject writeProjectPom(File baseDir, Artifact artifact) {
    MavenProject pom = null;

    String groupId = artifact.getGroupId();
    String artifactId = artifact.getArtifactId();
    String version = artifact.getVersion();

    Artifact pomArtifact = artifactFactory.createProjectArtifact(groupId, artifactId, version);

    try {
        pom = m_mavenProjectBuilder.buildFromRepository(pomArtifact, remoteArtifactRepositories,
                localRepository);

        // need this when using Maven 2.1 which doesn't do any alignment
        m_pathTranslator.alignToBaseDirectory(pom.getModel(), baseDir);

        File pomFile = new File(baseDir, "pom.xml");

        Writer writer = StreamFactory.newXmlWriter(pomFile);
        pom.writeModel(writer);
        pom.setFile(pomFile);
        IOUtil.close(writer);
    } catch (ProjectBuildingException e) {
        getLog().warn("Unable to build POM for artifact " + pomArtifact);
    } catch (IOException e) {
        getLog().warn("Unable to write POM for artifact " + pomArtifact);
    }

    return pom;
}