You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2014/10/30 14:59:21 UTC
[5/8] git commit: ISIS-939: pruning defunct uses of
SpecificationTraverser and similar.
ISIS-939: pruning defunct uses of SpecificationTraverser and similar.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/06929abc
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/06929abc
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/06929abc
Branch: refs/heads/master
Commit: 06929abc2156df2665ce25115f1aac7cebc28f72
Parents: d716572
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed Oct 29 08:36:26 2014 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Wed Oct 29 08:36:26 2014 +0000
----------------------------------------------------------------------
.../isis/core/metamodel/app/IsisMetaModel.java | 69 +++-----------------
.../specloader/ObjectReflectorDefault.java | 54 ++-------------
.../specimpl/FacetedMethodsBuilder.java | 23 ++-----
.../specimpl/FacetedMethodsBuilderContext.java | 10 +--
.../progmodels/dflt/JavaReflectorHelper.java | 5 +-
...IsisMetaModelBaseTest_constructDefaults.java | 10 ---
.../metamodel/app/IsisMetaModelTest_init.java | 6 --
.../ObjectReflectorDefaultTestAbstract.java | 2 -
8 files changed, 22 insertions(+), 157 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/06929abc/core/metamodel/src/main/java/org/apache/isis/core/metamodel/app/IsisMetaModel.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/app/IsisMetaModel.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/app/IsisMetaModel.java
index acdd5f6..f0cd890 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/app/IsisMetaModel.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/app/IsisMetaModel.java
@@ -33,9 +33,6 @@ import org.apache.isis.core.metamodel.services.container.DomainObjectContainerDe
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
import org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault;
-import org.apache.isis.core.metamodel.specloader.classsubstitutor.ClassSubstitutor;
-import org.apache.isis.core.metamodel.specloader.collectiontyperegistry.CollectionTypeRegistry;
-import org.apache.isis.core.metamodel.specloader.traverser.SpecificationTraverser;
import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator;
import org.apache.isis.core.metamodel.specloader.validator.ValidationFailures;
@@ -65,10 +62,7 @@ public class IsisMetaModel implements ApplicationScopedComponent {
private RuntimeContext runtimeContext;
private IsisConfiguration configuration;
- private ClassSubstitutor classSubstitutor;
- private CollectionTypeRegistry collectionTypeRegistry;
private ProgrammingModel programmingModel;
- private SpecificationTraverser specificationTraverser;
private Set<FacetDecorator> facetDecorators;
private MetaModelValidator metaModelValidator;
@@ -107,23 +101,21 @@ public class IsisMetaModel implements ApplicationScopedComponent {
this(runtimeContext, programmingModel, services.toArray());
}
- public IsisMetaModel(final RuntimeContext runtimeContext, ProgrammingModel programmingModel, final Object... services) {
+ public IsisMetaModel(
+ final RuntimeContext runtimeContext,
+ final ProgrammingModel programmingModel,
+ final Object... services) {
this.runtimeContext = runtimeContext;
this.services.add(new DomainObjectContainerDefault());
this.services.addAll(Arrays.asList(services));
- setConfiguration(new IsisConfigurationDefault());
+ this.configuration = new IsisConfigurationDefault();
- this.classSubstitutor = new ClassSubstitutor();
-
- this.collectionTypeRegistry = new CollectionTypeRegistry();
- this.specificationTraverser = new SpecificationTraverser();
-
- setFacetDecorators(new TreeSet<FacetDecorator>());
+ this.facetDecorators = new TreeSet<>();
setProgrammingModelFacets(programmingModel);
- setMetaModelValidator(new MetaModelValidatorDefault());
+ this.metaModelValidator = new MetaModelValidatorDefault();
}
/**
@@ -140,7 +132,7 @@ public class IsisMetaModel implements ApplicationScopedComponent {
@Override
public void init() {
ensureNotInitialized();
- reflector = new ObjectReflectorDefault(configuration, specificationTraverser, programmingModel, facetDecorators, metaModelValidator);
+ reflector = new ObjectReflectorDefault(configuration, programmingModel, facetDecorators, metaModelValidator);
reflector.setServices(services);
@@ -217,51 +209,6 @@ public class IsisMetaModel implements ApplicationScopedComponent {
}
/**
- * The {@link ClassSubstitutor} in force, either defaulted or specified
- * {@link #setClassSubstitutor(ClassSubstitutor) explicitly}.
- */
- public ClassSubstitutor getClassSubstitutor() {
- return classSubstitutor;
- }
-
- /**
- * The {@link CollectionTypeRegistry} in force, either defaulted or
- * specified {@link #setCollectionTypeRegistry(CollectionTypeRegistry)
- * explicitly.}
- */
- public CollectionTypeRegistry getCollectionTypeRegistry() {
- return collectionTypeRegistry;
- }
-
- /**
- * Optionally specify the {@link CollectionTypeRegistry}.
- *
- * <p>
- * Call prior to {@link #init()}.
- */
- public void setCollectionTypeRegistry(final CollectionTypeRegistry collectionTypeRegistry) {
- ensureNotInitialized();
- ensureThatArg(collectionTypeRegistry, is(notNullValue()));
- this.collectionTypeRegistry = collectionTypeRegistry;
- }
-
- /**
- * The {@link SpecificationTraverser} in force, either defaulted or
- * specified {@link #setSpecificationTraverser(SpecificationTraverser)
- * explicitly}.
- */
- public SpecificationTraverser getSpecificationTraverser() {
- return specificationTraverser;
- }
-
- /**
- * Optionally specify the {@link SpecificationTraverser}.
- */
- public void setSpecificationTraverser(final SpecificationTraverser specificationTraverser) {
- this.specificationTraverser = specificationTraverser;
- }
-
- /**
* The {@link ProgrammingModel} in force, either defaulted or specified
* {@link #setProgrammingModelFacets(ProgrammingModel) explicitly}.
*/
http://git-wip-us.apache.org/repos/asf/isis/blob/06929abc/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
index f5808d3..02a6ca1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
@@ -138,7 +138,7 @@ public final class ObjectReflectorDefault implements SpecificationLoaderSpi, App
*/
private RuntimeContext runtimeContext;
- private final SpecificationTraverser specificationTraverser;
+ private final SpecificationTraverser specificationTraverser = new SpecificationTraverser();
/**
* @see #setServices(List)
@@ -157,20 +157,17 @@ public final class ObjectReflectorDefault implements SpecificationLoaderSpi, App
public ObjectReflectorDefault(
final IsisConfiguration configuration,
- final SpecificationTraverser specificationTraverser,
final ProgrammingModel programmingModel,
final Set<FacetDecorator> facetDecorators,
final MetaModelValidator metaModelValidator) {
ensureThatArg(configuration, is(notNullValue()));
- ensureThatArg(specificationTraverser, is(notNullValue()));
ensureThatArg(programmingModel, is(notNullValue()));
ensureThatArg(facetDecorators, is(notNullValue()));
ensureThatArg(metaModelValidator, is(notNullValue()));
this.configuration = configuration;
this.programmingModel = programmingModel;
- this.specificationTraverser = specificationTraverser;
this.facetDecoratorSet = new FacetDecoratorSet();
for (final FacetDecorator facetDecorator : facetDecorators) {
@@ -258,34 +255,15 @@ public final class ObjectReflectorDefault implements SpecificationLoaderSpi, App
}
/**
- * load the service specifications and then, using the
- * {@link #getSpecificationTraverser() traverser}, keep loading all
- * referenced specifications until we can find no more.
+ * load the service specifications.
*/
private void primeCache() {
for (final Class<?> serviceClass : getServiceClasses()) {
internalLoadSpecification(serviceClass);
}
- loadAllSpecifications();
}
- private void loadAllSpecifications() {
- List<Class<?>> newlyDiscoveredClasses = Lists.newArrayList();
- while (newlyDiscoveredClasses.size() > 0) {
- for (final Class<?> newClass : newlyDiscoveredClasses) {
- internalLoadSpecification(newClass);
- }
- newlyDiscoveredClasses = newlyDiscoveredClasses();
- }
- }
-
- private List<Class<?>> newlyDiscoveredClasses() {
- return Lists.newArrayList();
- }
-
-
-
@Override
public void shutdown() {
LOG.info("shutting down " + this);
@@ -330,7 +308,7 @@ public final class ObjectReflectorDefault implements SpecificationLoaderSpi, App
}
//region > isInjectorMethodFor
- private InjectorMethodEvaluator injectorMethodEvaluator = new InjectorMethodEvaluatorDefault();
+ private final InjectorMethodEvaluator injectorMethodEvaluator = new InjectorMethodEvaluatorDefault();
public boolean isInjectorMethodFor(Method method, final Class<?> serviceClass) {
return injectorMethodEvaluator.isInjectorMethodFor(method, serviceClass);
@@ -466,7 +444,7 @@ public final class ObjectReflectorDefault implements SpecificationLoaderSpi, App
final SpecificationLoaderSpi specificationLoader = this;
final ServicesInjector dependencyInjector = getRuntimeContext().getDependencyInjector();
final CreateObjectContext createObjectContext = new CreateObjectContext(adapterMap, dependencyInjector);
- final FacetedMethodsBuilderContext facetedMethodsBuilderContext = new FacetedMethodsBuilderContext(specificationLoader, classSubstitutor, specificationTraverser, facetProcessor);
+ final FacetedMethodsBuilderContext facetedMethodsBuilderContext = new FacetedMethodsBuilderContext(specificationLoader, facetProcessor);
return new ObjectSpecificationDefault(cls, facetedMethodsBuilderContext, specContext, objectMemberContext, createObjectContext);
}
}
@@ -655,34 +633,10 @@ public final class ObjectReflectorDefault implements SpecificationLoaderSpi, App
// Dependencies (injected from constructor)
// ////////////////////////////////////////////////////////////////////
- protected IsisConfiguration getIsisConfiguration() {
- return configuration;
- }
-
- protected CollectionTypeRegistry getCollectionTypeRegistry() {
- return collectionTypeRegistry;
- }
-
- protected ClassSubstitutor getClassSubstitutor() {
- return classSubstitutor;
- }
-
- protected SpecificationTraverser getSpecificationTraverser() {
- return specificationTraverser;
- }
-
- protected ProgrammingModel getProgrammingModelFacets() {
- return programmingModel;
- }
-
protected MetaModelValidator getMetaModelValidator() {
return metaModelValidator;
}
- protected Set<FacetDecorator> getFacetDecoratorSet() {
- return facetDecoratorSet.getFacetDecorators();
- }
-
@Override
public void validateSpecifications(ValidationFailures validationFailures) {
final Map<ObjectSpecId, ObjectSpecification> specById = Maps.newHashMap();
http://git-wip-us.apache.org/repos/asf/isis/blob/06929abc/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java
index bab2043..20bc08b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java
@@ -128,9 +128,8 @@ public class FacetedMethodsBuilder {
private final FacetProcessor facetProcessor;
- private final SpecificationTraverser specificationTraverser;
-
- private final ClassSubstitutor classSubstitutor;
+ private final SpecificationTraverser specificationTraverser = new SpecificationTraverser();
+ private final ClassSubstitutor classSubstitutor = new ClassSubstitutor();
private final SpecificationLoaderSpi specificationLoader;
@@ -150,8 +149,6 @@ public class FacetedMethodsBuilder {
this.methodRemover = new FacetedMethodsMethodRemover(methods);
this.facetProcessor = facetedMethodsBuilderContext.facetProcessor;
- this.specificationTraverser = facetedMethodsBuilderContext.specificationTraverser;
- this.classSubstitutor = facetedMethodsBuilderContext.classSubstitutor;
this.specificationLoader = facetedMethodsBuilderContext.specificationLoader;
}
@@ -260,7 +257,7 @@ public class FacetedMethodsBuilder {
// Ensure all return types are known
final List<Class<?>> typesToLoad = Lists.newArrayList();
for (final Method method : associationCandidateMethods) {
- getSpecificationTraverser().traverseTypes(method, typesToLoad);
+ specificationTraverser.traverseTypes(method, typesToLoad);
}
getSpecificationLoader().loadSpecifications(typesToLoad, introspectedClass);
@@ -313,7 +310,7 @@ public class FacetedMethodsBuilder {
facetedMethod.setType(elementType);
// skip if class substitutor says so.
- if (getClassSubstitutor().getClass(elementType) == null) {
+ if (classSubstitutor.getClass(elementType) == null) {
continue;
}
@@ -329,7 +326,7 @@ public class FacetedMethodsBuilder {
final Class<?> returnType = accessorMethod.getReturnType();
// skip if class strategy says so.
- if (getClassSubstitutor().getClass(returnType) == null) {
+ if (classSubstitutor.getClass(returnType) == null) {
continue;
}
@@ -463,7 +460,7 @@ public class FacetedMethodsBuilder {
}
final List<Class<?>> typesToLoad = new ArrayList<Class<?>>();
- getSpecificationTraverser().traverseTypes(actionMethod, typesToLoad);
+ specificationTraverser.traverseTypes(actionMethod, typesToLoad);
final boolean anyLoadedAsNull = getSpecificationLoader().loadSpecifications(typesToLoad);
if (anyLoadedAsNull) {
@@ -568,16 +565,8 @@ public class FacetedMethodsBuilder {
return specificationLoader;
}
- private SpecificationTraverser getSpecificationTraverser() {
- return specificationTraverser;
- }
-
private FacetProcessor getFacetProcessor() {
return facetProcessor;
}
- private ClassSubstitutor getClassSubstitutor() {
- return classSubstitutor;
- }
-
}
http://git-wip-us.apache.org/repos/asf/isis/blob/06929abc/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilderContext.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilderContext.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilderContext.java
index 5aee3d1..198d567 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilderContext.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilderContext.java
@@ -17,20 +17,16 @@
package org.apache.isis.core.metamodel.specloader.specimpl;
import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
-import org.apache.isis.core.metamodel.specloader.classsubstitutor.ClassSubstitutor;
import org.apache.isis.core.metamodel.specloader.facetprocessor.FacetProcessor;
-import org.apache.isis.core.metamodel.specloader.traverser.SpecificationTraverser;
public class FacetedMethodsBuilderContext {
public final SpecificationLoaderSpi specificationLoader;
- public final SpecificationTraverser specificationTraverser;
public final FacetProcessor facetProcessor;
- public final ClassSubstitutor classSubstitutor;
- public FacetedMethodsBuilderContext(final SpecificationLoaderSpi specificationLoader, final ClassSubstitutor classSubstitutor, final SpecificationTraverser specificationTraverser, final FacetProcessor facetProcessor) {
+ public FacetedMethodsBuilderContext(
+ final SpecificationLoaderSpi specificationLoader,
+ final FacetProcessor facetProcessor) {
this.specificationLoader = specificationLoader;
- this.classSubstitutor = classSubstitutor;
- this.specificationTraverser = specificationTraverser;
this.facetProcessor = facetProcessor;
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/06929abc/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/JavaReflectorHelper.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/JavaReflectorHelper.java b/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/JavaReflectorHelper.java
index 8294088..38b906f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/JavaReflectorHelper.java
+++ b/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/JavaReflectorHelper.java
@@ -29,7 +29,6 @@ import org.apache.isis.core.metamodel.facetdecorator.FacetDecorator;
import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
import org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault;
-import org.apache.isis.core.metamodel.specloader.traverser.SpecificationTraverser;
import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator;
import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
@@ -47,8 +46,6 @@ public final class JavaReflectorHelper {
final MetaModelValidator mmv,
final IsisConfiguration configuration) {
- final SpecificationTraverser specificationTraverser = new SpecificationTraverser();
-
MetaModelValidatorComposite metaModelValidator = MetaModelValidatorComposite.asComposite(mmv);
for (MetaModelRefiner metaModelRefiner : metaModelRefiners) {
metaModelRefiner.refineProgrammingModel(programmingModel, configuration);
@@ -60,7 +57,7 @@ public final class JavaReflectorHelper {
programmingModel.refineMetaModelValidator(metaModelValidator, configuration);
}
- return new ObjectReflectorDefault(configuration, specificationTraverser, programmingModel, facetDecorators, metaModelValidator);
+ return new ObjectReflectorDefault(configuration, programmingModel, facetDecorators, metaModelValidator);
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/06929abc/core/metamodel/src/test/java/org/apache/isis/core/metamodel/app/IsisMetaModelBaseTest_constructDefaults.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/app/IsisMetaModelBaseTest_constructDefaults.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/app/IsisMetaModelBaseTest_constructDefaults.java
index 76ce7e0..90fabd4 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/app/IsisMetaModelBaseTest_constructDefaults.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/app/IsisMetaModelBaseTest_constructDefaults.java
@@ -57,21 +57,11 @@ public class IsisMetaModelBaseTest_constructDefaults {
}
@Test
- public void shouldDefaultClassSubstitutor() {
- assertThat(metaModel.getClassSubstitutor(), is(notNullValue()));
- }
-
- @Test
public void shouldDefaultProgrammingModelFacets() {
assertThat(metaModel.getProgrammingModelFacets(), is(notNullValue()));
}
@Test
- public void shouldDefaultCollectionTypeRegistry() {
- assertThat(metaModel.getCollectionTypeRegistry(), is(notNullValue()));
- }
-
- @Test
public void shouldDefaultFacetDecorators() {
assertThat(metaModel.getFacetDecorators(), is(notNullValue()));
}
http://git-wip-us.apache.org/repos/asf/isis/blob/06929abc/core/metamodel/src/test/java/org/apache/isis/core/metamodel/app/IsisMetaModelTest_init.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/app/IsisMetaModelTest_init.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/app/IsisMetaModelTest_init.java
index fb7e0eb..2f8b97d 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/app/IsisMetaModelTest_init.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/app/IsisMetaModelTest_init.java
@@ -148,12 +148,6 @@ public class IsisMetaModelTest_init {
}
@Test(expected = IllegalStateException.class)
- public void shouldNotBeAbleToChangeCollectionTypeRegistry() {
- metaModel.init();
- metaModel.setCollectionTypeRegistry(mockCollectionTypeRegistry);
- }
-
- @Test(expected = IllegalStateException.class)
public void shouldNotBeAbleToChangeFacetDecorators() {
metaModel.init();
metaModel.setFacetDecorators(new TreeSet<FacetDecorator>());
http://git-wip-us.apache.org/repos/asf/isis/blob/06929abc/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefaultTestAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefaultTestAbstract.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefaultTestAbstract.java
index a24afcf..2346a2e 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefaultTestAbstract.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefaultTestAbstract.java
@@ -40,7 +40,6 @@ import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
import org.apache.isis.core.metamodel.runtimecontext.noruntime.RuntimeContextNoRuntime;
import org.apache.isis.core.metamodel.services.container.DomainObjectContainerDefault;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.specloader.traverser.SpecificationTraverser;
import org.apache.isis.core.unittestsupport.jmocking.InjectIntoJMockAction;
import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2.Mode;
@@ -76,7 +75,6 @@ public abstract class ObjectReflectorDefaultTestAbstract {
final ObjectReflectorDefault reflector =
new ObjectReflectorDefault(
mockConfiguration,
- new SpecificationTraverser(),
new ProgrammingModelFacetsJava5(),
new HashSet<FacetDecorator>(),
new MetaModelValidatorDefault());