You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2019/10/14 22:12:34 UTC
[maven] 01/04: [MNG-6656] Introduce Features class
This is an automated email from the ASF dual-hosted git repository.
rfscholte pushed a commit to branch MNG-6656
in repository https://gitbox.apache.org/repos/asf/maven.git
commit 24955e7ce383c7ad0c64b2de95c7f5a395c43d10
Author: rfscholte <rf...@apache.org>
AuthorDate: Sun Oct 13 13:49:47 2019 +0200
[MNG-6656] Introduce Features class
---
.../DefaultRepositorySystemSessionFactory.java | 3 +-
.../java/org/apache/maven/feature/Features.java | 63 ++++++++++++++++++++++
.../maven/model/building/DefaultModelBuilder.java | 3 +-
.../model/validation/DefaultModelValidator.java | 3 +-
4 files changed, 69 insertions(+), 3 deletions(-)
diff --git a/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java b/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java
index 3eaad6f..94b2e35 100644
--- a/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java
+++ b/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java
@@ -50,6 +50,7 @@ import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
import org.apache.maven.bridge.MavenRepositorySystem;
import org.apache.maven.eventspy.internal.EventSpyDispatcher;
import org.apache.maven.execution.MavenExecutionRequest;
+import org.apache.maven.feature.Features;
import org.apache.maven.repository.internal.MavenRepositorySystemUtils;
import org.apache.maven.settings.Mirror;
import org.apache.maven.settings.Proxy;
@@ -268,7 +269,7 @@ public class DefaultRepositorySystemSessionFactory
mavenRepositorySystem.injectProxy( session, request.getPluginArtifactRepositories() );
mavenRepositorySystem.injectAuthentication( session, request.getPluginArtifactRepositories() );
- if ( Boolean.getBoolean( "maven.experimental.buildconsumer" ) )
+ if ( Features.buildConsumer().isActive() )
{
session.setFileTransformerManager( newFileTransformerManager() );
}
diff --git a/maven-model-builder/src/main/java/org/apache/maven/feature/Features.java b/maven-model-builder/src/main/java/org/apache/maven/feature/Features.java
new file mode 100644
index 0000000..d4461d8
--- /dev/null
+++ b/maven-model-builder/src/main/java/org/apache/maven/feature/Features.java
@@ -0,0 +1,63 @@
+package org.apache.maven.feature;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/**
+ * Centralized class for feature information
+ *
+ * @author Robert Scholte
+ * @since 3.7.0
+ */
+public final class Features
+{
+ private Features()
+ {
+ }
+
+ private static final Feature BUILDCONSUMER = new Feature( "maven.experimental.buildconsumer", "false" );
+
+ public static Feature buildConsumer()
+ {
+ return BUILDCONSUMER;
+ }
+
+ /**
+ * Represents some feature
+ *
+ * @author Robert Scholte
+ * @since 3.7.0
+ */
+ public static class Feature
+ {
+ private final boolean active;
+
+ Feature( String name, String defaultValue )
+ {
+ active = "true".equals( System.getProperty( name, defaultValue ) );
+ }
+
+ public boolean isActive()
+ {
+ return active;
+ }
+
+ }
+
+}
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
index bc13d33..6d2bb7e 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
@@ -55,6 +55,7 @@ import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
import org.apache.maven.artifact.versioning.VersionRange;
import org.apache.maven.building.FileSource;
+import org.apache.maven.feature.Features;
import org.apache.maven.model.Activation;
import org.apache.maven.model.Build;
import org.apache.maven.model.Dependency;
@@ -770,7 +771,7 @@ public class DefaultModelBuilder
}
// re-read model from file
- if ( Boolean.getBoolean( "maven.experimental.buildconsumer" ) && request.isTransformPom() )
+ if ( Features.buildConsumer().isActive() && request.isTransformPom() )
{
try
{
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java b/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java
index 15a5587..86670eb 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java
@@ -19,6 +19,7 @@ package org.apache.maven.model.validation;
* under the License.
*/
+import org.apache.maven.feature.Features;
import org.apache.maven.model.Activation;
import org.apache.maven.model.ActivationFile;
import org.apache.maven.model.Build;
@@ -99,7 +100,7 @@ public class DefaultModelValidator
parent );
// resolvedModel will assign version based on relativePath
- if ( !Boolean.getBoolean( "maven.experimental.buildconsumer" ) )
+ if ( !Features.buildConsumer().isActive() )
{
validateStringNotEmpty( "parent.version", problems, Severity.FATAL, Version.BASE, parent.getVersion(),
parent );