Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (102)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (322)
Collections:
Other Resources:
maven-settings-builder-3.5.4.jar - Maven Settings Builder Module
maven-settings-builder-3.5.4.jar is the JAR file for Apache Maven 3.5.4 Settings Builder module.
Apache Maven is a software project management and comprehension tool.
JAR File Size and Download Location:
File: 2018-06-17 19:32 43145 lib\maven-settings-builder-3.5.4.jar Download: Apache Maven Website
✍: FYIcenter.com
⏎ org/apache/maven/settings/building/DefaultSettingsBuilder.java
package org.apache.maven.settings.building;
/*
* 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.
*/
import java.io.File;
import java.io.IOException;
import java.io.StringReader;
import java.io.StringWriter;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import org.apache.maven.building.FileSource;
import org.apache.maven.building.Source;
import org.apache.maven.settings.Settings;
import org.apache.maven.settings.TrackableBase;
import org.apache.maven.settings.io.SettingsParseException;
import org.apache.maven.settings.io.SettingsReader;
import org.apache.maven.settings.io.SettingsWriter;
import org.apache.maven.settings.merge.MavenSettingsMerger;
import org.apache.maven.settings.validation.SettingsValidator;
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.component.annotations.Requirement;
import org.codehaus.plexus.interpolation.EnvarBasedValueSource;
import org.codehaus.plexus.interpolation.InterpolationException;
import org.codehaus.plexus.interpolation.InterpolationPostProcessor;
import org.codehaus.plexus.interpolation.PropertiesBasedValueSource;
import org.codehaus.plexus.interpolation.RegexBasedInterpolator;
/**
* Builds the effective settings from a user settings file and/or a global settings file.
*
* @author Benjamin Bentmann
*/
@Component( role = SettingsBuilder.class )
public class DefaultSettingsBuilder
implements SettingsBuilder
{
@Requirement
private SettingsReader settingsReader;
@Requirement
private SettingsWriter settingsWriter;
@Requirement
private SettingsValidator settingsValidator;
private MavenSettingsMerger settingsMerger = new MavenSettingsMerger();
public DefaultSettingsBuilder setSettingsReader( SettingsReader settingsReader )
{
this.settingsReader = settingsReader;
return this;
}
public DefaultSettingsBuilder setSettingsWriter( SettingsWriter settingsWriter )
{
this.settingsWriter = settingsWriter;
return this;
}
public DefaultSettingsBuilder setSettingsValidator( SettingsValidator settingsValidator )
{
this.settingsValidator = settingsValidator;
return this;
}
@Override
public SettingsBuildingResult build( SettingsBuildingRequest request )
throws SettingsBuildingException
{
DefaultSettingsProblemCollector problems = new DefaultSettingsProblemCollector( null );
Source globalSettingsSource =
getSettingsSource( request.getGlobalSettingsFile(), request.getGlobalSettingsSource() );
Settings globalSettings = readSettings( globalSettingsSource, request, problems );
Source userSettingsSource =
getSettingsSource( request.getUserSettingsFile(), request.getUserSettingsSource() );
Settings userSettings = readSettings( userSettingsSource, request, problems );
settingsMerger.merge( userSettings, globalSettings, TrackableBase.GLOBAL_LEVEL );
problems.setSource( "" );
userSettings = interpolate( userSettings, request, problems );
// for the special case of a drive-relative Windows path, make sure it's absolute to save plugins from trouble
String localRepository = userSettings.getLocalRepository();
if ( localRepository != null && localRepository.length() > 0 )
{
File file = new File( localRepository );
if ( !file.isAbsolute() && file.getPath().startsWith( File.separator ) )
{
userSettings.setLocalRepository( file.getAbsolutePath() );
}
}
if ( hasErrors( problems.getProblems() ) )
{
throw new SettingsBuildingException( problems.getProblems() );
}
return new DefaultSettingsBuildingResult( userSettings, problems.getProblems() );
}
private boolean hasErrors( List<SettingsProblem> problems )
{
if ( problems != null )
{
for ( SettingsProblem problem : problems )
{
if ( SettingsProblem.Severity.ERROR.compareTo( problem.getSeverity() ) >= 0 )
{
return true;
}
}
}
return false;
}
private Source getSettingsSource( File settingsFile, Source settingsSource )
{
if ( settingsSource != null )
{
return settingsSource;
}
else if ( settingsFile != null && settingsFile.exists() )
{
return new FileSource( settingsFile );
}
return null;
}
private Settings readSettings( Source settingsSource, SettingsBuildingRequest request,
DefaultSettingsProblemCollector problems )
{
if ( settingsSource == null )
{
return new Settings();
}
problems.setSource( settingsSource.getLocation() );
Settings settings;
try
{
Map<String, ?> options = Collections.singletonMap( SettingsReader.IS_STRICT, Boolean.TRUE );
try
{
settings = settingsReader.read( settingsSource.getInputStream(), options );
}
catch ( SettingsParseException e )
{
options = Collections.singletonMap( SettingsReader.IS_STRICT, Boolean.FALSE );
settings = settingsReader.read( settingsSource.getInputStream(), options );
problems.add( SettingsProblem.Severity.WARNING, e.getMessage(), e.getLineNumber(), e.getColumnNumber(),
e );
}
}
catch ( SettingsParseException e )
{
problems.add( SettingsProblem.Severity.FATAL, "Non-parseable settings " + settingsSource.getLocation()
+ ": " + e.getMessage(), e.getLineNumber(), e.getColumnNumber(), e );
return new Settings();
}
catch ( IOException e )
{
problems.add( SettingsProblem.Severity.FATAL, "Non-readable settings " + settingsSource.getLocation()
+ ": " + e.getMessage(), -1, -1, e );
return new Settings();
}
settingsValidator.validate( settings, problems );
return settings;
}
private Settings interpolate( Settings settings, SettingsBuildingRequest request,
SettingsProblemCollector problems )
{
StringWriter writer = new StringWriter( 1024 * 4 );
try
{
settingsWriter.write( writer, null, settings );
}
catch ( IOException e )
{
throw new IllegalStateException( "Failed to serialize settings to memory", e );
}
String serializedSettings = writer.toString();
RegexBasedInterpolator interpolator = new RegexBasedInterpolator();
interpolator.addValueSource( new PropertiesBasedValueSource( request.getUserProperties() ) );
interpolator.addValueSource( new PropertiesBasedValueSource( request.getSystemProperties() ) );
try
{
interpolator.addValueSource( new EnvarBasedValueSource() );
}
catch ( IOException e )
{
problems.add( SettingsProblem.Severity.WARNING, "Failed to use environment variables for interpolation: "
+ e.getMessage(), -1, -1, e );
}
interpolator.addPostProcessor( new InterpolationPostProcessor()
{
@Override
public Object execute( String expression, Object value )
{
if ( value != null )
{
// we're going to parse this back in as XML so we need to escape XML markup
value = value.toString().replace( "&", "&" ).replace( "<", "<" ).replace( ">", ">" );
return value;
}
return null;
}
} );
try
{
serializedSettings = interpolator.interpolate( serializedSettings, "settings" );
}
catch ( InterpolationException e )
{
problems.add( SettingsProblem.Severity.ERROR, "Failed to interpolate settings: " + e.getMessage(), -1, -1,
e );
return settings;
}
Settings result;
try
{
Map<String, ?> options = Collections.singletonMap( SettingsReader.IS_STRICT, Boolean.FALSE );
result = settingsReader.read( new StringReader( serializedSettings ), options );
}
catch ( IOException e )
{
problems.add( SettingsProblem.Severity.ERROR, "Failed to interpolate settings: " + e.getMessage(), -1, -1,
e );
return settings;
}
return result;
}
}
⏎ org/apache/maven/settings/building/DefaultSettingsBuilder.java
Or download all of them as a single archive file:
File name: maven-settings-builder-3.5.4-src.zip File size: 38184 bytes Release date: 2018-06-17 Download
⇒ maven-model-builder-3.5.4.jar - Model Builder Module
⇐ maven-embedder-3.5.4.jar - Maven Embedder Module
2023-06-19, ∼7095🔥, 0💬
Popular Posts:
How to download and install xml-commons External Source Package? The source package contains Java so...
How to download and install iText7-Core-7.1.4.zip? iText7-Core-7.1.4.zip is the binary package of iT...
JDK 17 java.desktop.jmod is the JMOD file for JDK 17 Desktop module. JDK 17 Desktop module compiled ...
Saxon-HE (home edition) is an open source product available under the Mozilla Public License. It pro...
Apache ZooKeeper is an open-source server which enables highly reliable distributed coordination. Ap...