Package org.guvnor.common.services.project.builder.model

Examples of org.guvnor.common.services.project.builder.model.BuildResults


                result.setResult( "Project [" + projectName + "] does not exist" );
                jobResultEvent.fire( result );
                return;
            }

            BuildResults buildResults = buildService.build( project );

            result.setDetailedResult( buildResultsToDetailedStringMessages( buildResults.getMessages() ) );
            result.setStatus( buildResults.getMessages().isEmpty() ? JobStatus.SUCCESS : JobStatus.FAIL );
            jobResultEvent.fire( result );
        }
    }
View Full Code Here


                result.setResult( "Project [" + projectName + "] does not exist" );
                jobResultEvent.fire( result );
                return;
            }

            BuildResults buildResults = null;
            try {
                buildResults = buildService.buildAndDeploy( project );

                result.setDetailedResult( buildResults == null ? null : deployResultToDetailedStringMessages( buildResults ) );
                result.setStatus( buildResults.getMessages().isEmpty() ? JobStatus.SUCCESS : JobStatus.FAIL );
            } catch ( Throwable t ) {
                List<String> errorResult = new ArrayList<String>();
                errorResult.add( t.getMessage() );
                result.setDetailedResult( errorResult );
                result.setStatus( JobStatus.FAIL );
View Full Code Here

                result.setResult( "Project [" + projectName + "] does not exist" );
                jobResultEvent.fire( result );
                return;
            }

            BuildResults buildResults = buildService.buildAndDeploy( project );

            result.setDetailedResult( buildResults == null ? null : deployResultToDetailedStringMessages( buildResults ) );
            result.setStatus( buildResults.getMessages().isEmpty() ? JobStatus.SUCCESS : JobStatus.FAIL );
            jobResultEvent.fire( result );
        }
    }
View Full Code Here

    public BuildResults build() {
        //KieBuilder is not re-usable for successive "full" builds
        kieBuilder = kieServices.newKieBuilder( kieFileSystem );
        final Results kieResults = kieBuilder.buildAll().getResults();
        final BuildResults results = convertMessages( kieResults );

        //Add validate messages from external helpers
        for ( Map.Entry<Path, List<ValidationMessage>> e : nonKieResourceValidationHelperMessages.entrySet() ) {
            final List<ValidationMessage> validationMessages = e.getValue();
            if ( !( validationMessages == null || validationMessages.isEmpty() ) ) {
                for ( ValidationMessage validationMessage : validationMessages ) {
                    results.addBuildMessage( convertValidationMessage( validationMessage ) );
                }
            }
        }

        //Check external imports are available. These are loaded when a DMO is requested, but it's better to report them early
        final org.uberfire.java.nio.file.Path nioExternalImportsPath = moduleDirectory.resolve( "project.imports" );
        if ( Files.exists( nioExternalImportsPath ) ) {
            final org.uberfire.backend.vfs.Path externalImportsPath = Paths.convert( nioExternalImportsPath );
            final ProjectImports projectImports = projectService.load( externalImportsPath );
            final Imports imports = projectImports.getImports();
            for ( final Import item : imports.getImports() ) {
                try {
                    Class clazz = this.getClass().getClassLoader().loadClass( item.getType() );
                } catch ( ClassNotFoundException cnfe ) {
                    results.addBuildMessage( makeMessage( ERROR_CLASS_NOT_FOUND,
                                                          cnfe ) );
                }
            }
        }

        //At the end we are interested to ensure that external .jar files referenced as dependencies don't have
        // referential inconsistencies. We will at least provide a basic algorithm to ensure that if an external class
        // X references another external class Y, Y is also accessible by the class loader.
        final KieModuleMetaData kieModuleMetaData = getKieModuleMetaData();
        for ( final String packageName : kieModuleMetaData.getPackages() ) {
            for ( final String className : kieModuleMetaData.getClasses( packageName ) ) {
                final Class clazz = kieModuleMetaData.getClass( packageName, className );
                final TypeSource typeSource = getClassSource( kieModuleMetaData, clazz );
                if ( TypeSource.JAVA_DEPENDENCY == typeSource ) {
                    try {
                        verifyExternalClass( clazz );
                    } catch ( Throwable e ) {
                        results.addBuildMessage( makeMessage(
                                MessageFormat.format( ERROR_EXTERNAL_CLASS_VERIFICATON, clazz.getName() ), e ) );
                    }
                }
            }
        }

        //It's impossible to retrieve a KieContainer if the KieModule contains errors
        if ( results.getMessages().isEmpty() ) {
            kieContainer = kieServices.newKieContainer( kieBuilder.getKieModule().getReleaseId() );
        }

        fireRuleNameUpdateEvent();
View Full Code Here

            }
        }
    }

    private BuildResults convertMessages( final Results kieBuildResults ) {
        final BuildResults results = new BuildResults( gav );
        for ( final Message message : kieBuildResults.getMessages() ) {
            results.addBuildMessage( convertMessage( message ) );
        }
        return results;
    }
View Full Code Here

        synchronized ( kieFileSystem ) {
            //KieBuilder is not re-usable for successive "full" builds
            kieBuilder = kieServices.newKieBuilder( kieFileSystem );

            //Record RTEs from KieBuilder - that can fail if a rule uses an inaccessible class
            final BuildResults results = new BuildResults( gav );
            try {
                final Results kieResults = kieBuilder.buildAll().getResults();
                for ( final Message message : kieResults.getMessages() ) {
                    results.addBuildMessage( convertMessage( message ) );
                }

                //It's impossible to retrieve a KieContainer if the KieModule contains errors
                if ( results.getErrorMessages().isEmpty() ) {
                    kieContainer = kieServices.newKieContainer( kieBuilder.getKieModule().getReleaseId() );
                } else {
                    kieContainer = null;
                }

            } catch ( LinkageError e ) {
                final String msg = MessageFormat.format( ERROR_CLASS_NOT_FOUND,
                                                         e.getLocalizedMessage() );
                logger.warn( msg );
                results.addBuildMessage( makeWarningMessage( msg ) );
            } catch ( Throwable e ) {
                final String msg = e.getLocalizedMessage();
                logger.error( msg );
                results.addBuildMessage( makeErrorMessage( msg ) );
            }

            //Add validate messages from external helpers
            for ( Map.Entry<Path, BuildValidationHelper> e : nonKieResourceValidationHelpers.entrySet() ) {
                final org.uberfire.backend.vfs.Path vfsPath = Paths.convert( e.getKey() );
                final List<ValidationMessage> validationMessages = e.getValue().validate( vfsPath );
                nonKieResourceValidationHelperMessages.put( e.getKey(),
                                                            validationMessages );
                if ( !( validationMessages == null || validationMessages.isEmpty() ) ) {
                    for ( ValidationMessage validationMessage : validationMessages ) {
                        results.addBuildMessage( convertValidationMessage( validationMessage ) );
                    }
                }
            }

            //Check external imports are available. These are loaded when a DMO is requested, but it's better to report them early
            final org.uberfire.java.nio.file.Path nioExternalImportsPath = moduleDirectory.resolve( "project.imports" );
            if ( Files.exists( nioExternalImportsPath ) ) {
                final org.uberfire.backend.vfs.Path externalImportsPath = Paths.convert( nioExternalImportsPath );
                final ProjectImports projectImports = projectService.load( externalImportsPath );
                final Imports imports = projectImports.getImports();
                for ( final Import item : imports.getImports() ) {
                    final String fullyQualifiedClassName = item.getType();
                    try {
                        Class clazz = this.getClass().getClassLoader().loadClass( item.getType() );
                    } catch ( ClassNotFoundException cnfe ) {
                        logger.error( cnfe.getMessage() );
                        final String msg = MessageFormat.format( ERROR_CLASS_NOT_FOUND,
                                                                 fullyQualifiedClassName );
                        results.addBuildMessage( makeWarningMessage( msg ) );
                    }
                }
            }

            //At the end we are interested to ensure that external .jar files referenced as dependencies don't have
            // referential inconsistencies. We will at least provide a basic algorithm to ensure that if an external class
            // X references another external class Y, Y is also accessible by the class loader.
            final KieModuleMetaData kieModuleMetaData = getKieModuleMetaData();
            for ( final String packageName : kieModuleMetaData.getPackages() ) {
                for ( final String className : kieModuleMetaData.getClasses( packageName ) ) {
                    final String fullyQualifiedClassName = packageName + "." + className;
                    try {
                        final Class clazz = kieModuleMetaData.getClass( packageName,
                                                                        className );
                        final TypeSource typeSource = getClassSource( kieModuleMetaData,
                                                                      clazz );
                        if ( TypeSource.JAVA_DEPENDENCY == typeSource ) {
                            verifyExternalClass( clazz );
                        }
                    } catch ( LinkageError e ) {
                        final String msg = MessageFormat.format( ERROR_EXTERNAL_CLASS_VERIFICATON,
                                                                 fullyQualifiedClassName );
                        logger.warn( msg );
                        results.addBuildMessage( makeWarningMessage( msg ) );
                    } catch ( Throwable e ) {
                        final String msg = MessageFormat.format( ERROR_EXTERNAL_CLASS_VERIFICATON,
                                                                 fullyQualifiedClassName );
                        logger.error( msg );
                        results.addBuildMessage( makeErrorMessage( msg ) );
                    }
                }
            }

            return results;
View Full Code Here

        final org.uberfire.java.nio.file.Path nioResourcePath = fs.getPath( resourceUrl.toURI() );
        final Path resourcePath = paths.convert( nioResourcePath );

        //Force full build before attempting incremental changes
        final Project project = projectService.resolveProject( resourcePath );
        final BuildResults buildResults = buildService.build( project );
        assertNotNull( buildResults );
        assertEquals( 0,
                      buildResults.getMessages().size() );

        //Perform incremental build
        final int THREADS = 200;
        final Result result = new Result();
        ExecutorService es = Executors.newCachedThreadPool();
View Full Code Here

        final org.uberfire.java.nio.file.Path nioResourcePath = fs.getPath( resourceUrl.toURI() );
        final Path resourcePath = paths.convert( nioResourcePath );

        //Force full build before attempting incremental changes
        final Project project = projectService.resolveProject( resourcePath );
        final BuildResults buildResults = buildService.build( project );
        assertNotNull( buildResults );
        assertEquals( 0,
                      buildResults.getMessages().size() );

        //Perform incremental build
        buildChangeListener.addResource( resourcePath );

        final IncrementalBuildResults incrementalBuildResults = buildResultsObserver.getIncrementalBuildResults();
View Full Code Here

        final org.uberfire.java.nio.file.Path nioResourcePath = fs.getPath( resourceUrl.toURI() );
        final Path resourcePath = paths.convert( nioResourcePath );

        //Force full build before attempting incremental changes
        final Project project = projectService.resolveProject( resourcePath );
        final BuildResults buildResults = buildService.build( project );
        assertNotNull( buildResults );
        assertEquals( 0,
                      buildResults.getMessages().size() );

        //Perform incremental build
        buildChangeListener.updateResource( resourcePath );

        final IncrementalBuildResults incrementalBuildResults = buildResultsObserver.getIncrementalBuildResults();
View Full Code Here

        final org.uberfire.java.nio.file.Path nioResourcePath = fs.getPath( resourceUrl.toURI() );
        final Path resourcePath = paths.convert( nioResourcePath );

        //Force full build before attempting incremental changes
        final Project project = projectService.resolveProject( resourcePath );
        final BuildResults buildResults = buildService.build( project );
        assertNotNull( buildResults );
        assertEquals( 0,
                      buildResults.getMessages().size() );

        //Perform incremental build (Without a full Build first)
        buildChangeListener.updateResource( resourcePath );

        final IncrementalBuildResults incrementalBuildResults = buildResultsObserver.getIncrementalBuildResults();
View Full Code Here

TOP

Related Classes of org.guvnor.common.services.project.builder.model.BuildResults

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.