Skip to content
This repository has been archived by the owner on Nov 30, 2021. It is now read-only.

Commit

Permalink
BZ-1051463 - Saving a rule file should not cause a Data Model Oracle …
Browse files Browse the repository at this point in the history
…rebuild
  • Loading branch information
Rikkola committed Apr 10, 2014
1 parent 473b5d7 commit ee104c1
Show file tree
Hide file tree
Showing 10 changed files with 7 additions and 238 deletions.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import java.util.Collection;
import java.util.HashMap;

import org.guvnor.common.services.project.events.RuleNameUpdateEvent;
import org.guvnor.common.services.project.model.Project;
import org.guvnor.common.services.project.service.ProjectService;
import org.junit.Test;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.enterprise.event.Event;

import org.drools.workbench.models.datamodel.imports.Import;
import org.drools.workbench.models.datamodel.imports.Imports;
Expand All @@ -37,10 +36,8 @@
import org.guvnor.common.services.project.builder.model.BuildResults;
import org.guvnor.common.services.project.builder.model.IncrementalBuildResults;
import org.guvnor.common.services.project.builder.service.BuildValidationHelper;
import org.guvnor.common.services.project.events.RuleNameUpdateEvent;
import org.guvnor.common.services.project.model.GAV;
import org.guvnor.common.services.project.model.Package;
import org.guvnor.common.services.project.model.Project;
import org.guvnor.common.services.project.model.ProjectImports;
import org.guvnor.common.services.project.service.ProjectService;
import org.guvnor.common.services.shared.validation.model.ValidationMessage;
Expand Down Expand Up @@ -79,10 +76,7 @@ public class Builder {
private final static String ERROR_CLASS_NOT_FOUND = "Definition of class \"{0}\" was not found.\n" +
"Please check the necessary external dependencies for this project are configured correctly.";

private final static String DEFAULTPKG = "defaultpkg";

private KieBuilder kieBuilder;
private final Project project;
private final KieServices kieServices;
private final KieFileSystem kieFileSystem;
private final Path moduleDirectory;
Expand All @@ -94,7 +88,6 @@ public class Builder {

private Map<String, org.uberfire.backend.vfs.Path> handles = new HashMap<String, org.uberfire.backend.vfs.Path>();

private final Event<RuleNameUpdateEvent> ruleNameUpdateEvent;
private final List<BuildValidationHelper> buildValidationHelpers;
private final Map<Path, BuildValidationHelper> nonKieResourceValidationHelpers = new HashMap<Path, BuildValidationHelper>();
private final Map<Path, List<ValidationMessage>> nonKieResourceValidationHelperMessages = new HashMap<Path, List<ValidationMessage>>();
Expand All @@ -106,19 +99,15 @@ public class Builder {

private KieContainer kieContainer;

public Builder( final Project project,
final Path moduleDirectory,
public Builder( final Path moduleDirectory,
final GAV gav,
final IOService ioService,
final ProjectService projectService,
final Event<RuleNameUpdateEvent> ruleNameUpdateEvent,
final List<BuildValidationHelper> buildValidationHelpers ) {
this.project = project;
this.moduleDirectory = moduleDirectory;
this.gav = gav;
this.ioService = ioService;
this.projectService = projectService;
this.ruleNameUpdateEvent = ruleNameUpdateEvent;
this.buildValidationHelpers = buildValidationHelpers;

projectPrefix = moduleDirectory.toUri().toString();
Expand Down Expand Up @@ -221,8 +210,6 @@ public BuildResults build() {
}
}

fireRuleNameUpdateEvent();

return results;
}
}
Expand Down Expand Up @@ -315,27 +302,10 @@ public IncrementalBuildResults addResource( final Path resource ) {
results.addAddedMessage( makeErrorMessage( msg ) );
}

fireRuleNameUpdateEvent();

return results;
}
}

private void fireRuleNameUpdateEvent() {
KieModuleMetaData kieModuleMetaData = getKieModuleMetaData();
HashMap<String, Collection<String>> ruleNames = new HashMap<String, Collection<String>>();
for ( String packageName : kieModuleMetaData.getPackages() ) {
if ( packageName.isEmpty() ) {
packageName = DEFAULTPKG;
}
ruleNames.put( packageName, kieModuleMetaData.getRuleNamesInPackage( packageName ) );
}

ruleNames.put( DEFAULTPKG, kieModuleMetaData.getRuleNamesInPackage( DEFAULTPKG ) );

ruleNameUpdateEvent.fire( new RuleNameUpdateEvent( project, ruleNames ) );
}

public IncrementalBuildResults deleteResource( final Path resource ) {
synchronized ( kieFileSystem ) {
checkNotNull( "resource",
Expand Down Expand Up @@ -391,8 +361,6 @@ public IncrementalBuildResults deleteResource( final Path resource ) {
results.addAddedMessage( makeErrorMessage( msg ) );
}

fireRuleNameUpdateEvent();

return results;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@
import org.guvnor.common.services.project.model.Project;
import org.guvnor.common.services.project.service.POMService;
import org.guvnor.common.services.project.service.ProjectService;
import org.guvnor.common.services.project.events.RuleNameUpdateEvent;
import org.uberfire.backend.server.util.Paths;
import org.uberfire.backend.vfs.Path;
import org.uberfire.commons.validation.PortablePreconditions;
Expand All @@ -60,9 +59,6 @@ public class LRUBuilderCache extends LRUCache<Project, Builder> {
@Any
private Instance<BuildValidationHelper> anyValidators;

@Inject
private Event<RuleNameUpdateEvent> ruleNameUpdateEvent;

private final List<BuildValidationHelper> validators = new ArrayList<BuildValidationHelper>();

@PostConstruct
Expand All @@ -89,12 +85,10 @@ public synchronized Builder assertBuilder( final Project project ) {
if ( builder == null ) {
final Path pathToPom = project.getPomXMLPath();
final POM pom = pomService.load( pathToPom );
builder = new Builder( project,
Paths.convert( project.getRootPath() ),
builder = new Builder( Paths.convert( project.getRootPath() ),
pom.getGav(),
ioService,
projectService,
ruleNameUpdateEvent,
validators );
setEntry( project,
builder );
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
import java.util.Iterator;
import java.util.Set;
import javax.enterprise.context.spi.CreationalContext;
import javax.enterprise.event.Event;
import javax.enterprise.inject.spi.Bean;
import javax.enterprise.inject.spi.BeanManager;

Expand All @@ -32,7 +31,6 @@
import org.guvnor.common.services.project.builder.model.BuildResults;
import org.guvnor.common.services.project.builder.service.BuildValidationHelper;
import org.guvnor.common.services.project.model.GAV;
import org.guvnor.common.services.project.model.Project;
import org.guvnor.common.services.project.service.ProjectService;
import org.guvnor.m2repo.backend.server.ExtendedM2RepoService;
import org.jboss.weld.environment.se.StartMain;
Expand All @@ -48,7 +46,6 @@
public class BuildServiceImplTest {

private BeanManager beanManager;
private Event ruleNameUpdateEvent;

@Before
public void setUp() throws Exception {
Expand All @@ -62,19 +59,15 @@ public void setUp() throws Exception {
public void testBuilderSimpleKProject() throws Exception {
IOService ioService = getReference( IOService.class );
ProjectService projectService = getReference( ProjectService.class );
final Project project = mock( Project.class );

URL url = this.getClass().getResource( "/GuvnorM2RepoDependencyExample1" );
SimpleFileSystemProvider p = new SimpleFileSystemProvider();
org.uberfire.java.nio.file.Path path = p.getPath( url.toURI() );

ruleNameUpdateEvent = mock( Event.class );
final Builder builder = new Builder( project,
path,
final Builder builder = new Builder( path,
new GAV(),
ioService,
projectService,
ruleNameUpdateEvent,
new ArrayList<BuildValidationHelper>() );

final BuildResults results = builder.build();
Expand All @@ -86,19 +79,15 @@ public void testBuilderSimpleKProject() throws Exception {
public void testBuilderKProjectHasDependency() throws Exception {
IOService ioService = getReference( IOService.class );
ProjectService projectService = getReference( ProjectService.class );
final Project project = mock( Project.class );

URL url = this.getClass().getResource( "/GuvnorM2RepoDependencyExample2" );
SimpleFileSystemProvider p = new SimpleFileSystemProvider();
org.uberfire.java.nio.file.Path path = p.getPath( url.toURI() );

ruleNameUpdateEvent = mock( Event.class );
final Builder builder = new Builder( project,
path,
final Builder builder = new Builder( path,
new GAV(),
ioService,
projectService,
ruleNameUpdateEvent,
new ArrayList<BuildValidationHelper>() );

final BuildResults results = builder.build();
Expand All @@ -117,19 +106,15 @@ public void testBuilderKProjectHasDependency() throws Exception {
public void testBuilderKProjectHasSnapshotDependency() throws Exception {
IOService ioService = getReference( IOService.class );
ProjectService projectService = getReference( ProjectService.class );
final Project project = mock( Project.class );

URL url = this.getClass().getResource( "/GuvnorM2RepoDependencyExample2Snapshot" );
SimpleFileSystemProvider p = new SimpleFileSystemProvider();
org.uberfire.java.nio.file.Path path = p.getPath( url.toURI() );

ruleNameUpdateEvent = mock( Event.class );
final Builder builder = new Builder( project,
path,
final Builder builder = new Builder( path,
new GAV(),
ioService,
projectService,
ruleNameUpdateEvent,
new ArrayList<BuildValidationHelper>() );

final BuildResults results = builder.build();
Expand All @@ -148,19 +133,15 @@ public void testBuilderKProjectHasSnapshotDependency() throws Exception {
public void testBuilderKProjectHasDependencyMetaData() throws Exception {
IOService ioService = getReference( IOService.class );
ProjectService projectService = getReference( ProjectService.class );
final Project project = mock( Project.class );

URL url = this.getClass().getResource( "/GuvnorM2RepoDependencyExample2" );
SimpleFileSystemProvider p = new SimpleFileSystemProvider();
org.uberfire.java.nio.file.Path path = p.getPath( url.toURI() );

ruleNameUpdateEvent = mock( Event.class );
final Builder builder = new Builder( project,
path,
final Builder builder = new Builder( path,
new GAV(),
ioService,
projectService,
ruleNameUpdateEvent,
new ArrayList<BuildValidationHelper>() );

final BuildResults results = builder.build();
Expand Down Expand Up @@ -207,19 +188,15 @@ public void testBuilderKProjectHasDependencyMetaData() throws Exception {
public void testKProjectContainsXLS() throws Exception {
IOService ioService = getReference( IOService.class );
ProjectService projectService = getReference( ProjectService.class );
final Project project = mock( Project.class );

URL url = this.getClass().getResource( "/ExampleWithExcel" );
SimpleFileSystemProvider p = new SimpleFileSystemProvider();
org.uberfire.java.nio.file.Path path = p.getPath( url.toURI() );

ruleNameUpdateEvent = mock( Event.class );
final Builder builder = new Builder( project,
path,
final Builder builder = new Builder( path,
new GAV(),
ioService,
projectService,
ruleNameUpdateEvent,
new ArrayList<BuildValidationHelper>() );

final BuildResults results = builder.build();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@
import org.guvnor.common.services.project.builder.service.BuildService;
import org.guvnor.common.services.project.model.Project;
import org.guvnor.common.services.project.service.ProjectService;
import org.guvnor.common.services.shared.rulenames.RuleNamesService;
import org.jboss.weld.environment.se.StartMain;
import org.junit.Before;
import org.junit.Test;
Expand All @@ -57,7 +56,6 @@ public class ResourceChangeIncrementalBuilderConcurrencyTest {
private BuildResultsObserver buildResultsObserver;
private BuildService buildService;
private ProjectService projectService;
private RuleNamesService ruleNamesService;

@Before
public void setUp() throws Exception {
Expand Down Expand Up @@ -107,13 +105,6 @@ public void setUp() throws Exception {
ProjectService.class,
cc6 );

//Instantiate ProjectService
final Bean ruleNamesServiceBean = (Bean) beanManager.getBeans( RuleNamesService.class ).iterator().next();
final CreationalContext cc7 = beanManager.createCreationalContext( ruleNamesServiceBean );
ruleNamesService = (RuleNamesService) beanManager.getReference( ruleNamesServiceBean,
RuleNamesService.class,
cc7 );

//Define mandatory properties
List<ConfigGroup> globalConfigGroups = configurationService.getConfiguration( ConfigType.GLOBAL );
boolean globalSettingsDefined = false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@
import org.guvnor.common.services.project.builder.service.BuildService;
import org.guvnor.common.services.project.model.Project;
import org.guvnor.common.services.project.service.ProjectService;
import org.guvnor.common.services.shared.rulenames.RuleNamesService;
import org.jboss.weld.environment.se.StartMain;
import org.junit.Before;
import org.junit.Test;
Expand Down Expand Up @@ -61,7 +60,6 @@ public class ResourceChangeIncrementalBuilderTest {
private BuildResultsObserver buildResultsObserver;
private BuildService buildService;
private ProjectService projectService;
private RuleNamesService ruleNamesService;

@Before
public void setUp() throws Exception {
Expand Down Expand Up @@ -111,13 +109,6 @@ public void setUp() throws Exception {
ProjectService.class,
cc6 );

//Instantiate ProjectService
final Bean ruleNamesServiceBean = (Bean) beanManager.getBeans( RuleNamesService.class ).iterator().next();
final CreationalContext cc7 = beanManager.createCreationalContext( ruleNamesServiceBean );
ruleNamesService = (RuleNamesService) beanManager.getReference( ruleNamesServiceBean,
RuleNamesService.class,
cc7 );

//Define mandatory properties
List<ConfigGroup> globalConfigGroups = configurationService.getConfiguration( ConfigType.GLOBAL );
boolean globalSettingsDefined = false;
Expand Down Expand Up @@ -172,12 +163,6 @@ public void testResourceAdded() throws Exception {
assertEquals( 0,
incrementalBuildResults.getRemovedMessages().size() );

assertEquals( "Updated",
ruleNamesService.getRuleNames( resourcePath ).get( 0 ) );
assertEquals( "Deleted",
ruleNamesService.getRuleNames( resourcePath ).get( 1 ) );
assertEquals( "Added",
ruleNamesService.getRuleNames( resourcePath ).get( 2 ) );
}

@Test
Expand Down Expand Up @@ -209,12 +194,6 @@ public void testResourceUpdated() throws Exception {
assertEquals( 0,
incrementalBuildResults.getRemovedMessages().size() );

assertEquals( "Updated",
ruleNamesService.getRuleNames( resourcePath ).get( 0 ) );
assertEquals( "Deleted",
ruleNamesService.getRuleNames( resourcePath ).get( 1 ) );
assertEquals( "Added",
ruleNamesService.getRuleNames( resourcePath ).get( 2 ) );
}

@Test
Expand Down Expand Up @@ -306,10 +285,6 @@ public void testResourceDeleted() throws Exception {
assertEquals( 0,
incrementalBuildResults.getRemovedMessages().size() );

assertEquals( "Updated",
ruleNamesService.getRuleNames( resourcePath ).get( 0 ) );
assertEquals( "Added",
ruleNamesService.getRuleNames( resourcePath ).get( 1 ) );
}

@Test
Expand Down
Loading

0 comments on commit ee104c1

Please sign in to comment.