1 package org.apache.maven.wrapper;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.io.IOException;
23 import java.io.InputStream;
24 import java.nio.file.Files;
25 import java.nio.file.Path;
26 import java.util.HashMap;
27 import java.util.Map;
28 import java.util.Map.Entry;
29 import java.util.Properties;
30 import java.util.regex.Matcher;
31 import java.util.regex.Pattern;
32
33
34
35
36 public class SystemPropertiesHandler
37 {
38
39 private static final Pattern SYSPROP_PATTERN = Pattern.compile( "systemProp\\.(.*)" );
40
41 public static Map<String, String> getSystemProperties( Path propertiesFile )
42 {
43 Map<String, String> propertyMap = new HashMap<>();
44 if ( !Files.isRegularFile( propertiesFile ) )
45 {
46 return propertyMap;
47 }
48 Properties properties = new Properties();
49 try ( InputStream inStream = Files.newInputStream( propertiesFile ) )
50 {
51 properties.load( inStream );
52 }
53 catch ( IOException e )
54 {
55 throw new RuntimeException( "Error when loading properties file=" + propertiesFile, e );
56 }
57
58 for ( Entry<Object, Object> entrySet : properties.entrySet() )
59 {
60 Matcher matcher = SYSPROP_PATTERN.matcher( entrySet.getKey().toString() );
61 if ( matcher.find() )
62 {
63 String key = matcher.group( 1 );
64 if ( key.length() > 0 )
65 {
66 propertyMap.put( key, entrySet.getValue().toString() );
67 }
68 }
69 }
70 return propertyMap;
71 }
72 }