Package org.sonatype.plexus.build.incremental

Examples of org.sonatype.plexus.build.incremental.BuildContext


  public Set<IProject> build(int kind, IProgressMonitor monitor) throws Exception {
    // execute mojo
    Set<IProject> result = super.build(kind, monitor);
    if (true) {
      IMaven maven = MavenPlugin.getMaven();
      BuildContext buildContext = getBuildContext();
      IMavenProjectFacade mproj = getMavenProjectFacade();

      IProject proj = mproj.getProject();

      proj.refreshLocal(IResource.DEPTH_INFINITE, monitor);

      for (String dirName : outputDirs) {
        IFile generatedSource = proj.getFile(dirName);
        File generatedSourceFolder = generatedSource.getFullPath().toFile();
        buildContext.refresh(generatedSourceFolder);
        // tell m2e builder to refresh generated files
        File generated = maven.getMojoParameterValue(getSession(), getMojoExecution(), dirName, File.class);
        if (generated != null) {
          buildContext.refresh(generated);
        }
      }
    }
    return result;
  }
View Full Code Here


  public Set<IProject> build(int kind, IProgressMonitor monitor) throws Exception {
    IMaven maven = MavenPlugin.getMaven();
    // execute mojo
    Set<IProject> result = super.build(kind, monitor);

    BuildContext buildContext = getBuildContext();
    IMavenProjectFacade mproj = getMavenProjectFacade();

    IProject proj = mproj.getProject();

    proj.refreshLocal(IResource.DEPTH_INFINITE, monitor);
    IFile generatedSource = proj.getFile(sourceRoot);
    File generatedSourceFolder = generatedSource.getFullPath().toFile();
    buildContext.refresh(generatedSourceFolder);
    // tell m2e builder to refresh generated files
    File generated = maven.getMojoParameterValue(getSession(), getMojoExecution(), sourceRoot, File.class);
    if (generated != null) {
      buildContext.refresh(generated);
    }

    return result;
  }
View Full Code Here

  public Set<IProject> build(int kind, IProgressMonitor monitor) throws Exception {
    IMaven maven = MavenPlugin.getMaven();
    // execute mojo
    Set<IProject> result = super.build(kind, monitor);

    BuildContext buildContext = getBuildContext();
    IMavenProjectFacade mproj = getMavenProjectFacade();

    IProject proj = mproj.getProject();

    proj.refreshLocal(IResource.DEPTH_INFINITE, monitor);

    IFile generatedSource = proj.getFile(sourceRoot);
    File generatedSourceFolder = generatedSource.getFullPath().toFile();
    buildContext.refresh(generatedSourceFolder);
    // tell m2e builder to refresh generated files
    File generated = maven.getMojoParameterValue(getSession(), getMojoExecution(), sourceRoot, File.class);
    if (generated != null) {
      buildContext.refresh(generated);
    }

    return result;
  }
View Full Code Here

        {
            @Override
            public Set<IProject> build( int kind, IProgressMonitor monitor )
                throws Exception
            {
                BuildContext buildContext = getBuildContext();
                IMavenProjectFacade facade = getMavenProjectFacade();
                IProject project = facade.getProject();
                MavenProject mavenProject = facade.getMavenProject( monitor );

                @SuppressWarnings( "unchecked" )
                Map<String, String> instructions =
                    maven.getMojoParameterValue( mavenProject, execution, "instructions", Map.class, monitor );

                MojoExecution _execution = amendMojoExecution( mavenProject, execution, instructions );

                IFile manifest = getManifestFile( facade, _execution, monitor );

                // regenerate bundle manifest if any of the following is true
                // - full workspace build
                // - PROP_FORCE_GENERATE project session property is set (see the comment below)
                // - any of included bnd files changed

                boolean generate = IncrementalProjectBuilder.FULL_BUILD == kind;

                // the property is set by OsgiBundleProjectConfigurator.mavenProjectChanged is a workaround for
                // m2e design limitation, which does not allow project configurators trigger resource deltas
                // visible to build participants. See comment in OsgiBundleProjectConfigurator.mavenProjectChanged
                generate =
                    generate || Boolean.parseBoolean( (String) project.getSessionProperty( PROP_FORCE_GENERATE ) );
                // reset FORCE flag so we don't regenerate forever
                project.setSessionProperty( PROP_FORCE_GENERATE, null );

                generate = generate || isIncludeBndFileChange( buildContext, instructions );

                if ( !generate )
                {
                    return null;
                }

                maven.execute( mavenProject, _execution, monitor );

                manifest.refreshLocal( IResource.DEPTH_INFINITE, monitor ); // refresh parent?

                if ( isDeclerativeServices( mavenProject.getBasedir(), instructions ) )
                {
                    IFolder outputFolder = getOutputFolder( monitor, facade, _execution );
                    outputFolder.getFolder( "OSGI-OPT" ).refreshLocal( IResource.DEPTH_INFINITE, monitor );
                    outputFolder.getFolder( "OSGI-INF" ).refreshLocal( IResource.DEPTH_INFINITE, monitor );
                }

                return null;
            }

            protected IFolder getOutputFolder( IProgressMonitor monitor, IMavenProjectFacade facade,
                                               MojoExecution _execution )
                throws CoreException
            {
                File outputDirectory =
                    getParameterValue( facade.getMavenProject(), "outputDirectory", File.class, _execution, monitor );
                IPath outputPath = facade.getProjectRelativePath( outputDirectory.getAbsolutePath() );
                IFolder outputFolder = facade.getProject().getFolder( outputPath );
                return outputFolder;
            }

            private boolean isIncludeBndFileChange( BuildContext buildContext, Map<String, String> instructions )
                throws CoreException
            {
                for ( String path : getIncludeBndFilePaths( instructions ) )
                {
                    // this does not detect changes in outside ${project.basedir}

                    if ( buildContext.hasDelta( path ) )
                    {
                        return true;
                    }
                }
View Full Code Here

    MojoExecution mojoExecution = getMojoExecution();
    if (mojoExecution == null) {
      return null;
    }

    BuildContext originalBuildContext = super.getBuildContext();
    currentBuildContext = originalBuildContext;
    Collection<File> sources = getContextRoots(getMavenProjectFacade(), mojoExecution);
    if (notCleanFullBuild(kind)) {
      Collection<String> includedFiles = new ArrayList<String>();
      // check if any of the web resource files changed
View Full Code Here

    IProject project = facade.getProject();
    //FIXME assuming path relative to current project
    IPath targetFolder = configuration.getTargetFolder();
    IResourceDelta delta = getDelta(project);

    BuildContext oldBuildContext = ThreadBuildContext.getContext();
   
    try {
      forceCopyBuildContext = null;
      List<String> filters = configuration.getFilters();
      if (changeRequiresForcedCopy(facade, filters, delta)) {
View Full Code Here

  @Override
  public Set<IProject> build(final int kind, final IProgressMonitor monitor) throws Exception {

    final IMaven maven = MavenPlugin.getMaven();
    final MojoExecution mojoExecution = getMojoExecution();
    final BuildContext buildContext = getBuildContext();

    if (mojoExecution == null) {
      return null;
    }

    final IFile pomFile = (IFile) getMavenProjectFacade().getProject().findMember("pom.xml");
   
    // skipping the build if not a Full Build or if pom.xml has not changed
    if(kind != IncrementalProjectBuilder.FULL_BUILD && !buildContext.hasDelta(pomFile.getLocation().toFile())) {
      return null;
    }
   
    setTaskName(monitor);
View Full Code Here

TOP

Related Classes of org.sonatype.plexus.build.incremental.BuildContext

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.