maven-shade-plugin-1.7.1/0000775000175000017500000000000012236137670014545 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/0000775000175000017500000000000012236137667015342 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/0000775000175000017500000000000012236137667015756 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/users-shader-impl/0000775000175000017500000000000012236137667021322 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/users-shader-impl/src/0000775000175000017500000000000012236137667022111 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/users-shader-impl/src/test/0000775000175000017500000000000012236137667023070 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/users-shader-impl/src/test/java/0000775000175000017500000000000012236137667024011 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/users-shader-impl/src/test/java/org/0000775000175000017500000000000012236137667024600 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/users-shader-impl/src/test/java/org/apache/0000775000175000017500000000000012236137667026021 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/users-shader-impl/src/test/java/org/apache/maven/0000775000175000017500000000000012236137667027127 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/users-shader-impl/src/test/java/org/apache/maven/plugins/0000775000175000017500000000000012236137667030610 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/users-shader-impl/src/test/java/org/apache/maven/plugins/shade/0000775000175000017500000000000012236137667031674 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/users-shader-impl/src/test/java/org/apache/maven/plugins/shade/its/0000775000175000017500000000000012236137667032473 5ustar ebourgebourg././@LongLink0000644000000000000000000000016012236137670011646 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/users-shader-impl/src/test/java/org/apache/maven/plugins/shade/its/AppTest.javamaven-shade-plugin-1.7.1/src/it/users-shader-impl/src/test/java/org/apache/maven/plugins/shade/its/A0000664000175000017500000000122611727670760032577 0ustar ebourgebourgpackage org.apache.maven.plugins.shade.its; import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; /** * Unit test for simple App. */ public class AppTest extends TestCase { /** * Create the test case * * @param testName name of the test case */ public AppTest( String testName ) { super( testName ); } /** * @return the suite of tests being tested */ public static Test suite() { return new TestSuite( AppTest.class ); } /** * Rigourous Test :-) */ public void testApp() { assertTrue( true ); } } maven-shade-plugin-1.7.1/src/it/users-shader-impl/src/main/0000775000175000017500000000000012236137667023035 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/users-shader-impl/src/main/java/0000775000175000017500000000000012236137667023756 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/users-shader-impl/src/main/java/org/0000775000175000017500000000000012236137667024545 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/users-shader-impl/src/main/java/org/apache/0000775000175000017500000000000012236137667025766 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/users-shader-impl/src/main/java/org/apache/maven/0000775000175000017500000000000012236137667027074 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/users-shader-impl/src/main/java/org/apache/maven/plugins/0000775000175000017500000000000012236137667030555 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/users-shader-impl/src/main/java/org/apache/maven/plugins/shade/0000775000175000017500000000000012236137667031641 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/users-shader-impl/src/main/java/org/apache/maven/plugins/shade/its/0000775000175000017500000000000012236137667032440 5ustar ebourgebourg././@LongLink0000644000000000000000000000015412236137670011651 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/users-shader-impl/src/main/java/org/apache/maven/plugins/shade/its/App.javamaven-shade-plugin-1.7.1/src/it/users-shader-impl/src/main/java/org/apache/maven/plugins/shade/its/A0000664000175000017500000000030511727670760032541 0ustar ebourgebourgpackage org.apache.maven.plugins.shade.its; /** * Hello world! * */ public class App { public static void main( String[] args ) { System.out.println( "Hello World!" ); } } maven-shade-plugin-1.7.1/src/it/users-shader-impl/verify.groovy0000664000175000017500000000171511727670760024101 0ustar ebourgebourg/* * 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. */ assert new File(basedir, 'build.log').exists(); content = new File(basedir, 'build.log').text; assert content.contains( 'Executing MockShader#shade'); return true;maven-shade-plugin-1.7.1/src/it/users-shader-impl/invoker.properties0000664000175000017500000000003411727671022025102 0ustar ebourgebourginvoker.goals=clean package maven-shade-plugin-1.7.1/src/it/users-shader-impl/pom.xml0000664000175000017500000000535611727670760022650 0ustar ebourgebourg 4.0.0 org.apache.maven.plugins.shade.its users-shader-impl 1.0-SNAPSHOT users-shader-impl junit junit 4.7 test maven-compiler-plugin 1.5 1.5 org.apache.maven.plugins maven-shade-plugin @project.version@ org.apache.maven.plugins maven-shade-plugin @project.version@ tests create-shaded-artifact package shade mock true shaded false maven-shade-plugin-1.7.1/src/it/mini-jar-package-info/0000775000175000017500000000000012236137670022000 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/mini-jar-package-info/invoker.properties0000664000175000017500000000003411427244527025571 0ustar ebourgebourginvoker.java.version = 1.5+ maven-shade-plugin-1.7.1/src/it/mini-jar-package-info/jar-with-package-info/0000775000175000017500000000000012236137670026047 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/mini-jar-package-info/jar-with-package-info/src/0000775000175000017500000000000012236137670026636 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/mini-jar-package-info/jar-with-package-info/src/main/0000775000175000017500000000000012236137670027562 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/mini-jar-package-info/jar-with-package-info/src/main/java/0000775000175000017500000000000012236137670030503 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/mini-jar-package-info/jar-with-package-info/src/main/java/org/0000775000175000017500000000000012236137670031272 5ustar ebourgebourg././@LongLink0000644000000000000000000000014612236137670011652 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/mini-jar-package-info/jar-with-package-info/src/main/java/org/apache/maven-shade-plugin-1.7.1/src/it/mini-jar-package-info/jar-with-package-info/src/main/java/org/apache0000775000175000017500000000000012236137670032434 5ustar ebourgebourg././@LongLink0000644000000000000000000000015412236137670011651 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/mini-jar-package-info/jar-with-package-info/src/main/java/org/apache/maven/maven-shade-plugin-1.7.1/src/it/mini-jar-package-info/jar-with-package-info/src/main/java/org/apache0000775000175000017500000000000012236137670032434 5ustar ebourgebourg././@LongLink0000644000000000000000000000015712236137670011654 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/mini-jar-package-info/jar-with-package-info/src/main/java/org/apache/maven/it/maven-shade-plugin-1.7.1/src/it/mini-jar-package-info/jar-with-package-info/src/main/java/org/apache0000775000175000017500000000000012236137670032434 5ustar ebourgebourg././@LongLink0000644000000000000000000000016212236137670011650 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/mini-jar-package-info/jar-with-package-info/src/main/java/org/apache/maven/it/pi/maven-shade-plugin-1.7.1/src/it/mini-jar-package-info/jar-with-package-info/src/main/java/org/apache0000775000175000017500000000000012236137670032434 5ustar ebourgebourg././@LongLink0000644000000000000000000000020312236137670011644 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/mini-jar-package-info/jar-with-package-info/src/main/java/org/apache/maven/it/pi/package-info.javamaven-shade-plugin-1.7.1/src/it/mini-jar-package-info/jar-with-package-info/src/main/java/org/apache0000664000175000017500000000167111603664151032437 0ustar ebourgebourg/* * 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. */ /** * This is some javadoc for the package org.apache.maven.it.pi. * * @since 100 */ @TestPackageAnnotation package org.apache.maven.it.pi;././@LongLink0000644000000000000000000000021412236137670011646 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/mini-jar-package-info/jar-with-package-info/src/main/java/org/apache/maven/it/pi/TestPackageAnnotation.javamaven-shade-plugin-1.7.1/src/it/mini-jar-package-info/jar-with-package-info/src/main/java/org/apache0000664000175000017500000000175511603664151032442 0ustar ebourgebourg/* * 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. */ package org.apache.maven.it.pi; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @Retention(RetentionPolicy.CLASS) public @interface TestPackageAnnotation { } ././@LongLink0000644000000000000000000000020312236137670011644 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/mini-jar-package-info/jar-with-package-info/src/main/java/org/apache/maven/it/pi/HaveOneClass.javamaven-shade-plugin-1.7.1/src/it/mini-jar-package-info/jar-with-package-info/src/main/java/org/apache0000664000175000017500000000164011603664151032433 0ustar ebourgebourg/* * 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. */ package org.apache.maven.it.pi; public class HaveOneClass { public static final String CONSTANT = "variable"; } maven-shade-plugin-1.7.1/src/it/mini-jar-package-info/jar-with-package-info/pom.xml0000664000175000017500000000220311603664151027355 0ustar ebourgebourg org.apache.maven.its.shade.mjpi test-package-info 1 4.0.0 dep jar-with-package-info Jar file with a package-info in it. maven-shade-plugin-1.7.1/src/it/mini-jar-package-info/test/0000775000175000017500000000000012236137667022765 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/mini-jar-package-info/test/src/0000775000175000017500000000000012236137667023554 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/mini-jar-package-info/test/src/main/0000775000175000017500000000000012236137667024500 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/mini-jar-package-info/test/src/main/java/0000775000175000017500000000000012236137667025421 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/mini-jar-package-info/test/src/main/java/org/0000775000175000017500000000000012236137667026210 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/mini-jar-package-info/test/src/main/java/org/apache/0000775000175000017500000000000012236137667027431 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/mini-jar-package-info/test/src/main/java/org/apache/maven/0000775000175000017500000000000012236137667030537 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/mini-jar-package-info/test/src/main/java/org/apache/maven/it/0000775000175000017500000000000012236137667031153 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/mini-jar-package-info/test/src/main/java/org/apache/maven/it/pi/0000775000175000017500000000000012236137667031563 5ustar ebourgebourg././@LongLink0000644000000000000000000000015212236137670011647 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/mini-jar-package-info/test/src/main/java/org/apache/maven/it/pi/Main.javamaven-shade-plugin-1.7.1/src/it/mini-jar-package-info/test/src/main/java/org/apache/maven/it/pi/Main0000664000175000017500000000011311603664151032353 0ustar ebourgebourgpackage org.apache.maven.it.pi; public class Main extends HaveOneClass { } maven-shade-plugin-1.7.1/src/it/mini-jar-package-info/test/pom.xml0000664000175000017500000000401711603664151024272 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.mjpi test-package-info 1 test test-shade-with-package-info Test that artifact contents can be filtered automatically to produce a mini jar that only contains the referenced classes including package-info.java. org.apache.maven.its.shade.mjpi dep 1 org.apache.maven.plugins maven-shade-plugin attach-shade package shade false true maven-shade-plugin-1.7.1/src/it/mini-jar-package-info/verify.bsh0000664000175000017500000000270611727627314024012 0ustar ebourgebourg/* * 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.*; import java.util.jar.*; String[] wanted = { "org/apache/maven/it/pi/Main.class", "org/apache/maven/it/pi/HaveOneClass.class", "org/apache/maven/it/pi/package-info.class", }; String[] unwanted = { }; JarFile jarFile = new JarFile( new File( basedir, "test/target/test-1.jar" ) ); for ( String path : wanted ) { if ( jarFile.getEntry( path ) == null ) { throw new IllegalStateException( "wanted path is missing: " + path ); } } for ( String path : unwanted ) { if ( jarFile.getEntry( path ) != null ) { throw new IllegalStateException( "unwanted path is present: " + path ); } } jarFile.close(); maven-shade-plugin-1.7.1/src/it/mini-jar-package-info/pom.xml0000664000175000017500000000405611603664151023316 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.mjpi test-package-info 1 pom mini-jar-with-package-info Test for minimizeJar keeping package-info around. @project.version@ jar-with-package-info test org.apache.maven.plugins maven-compiler-plugin 2.3.2 1.5 1.5 org.apache.maven.plugins maven-shade-plugin ${shade-version} maven-shade-plugin-1.7.1/src/it/finalNameShade/0000775000175000017500000000000012236137667020615 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/finalNameShade/src/0000775000175000017500000000000012236137667021404 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/finalNameShade/src/main/0000775000175000017500000000000012236137667022330 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/finalNameShade/src/main/resources/0000775000175000017500000000000012236137667024342 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/finalNameShade/src/main/resources/META-INF/0000775000175000017500000000000012236137667025502 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/finalNameShade/src/main/resources/META-INF/ejb-jar.xml0000664000175000017500000000004711251463631027524 0ustar ebourgebourg maven-shade-plugin-1.7.1/src/it/finalNameShade/verify.bsh0000664000175000017500000000367211727627314022624 0ustar ebourgebourg/* * 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.*; import java.util.*; import java.util.regex.*; try { // check for primary artifact, which is the unshaded one! File file = new File( basedir, "target/finalNameShade-1.0.jar" ); System.out.println( "file with finalName : " + file ); if ( !file.exists() ) { System.out.println( "file with finalName does not exist: " + file ); return false; } // check for the shaded jar File shaded = new File( basedir, "target/MyFinalShadeName.jar" ); System.out.println( "shaded file with name : " + shaded ); if ( !shaded.exists() ) { System.out.println( "shaded file does not exist: " + shaded ); return false; } // check for the artifact in the repo File rfile = new File( localRepositoryPath , "org/apache/maven/its/shade/fns/finalNameShade/1.0/finalNameShade-1.0.jar" ); System.out.println( "Checking for existence in repo: " + rfile ); if ( !rfile.isFile() ) { throw new FileNotFoundException( "Missing: " + rfile.getAbsolutePath() ); } } catch( Throwable t ) { t.printStackTrace(); return false; } return true; maven-shade-plugin-1.7.1/src/it/finalNameShade/pom.xml0000664000175000017500000000414411251463631022122 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.fns finalNameShade 1.0 MSHADE-54 :: Shaded Artifact Producer Test that attached artifact has the correct finalName if the finalName is set in the shade plugin section and artifact attaching is NOT activated. org.apache.maven.plugins maven-shade-plugin @project.version@ attach-shaded-artifact package shade MyFinalShadeName shaded false maven-shade-plugin-1.7.1/src/it/finalNameShade/setup.bsh0000664000175000017500000000203611727627314022451 0ustar ebourgebourg/* * 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.*; import java.util.*; import org.codehaus.plexus.util.*; File file = new File( localRepositoryPath, "org/apache/maven/its/shade/fns" ); System.out.println( "Deleting " + file ); FileUtils.deleteDirectory( file ); return true; maven-shade-plugin-1.7.1/src/it/attach-after-lifecycle-fork/0000775000175000017500000000000012236137667023215 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/attach-after-lifecycle-fork/verify.bsh0000664000175000017500000000241111727627314025212 0ustar ebourgebourg/* * 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.*; import java.util.*; String[] paths = { "org/apache/maven/its/shade/aalf/test/1.0/test-1.0-shade.jar", "org/apache/maven/its/shade/aalf/test/1.0/test-1.0-sources.jar", }; for ( String path : paths ) { File file = new File( localRepositoryPath, path ); System.out.println( "Checking for existence of " + file ); if ( !file.isFile() ) { throw new FileNotFoundException( "Missing: " + file.getAbsolutePath() ); } } return true; maven-shade-plugin-1.7.1/src/it/attach-after-lifecycle-fork/pom.xml0000664000175000017500000000672411124671066024532 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.aalf test 1.0 jar MSHADE-44 Test that attaching artifacts works when the plugin is executed after another plugin that forked the lifecycle. org.apache.maven.plugins maven-compiler-plugin 2.0.2 org.apache.maven.plugins maven-install-plugin 2.2 org.apache.maven.plugins maven-jar-plugin 2.1 org.apache.maven.plugins maven-resources-plugin 2.2 org.apache.maven.plugins maven-source-plugin 2.0.4 attach-sources package jar org.apache.maven.plugins maven-shade-plugin @project.version@ attach-shade package shade true shade false org.apache.maven.plugins maven-surefire-plugin 2.3.1 maven-shade-plugin-1.7.1/src/it/attach-after-lifecycle-fork/setup.bsh0000664000175000017500000000203711727627314025052 0ustar ebourgebourg/* * 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.*; import java.util.*; import org.codehaus.plexus.util.*; File file = new File( localRepositoryPath, "org/apache/maven/its/shade/aalf" ); System.out.println( "Deleting " + file ); FileUtils.deleteDirectory( file ); return true; maven-shade-plugin-1.7.1/src/it/services-resource-transformer/0000775000175000017500000000000012236137667023766 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/services-resource-transformer/verify.bsh0000664000175000017500000000244011727627314025765 0ustar ebourgebourg/* * 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.*; import java.util.jar.*; import org.codehaus.plexus.util.*; JarFile jarFile = new JarFile( new File( basedir, "target/test-1.0.jar" ) ); JarEntry jarEntry = jarFile.getEntry( "META-INF/services/org.apache.maven.Shade" ); String service = IOUtil.toString( jarFile.getInputStream( jarEntry ), "UTF-8" ); jarFile.close(); String[] providers = service.split( "(\r\n)|(\r)|(\n)" ); if ( providers.length != 2 ) { throw new IllegalStateException( "Broken provider list: " + service ); } maven-shade-plugin-1.7.1/src/it/services-resource-transformer/pom.xml0000664000175000017500000000475711351445632025307 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.srt test 1.0 jar MSHADE-76 Test the merging of META-INF/services/** entries. shade-it file:///${basedir}/repo ignore false org.apache.maven.its.shade.srt one 0.1 org.apache.maven.its.shade.srt two 0.1 org.apache.maven.plugins maven-shade-plugin @project.version@ attach-shade package shade false maven-shade-plugin-1.7.1/src/it/services-resource-transformer/repo/0000775000175000017500000000000012236137667024733 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/services-resource-transformer/repo/org/0000775000175000017500000000000012236137667025522 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/services-resource-transformer/repo/org/apache/0000775000175000017500000000000012236137667026743 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/services-resource-transformer/repo/org/apache/maven/0000775000175000017500000000000012236137667030051 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/services-resource-transformer/repo/org/apache/maven/its/0000775000175000017500000000000012236137667030650 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/services-resource-transformer/repo/org/apache/maven/its/shade/0000775000175000017500000000000012236137667031734 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/services-resource-transformer/repo/org/apache/maven/its/shade/srt/0000775000175000017500000000000012236137667032544 5ustar ebourgebourg././@LongLink0000644000000000000000000000014712236137670011653 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/services-resource-transformer/repo/org/apache/maven/its/shade/srt/two/maven-shade-plugin-1.7.1/src/it/services-resource-transformer/repo/org/apache/maven/its/shade/srt/tw0000775000175000017500000000000012236137667033117 5ustar ebourgebourg././@LongLink0000644000000000000000000000017112236137670011650 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/services-resource-transformer/repo/org/apache/maven/its/shade/srt/two/maven-metadata.xmlmaven-shade-plugin-1.7.1/src/it/services-resource-transformer/repo/org/apache/maven/its/shade/srt/tw0000664000175000017500000000046311351445632033113 0ustar ebourgebourg org.apache.maven.its.shade.srt two 0.1 0.1 20100321160331 ././@LongLink0000644000000000000000000000015312236137670011650 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/services-resource-transformer/repo/org/apache/maven/its/shade/srt/two/0.1/maven-shade-plugin-1.7.1/src/it/services-resource-transformer/repo/org/apache/maven/its/shade/srt/tw0000775000175000017500000000000012236137667033117 5ustar ebourgebourg././@LongLink0000644000000000000000000000016612236137670011654 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/services-resource-transformer/repo/org/apache/maven/its/shade/srt/two/0.1/two-0.1.pommaven-shade-plugin-1.7.1/src/it/services-resource-transformer/repo/org/apache/maven/its/shade/srt/tw0000664000175000017500000000225611351445632033115 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.srt two 0.1 jar maven-core-it file:///${basedir}/repo ././@LongLink0000644000000000000000000000016612236137670011654 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/services-resource-transformer/repo/org/apache/maven/its/shade/srt/two/0.1/two-0.1.jarmaven-shade-plugin-1.7.1/src/it/services-resource-transformer/repo/org/apache/maven/its/shade/srt/tw0000664000175000017500000000434611351445632033117 0ustar ebourgebourgPK pˆu< META-INF/PK oˆu<„¿ç hMETA-INF/MANIFEST.MFóMÌËLK-.Ñ K-*ÎÌϳR0Ô3àår,JÎÈ,K-Bä¤V”+À$x¹œ‹RKRSt*­ “3R|ËRóx¹œJ3sJÀâN©yY‰¹™P±]¯”l¦zñF†¼\¼\PK pˆu<META-INF/services/PK pˆu<âó¶Å00(META-INF/services/org.apache.maven.Shade+)ÏWPVðóqµRðËWÈK-ÏÉÌKU(I-ÊÍÌK,I-V(ÉÈ,V ê§eæ¤PK pˆu<META-INF/maven/PK pˆu<.META-INF/maven/org.apache.maven.its.shade.srt/PK pˆu<2META-INF/maven/org.apache.maven.its.shade.srt/two/PK gˆu<5AÜš®9META-INF/maven/org.apache.maven.its.shade.srt/two/pom.xmluT[o›0~Gâ?œ¡=´R€tÚôQª¬m4´.‘ ]ÕGNˆ[°™mB£iÿ}Ç@.Û´'dŸÛw9&ºz­+Ø¢Ò\ŠKï"˜z€"—å¥÷ÍýÞUì:®½ñ}×¹ã9  fƒ0kXNŸT®MÇÂ\¶¢`†šÁÙ,ŸQè:RA-)'—Â(¾j ]TC?`¥B¬Q¤ˆ}óÅ2K®oaÍ+ª.¸ªhxÇ͆2¸†NªXS#VÜŽepAuÂu–LY64¶Ù)^n ÈNá ohVfI¤ó==´FÇlG 'lG&ð}Ð ÞS8£×ñƘwþ©¯­Ù„4Ðjµù¢B­Aá–+ÒtµÖ–œ­aÅ:°ªZ[z³iz§HaQN\Gïí>5å(ÓÑ=M ¡9âÍRHR>ÏÒ$Àc’}Y>dð8»¿Ÿ-²ä6…å=\/7I–,tšÃlñä:_“ÅÍD¢1øÚ( Ÿ0r« '{³Ÿo÷¢wE7˜ó5ω–([V"”’v^صhPÕ\[5Á+hjnúåÑ®ó§Àu|x’Ϙ›ØJÕ²Àj\‡ø}0 ¦QøÇÝ`QT*Ù6I“3{“j¶EpÚ|½aZ™(ÜçõEL¾f¹¡³édžœûøø|ãip…ÛÃ@ŠÐ„VÍø™©(<G8{¨â¤Œ}ƒ}-E6Rsz¦»ñ†îx÷€ýœž²Ï */ŽÑVU±ÝpZÃðíÏ£?W¿BÛ( mpìþÕ: ÿ‹„P„þ PK pˆu< [Ë´ty@META-INF/maven/org.apache.maven.its.shade.srt/two/pom.properties̱ Â0€á=w8è~äÚA(t‘Núgs¶LÊåZñí­Û?|üÍU²(›Dx~áÆ»dïšû–Vh èÔ‡®ïΗ´‚w»hM%É»Y˶Žq(:#¯<-‚ïÿ“U¬ GÁªæ«¥OvPûï~PK pˆu< íAMETA-INF/PK oˆu<„¿ç h¤'META-INF/MANIFEST.MFPK pˆu<íAÁMETA-INF/services/PK pˆu<âó¶Å00(¤ñMETA-INF/services/org.apache.maven.ShadePK pˆu<íAgMETA-INF/maven/PK pˆu<.íA”META-INF/maven/org.apache.maven.its.shade.srt/PK pˆu<2íAàMETA-INF/maven/org.apache.maven.its.shade.srt/two/PK gˆu<5AÜš®9¤0META-INF/maven/org.apache.maven.its.shade.srt/two/pom.xmlPK pˆu< [Ë´ty@¤!META-INF/maven/org.apache.maven.its.shade.srt/two/pom.propertiesPK Ýó././@LongLink0000644000000000000000000000014712236137670011653 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/services-resource-transformer/repo/org/apache/maven/its/shade/srt/one/maven-shade-plugin-1.7.1/src/it/services-resource-transformer/repo/org/apache/maven/its/shade/srt/on0000775000175000017500000000000012236137667033101 5ustar ebourgebourg././@LongLink0000644000000000000000000000017112236137670011650 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/services-resource-transformer/repo/org/apache/maven/its/shade/srt/one/maven-metadata.xmlmaven-shade-plugin-1.7.1/src/it/services-resource-transformer/repo/org/apache/maven/its/shade/srt/on0000664000175000017500000000046311351445632033075 0ustar ebourgebourg org.apache.maven.its.shade.srt one 0.1 0.1 20100321160306 ././@LongLink0000644000000000000000000000015312236137670011650 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/services-resource-transformer/repo/org/apache/maven/its/shade/srt/one/0.1/maven-shade-plugin-1.7.1/src/it/services-resource-transformer/repo/org/apache/maven/its/shade/srt/on0000775000175000017500000000000012236137667033101 5ustar ebourgebourg././@LongLink0000644000000000000000000000016612236137670011654 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/services-resource-transformer/repo/org/apache/maven/its/shade/srt/one/0.1/one-0.1.jarmaven-shade-plugin-1.7.1/src/it/services-resource-transformer/repo/org/apache/maven/its/shade/srt/on0000664000175000017500000000434311351445632033076 0ustar ebourgebourgPK dˆu< META-INF/PK cˆu<„¿ç hMETA-INF/MANIFEST.MFóMÌËLK-.Ñ K-*ÎÌϳR0Ô3àår,JÎÈ,K-Bä¤V”+À$x¹œ‹RKRSt*­ “3R|ËRóx¹œJ3sJÀâN©yY‰¹™P±]¯”l¦zñF†¼\¼\PK cˆu<META-INF/services/PK cˆu<ƒu-Ú.0(META-INF/services/org.apache.maven.ShadeËÏKUPVðóqµRðËWÈK-ÏÉ •¤åfæ%–¤+”dd+€õÓ2sRPK dˆu<META-INF/maven/PK dˆu<.META-INF/maven/org.apache.maven.its.shade.srt/PK dˆu<2META-INF/maven/org.apache.maven.its.shade.srt/one/PK T‡uµù¢B­Aá–+ÒtµÖ–œ­aÅ:°ªZ[z³iz§HaQN\Gïí>5å(ÓÑ=M ¡9âÍRHR>ÏÒ$Àc’}Y>dð8»¿Ÿ-²ä6…å=\/7I–,tšÃlñä:_“ÅÍD¢1øÚ( Ÿ0r« '{³Ÿo÷¢wE7˜ó5ω–([V"”’v^صhPÕ\[5Á+hjnúåÑ®ó§Àu|x’Ϙ›ØJÕ²Àj\‡ø}0 ¦QøÇÝ`QT*Ù6I“3{“j¶EpÚ|½aZ™(ÜçõEL¾f¹±u£ðäÜÇÇçOƒ‹(ÜR„&¼°’hÆÏLEáñ8Â9ØCߘ eììk)ª°‘šÓ3Ý7tÇ‹¸ìçô”}NPyqŒ¶ªŠí†Ó†o®ý)¸úÚFQhƒcçð¯ÖQø_$„ú ôoPK dˆu<Ê šÙty@META-INF/maven/org.apache.maven.its.shade.srt/one/pom.properties̱ Â0€áý ïpÐý¸TP(t‡Núgs¶LÊ%-ôíµÛ?|üÍ]“šT øÞqM“ƒæ¹¦¶ý¥ãSÇg¼Þ^زg›Z‰9õLÞÁdy]¡Ï6‘,2ÎJßãB±*³¥bÕXëA“:øPK dˆu< íAMETA-INF/PK cˆu<„¿ç h¤'META-INF/MANIFEST.MFPK cˆu<íAÁMETA-INF/services/PK cˆu<ƒu-Ú.0(¤ñMETA-INF/services/org.apache.maven.ShadePK dˆu<íAeMETA-INF/maven/PK dˆu<.íA’META-INF/maven/org.apache.maven.its.shade.srt/PK dˆu<2íAÞMETA-INF/maven/org.apache.maven.its.shade.srt/one/PK T‡u 4.0.0 org.apache.maven.its.shade.srt one 0.1 jar maven-core-it file:///${basedir}/repo maven-shade-plugin-1.7.1/src/it/artifact-includes-excludes/0000775000175000017500000000000012236137667023171 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/artifact-includes-excludes/verify.bsh0000664000175000017500000000260711727627314025175 0ustar ebourgebourg/* * 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.*; import java.util.jar.*; String[] wanted = { "a.properties", }; String[] unwanted = { "b.properties", "junit/framework/TestCase.class", }; JarFile jarFile = new JarFile( new File( basedir, "target/test-1.0.jar" ) ); for ( String path : wanted ) { if ( jarFile.getEntry( path ) == null ) { throw new IllegalStateException( "wanted path is missing: " + path ); } } for ( String path : unwanted ) { if ( jarFile.getEntry( path ) != null ) { throw new IllegalStateException( "unwanted path is present: " + path ); } } jarFile.close(); maven-shade-plugin-1.7.1/src/it/artifact-includes-excludes/pom.xml0000664000175000017500000000527711316510437024505 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.aie test 1.0 jar MSHADE-33 Test artifact selection via glob includes/excludes. shade-it file:///${basedir}/repo ignore false junit junit 3.8.2 org.apache.maven.its.shade.aie a 0.1 org.apache.maven.its.shade.aie b 0.2 org.apache.maven.plugins maven-shade-plugin @project.version@ attach-shade package shade false org.apache.maven.its.shade.aie *:b:jar: maven-shade-plugin-1.7.1/src/it/artifact-includes-excludes/repo/0000775000175000017500000000000012236137667024136 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/artifact-includes-excludes/repo/org/0000775000175000017500000000000012236137667024725 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/artifact-includes-excludes/repo/org/apache/0000775000175000017500000000000012236137667026146 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/artifact-includes-excludes/repo/org/apache/maven/0000775000175000017500000000000012236137667027254 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/artifact-includes-excludes/repo/org/apache/maven/its/0000775000175000017500000000000012236137667030053 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/artifact-includes-excludes/repo/org/apache/maven/its/shade/0000775000175000017500000000000012236137667031137 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/artifact-includes-excludes/repo/org/apache/maven/its/shade/aie/0000775000175000017500000000000012236137667031675 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/artifact-includes-excludes/repo/org/apache/maven/its/shade/aie/b/0000775000175000017500000000000012236137667032116 5ustar ebourgebourg././@LongLink0000644000000000000000000000016412236137670011652 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/artifact-includes-excludes/repo/org/apache/maven/its/shade/aie/b/maven-metadata.xmlmaven-shade-plugin-1.7.1/src/it/artifact-includes-excludes/repo/org/apache/maven/its/shade/aie/b/mav0000664000175000017500000000046111316510437032611 0ustar ebourgebourg org.apache.maven.its.shade.aie b 0.2 0.2 20091229231210 ././@LongLink0000644000000000000000000000014612236137670011652 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/artifact-includes-excludes/repo/org/apache/maven/its/shade/aie/b/0.2/maven-shade-plugin-1.7.1/src/it/artifact-includes-excludes/repo/org/apache/maven/its/shade/aie/b/0.20000775000175000017500000000000012236137667032336 5ustar ebourgebourg././@LongLink0000644000000000000000000000015712236137670011654 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/artifact-includes-excludes/repo/org/apache/maven/its/shade/aie/b/0.2/b-0.2.pommaven-shade-plugin-1.7.1/src/it/artifact-includes-excludes/repo/org/apache/maven/its/shade/aie/b/0.20000664000175000017500000000225411316510437032327 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.aie b 0.2 jar maven-core-it file:///${basedir}/repo ././@LongLink0000644000000000000000000000015712236137670011654 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/artifact-includes-excludes/repo/org/apache/maven/its/shade/aie/b/0.2/b-0.2.jarmaven-shade-plugin-1.7.1/src/it/artifact-includes-excludes/repo/org/apache/maven/its/shade/aie/b/0.20000664000175000017500000000377611316510437032341 0ustar ebourgebourgPK †ž; META-INF/PK …ž;ÍÚfe{META-INF/MANIFEST.MFóMÌËLK-.Ñ K-*ÎÌϳR0Ô3àår,JÎÈ,K-Bä¤V”+À$x¹œ‹RKRSt*­ “3R|ËRóx¹œJ3sJÀâN®N®~Š®WJ6Èp3=ƒxs^.^.PK …ž; b.propertiesPK †ž;META-INF/maven/PK †ž;.META-INF/maven/org.apache.maven.its.shade.aie/PK †ž;0META-INF/maven/org.apache.maven.its.shade.aie/b/PK ƒž;’¹'™¬7META-INF/maven/org.apache.maven.its.shade.aie/b/pom.xmluT[o›0~Gâ?œ¡=´RÀYµ‡i£TYÛhh]"•tU8!nÁf¶ ¦ý÷rÙ¦=!ûܾË1ñÕk]ÁµJ^ï¢q(sUY^‹iø!¸J|Ï÷â7aè{w"Gi°«À®& Ïé“©•í¸F˜ªVÜR38›dÓs #jP}Oi¨åäJZ-–­¥‹j×x©k”ÖDbß|6_¤×·°UÂìªhx'ìš2„NéXQ#^ÂåIuÂ÷4–\;64¶ÙjQ®-¨NáµhhÖ‘Ȧ{ f×v7’8nU;P8a;ˆ0‚ï;Ýà"Ã%ø^0Ä‚óO}mÍ· •…Öà±3àkŽ% ªn*ÁeNµ«CB÷4´PKË)›÷$@­NÓ€[çÀÚÚæ#c]×E¼)]²=1vGZβÛÀºüY¡1 ñG+4iºÜoKΗ„°â8U-½Ù4½Ó¤°,G¾gövŸšr”iŒèž&Pœ &¤YŸ'Yšà1]|™?,àqr?™-ÒÛ æ÷p=ŸÝ¤‹t>£Ó&³'ßûšÎnF€$Á×F;ø„Q8±8Ù›ý|·½+¦Á\¬DN´dÙò¡T´óÒ­EƒºÆÙh^A‹P Û/ñ½8E¾†»÷ÐhõŒ¹Mœôq­ ¬†uHÞGãh³?îvÅ¥Vm“ 9³7©æ”‘ Í7k^`ÄÆlŸ×qmÅŠç–΢œúèðx“qt³ÍaE¨ÿ /‰dòÌuÌŽÇÌÁªøÆ%éâ^`_KQ2‚év¸¡;Q$=Ü0§‡ 3Q£­®·ß´„ìíÏ%§ÿ„п˜k3:³¿ZÇì¿HõAæßPK †ž;ý]rw>META-INF/maven/org.apache.maven.its.shade.aie/b/pom.properties̱ Â0€áý ïpÐý¸ÆÉB'qpœ¯ÉÙf0)—Xðí­ãwÕ¬&M#N_¼Ë¦ÙA÷Üó¬ŒÌCñty g>:ØÔj*ydòf+ŸõÇb3É*aQzÿ/”Z¥ºHT’¤ÄZzIh;üPK †ž; íAMETA-INF/PK …ž;ÍÚfe{¤'META-INF/MANIFEST.MFPK …ž; ¤¾b.propertiesPK †ž;íAêMETA-INF/maven/PK †ž;.íAMETA-INF/maven/org.apache.maven.its.shade.aie/PK †ž;0íAcMETA-INF/maven/org.apache.maven.its.shade.aie/b/PK ƒž;’¹'™¬7¤±META-INF/maven/org.apache.maven.its.shade.aie/b/pom.xmlPK †ž;ý]rw>¤ŸMETA-INF/maven/org.apache.maven.its.shade.aie/b/pom.propertiesPK{mmaven-shade-plugin-1.7.1/src/it/artifact-includes-excludes/repo/org/apache/maven/its/shade/aie/a/0000775000175000017500000000000012236137667032115 5ustar ebourgebourg././@LongLink0000644000000000000000000000016412236137670011652 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/artifact-includes-excludes/repo/org/apache/maven/its/shade/aie/a/maven-metadata.xmlmaven-shade-plugin-1.7.1/src/it/artifact-includes-excludes/repo/org/apache/maven/its/shade/aie/a/mav0000664000175000017500000000046111316510437032610 0ustar ebourgebourg org.apache.maven.its.shade.aie a 0.1 0.1 20091229231152 ././@LongLink0000644000000000000000000000014612236137670011652 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/artifact-includes-excludes/repo/org/apache/maven/its/shade/aie/a/0.1/maven-shade-plugin-1.7.1/src/it/artifact-includes-excludes/repo/org/apache/maven/its/shade/aie/a/0.10000775000175000017500000000000012236137667032334 5ustar ebourgebourg././@LongLink0000644000000000000000000000015712236137670011654 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/artifact-includes-excludes/repo/org/apache/maven/its/shade/aie/a/0.1/a-0.1.jarmaven-shade-plugin-1.7.1/src/it/artifact-includes-excludes/repo/org/apache/maven/its/shade/aie/a/0.10000664000175000017500000000377611316510437032337 0ustar ebourgebourgPK zž; META-INF/PK zž;ÍÚfe{META-INF/MANIFEST.MFóMÌËLK-.Ñ K-*ÎÌϳR0Ô3àår,JÎÈ,K-Bä¤V”+À$x¹œ‹RKRSt*­ “3R|ËRóx¹œJ3sJÀâN®N®~Š®WJ6Èp3=ƒxs^.^.PK zž; a.propertiesPK {ž;META-INF/maven/PK {ž;.META-INF/maven/org.apache.maven.its.shade.aie/PK {ž;0META-INF/maven/org.apache.maven.its.shade.aie/a/PK ež;Ú•êᙬ7META-INF/maven/org.apache.maven.its.shade.aie/a/pom.xmluT[o›0~Gâ?œ¡=´RÀé´‡i£TYÛhh]"•tU8!nÁf¶ ¦ý÷rÙ¦=!ûܾË1ñÕk]ÁµJ^Ñ8”¹*„,/ƒ‡Å4ü\%¾ç{ñ›0ô½;‘£4X€U`ד†çôÉÔÊv\#LU+ n©œM²é9Ð5(‰¾§4ÔŠrr%­ËÖÒEµë¼Ôˆ5Jk"€ ±o>›/Òë[X‰Šª avU4¼vMÂ@§ô ¬¨/ áÆò „¤‹ºá{K®Ûlµ(×T'‰ðZ44káHdÓ=³k»I·ª(œ°DÁ÷nð.Ã%ø^0Ä‚óO}mÍ· •…Öà±3àkŽ% ªn*ÁeNµ«CB÷4´PKË)›÷$@­NÓ€[çÀÚÚæ#c]×E¼)]²=1vGZβÛÀºüY¡1 ñG+4iºÜoKΗ„°â8U-½Ù4½Ó¤°,G¾gövŸšr”iŒèž&Pœ &¤YŸ'Yšà1]|™?,àqr?™-ÒÛ æ÷p=ŸÝ¤‹t>£Ó&³'ßûšÎnF€$Á×F;ø„Q8±8Ù›ý|·½+¦Á\¬DN´dÙò¡T´óÒ­EƒºÆÙh^A‹P Û/ñ½8E¾†»÷ÐhõŒ¹Mœôq­ ¬†uHÞGãh³?îvÅ¥Vm“ 9³7©æ”‘ Í7k^`ÄÆlŸ×qmÅŠç–Î:<Þd]ÄlsGêÿÂK"™META-INF/maven/org.apache.maven.its.shade.aie/a/pom.properties̱ Â0€á=pïpÐý¸(:i7ÁùLÎ6ƒI¹Ä‚ooøø»‹f5iñùÅ›¬šÁu-ÏpÏÈÜ{ß<žÆ;î˜àVµšJ˜<¸ÉÊg¹Æ¡ØD²H˜•Þÿ ¥V©Î•$)8±–^ÚFÜPK zž; íAMETA-INF/PK zž;ÍÚfe{¤'META-INF/MANIFEST.MFPK zž; ¤¾a.propertiesPK {ž;íAêMETA-INF/maven/PK {ž;.íAMETA-INF/maven/org.apache.maven.its.shade.aie/PK {ž;0íAcMETA-INF/maven/org.apache.maven.its.shade.aie/a/PK ež;Ú•êᙬ7¤±META-INF/maven/org.apache.maven.its.shade.aie/a/pom.xmlPK zž;ƒ§ rw>¤ŸMETA-INF/maven/org.apache.maven.its.shade.aie/a/pom.propertiesPK{m././@LongLink0000644000000000000000000000015712236137670011654 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/artifact-includes-excludes/repo/org/apache/maven/its/shade/aie/a/0.1/a-0.1.pommaven-shade-plugin-1.7.1/src/it/artifact-includes-excludes/repo/org/apache/maven/its/shade/aie/a/0.10000664000175000017500000000225411316510437032325 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.aie a 0.1 jar maven-core-it file:///${basedir}/repo maven-shade-plugin-1.7.1/src/it/MSHADE-105/0000775000175000017500000000000012236137667017222 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/MSHADE-105/shaded-jar/0000775000175000017500000000000012236137667021224 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/MSHADE-105/shaded-jar/pom.xml0000664000175000017500000000417011726750601022533 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.mr MSHADE-105-ROOT 1.0-SNAPSHOT MSHADE-105-SHADED-JAR commons-io commons-io 1.4 org.apache.maven.plugins maven-shade-plugin @project.version@ package shade org.apache.commons.io internal.io maven-shade-plugin-1.7.1/src/it/MSHADE-105/bundle/0000775000175000017500000000000012236137667020473 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/MSHADE-105/bundle/src/0000775000175000017500000000000012236137667021262 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/MSHADE-105/bundle/src/main/0000775000175000017500000000000012236137667022206 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/MSHADE-105/bundle/src/main/java/0000775000175000017500000000000012236137667023127 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/MSHADE-105/bundle/src/main/java/test/0000775000175000017500000000000012236137667024106 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/MSHADE-105/bundle/src/main/java/test/Dummy.java0000664000175000017500000000035111726750563026042 0ustar ebourgebourgpackage test; import internal.io.IOUtils; import java.io.IOException; import java.io.InputStream; public class Dummy { public static void dump(InputStream in) throws IOException { IOUtils.copy(in, System.out); } } maven-shade-plugin-1.7.1/src/it/MSHADE-105/bundle/pom.xml0000664000175000017500000000357111726750601022006 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.mr MSHADE-105-ROOT 1.0-SNAPSHOT MSHADE-105-BUNDLE bundle ${project.groupId} MSHADE-105-SHADED-JAR ${project.version} org.apache.felix maven-bundle-plugin 2.1.0 true * maven-shade-plugin-1.7.1/src/it/MSHADE-105/verify.bsh0000664000175000017500000000250311726750601021214 0ustar ebourgebourg/* * 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.*; import java.util.jar.*; import java.util.*; JarFile jarFile = new JarFile( new File( basedir, "bundle/target/MSHADE-105-BUNDLE-1.0-SNAPSHOT.jar" ) ); Manifest mf = jarFile.getManifest(); jarFile.close(); String importPackage = mf.getMainAttributes().getValue( "Import-Package" ); System.out.println("importPackage:"+importPackage); if ( importPackage.indexOf("org.apache.commons.io" ) >=0 ) { throw new IllegalStateException( "MANIFEST.MF has Import-Package entry with org.apache.commons.io" ); } return true; maven-shade-plugin-1.7.1/src/it/MSHADE-105/pom.xml0000664000175000017500000000243411726750601020532 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.mr MSHADE-105-ROOT 1.0-SNAPSHOT pom shaded-jar bundle maven-shade-plugin-1.7.1/src/it/reloc-enum-ref-from-anno/0000775000175000017500000000000012236137667022470 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/reloc-enum-ref-from-anno/src/0000775000175000017500000000000012236137667023257 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/reloc-enum-ref-from-anno/src/main/0000775000175000017500000000000012236137667024203 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/reloc-enum-ref-from-anno/src/main/java/0000775000175000017500000000000012236137667025124 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/reloc-enum-ref-from-anno/src/main/java/MyAnno.java0000664000175000017500000000166611302050555027160 0ustar ebourgebourg/* * 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. */ @java.lang.annotation.Retention( java.lang.annotation.RetentionPolicy.RUNTIME ) public @interface MyAnno { relocated.MyEnum value(); } maven-shade-plugin-1.7.1/src/it/reloc-enum-ref-from-anno/src/main/java/Main.java0000664000175000017500000000231611302050555026634 0ustar ebourgebourg/* * 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. */ @MyAnno( relocated.MyEnum.YES ) public class Main { public static void main( String[] args ) throws Exception { MyAnno anno = Main.class.getAnnotation( MyAnno.class ); System.out.println( "ANNO: " + anno.value() ); if ( !relocated.MyEnum.YES.equals( anno.value() ) ) { throw new IllegalStateException( "unexpected value: " + anno.value() ); } } } maven-shade-plugin-1.7.1/src/it/reloc-enum-ref-from-anno/src/main/java/relocated/0000775000175000017500000000000012236137667027066 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/reloc-enum-ref-from-anno/src/main/java/relocated/MyEnum.java0000664000175000017500000000154211302050555031124 0ustar ebourgebourgpackage relocated; /* * 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. */ public enum MyEnum { YES, NO } maven-shade-plugin-1.7.1/src/it/reloc-enum-ref-from-anno/invoker.properties0000664000175000017500000000003411302050555026237 0ustar ebourgebourginvoker.java.version = 1.5+ maven-shade-plugin-1.7.1/src/it/reloc-enum-ref-from-anno/pom.xml0000664000175000017500000000704411302050555023771 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.rerfa test 1.0 jar MSHADE-64 Test that enum references in annotations are properly relocated. org.apache.maven.plugins maven-compiler-plugin 2.0.2 1.5 1.5 org.apache.maven.plugins maven-jar-plugin 2.1 org.apache.maven.plugins maven-resources-plugin 2.2 org.apache.maven.plugins maven-shade-plugin @project.version@ shade package shade false relocated hidden org.codehaus.mojo exec-maven-plugin 1.1.1 run verify exec java -classpath ${project.build.directory}/test-1.0.jar Main org.apache.maven.plugins maven-surefire-plugin 2.3.1 maven-shade-plugin-1.7.1/src/it/shadePomDependency/0000775000175000017500000000000012236137667021515 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/shadePomDependency/pomDependency/0000775000175000017500000000000012236137667024307 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/shadePomDependency/pomDependency/pom.xml0000664000175000017500000000334311251520341025604 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.spom pomDependency 1.0 pom MSHADE-60 :: dependency to a packaging=pom artifact This is an artifact with packaging=pom. It only declares further dependencies which should be shaded into the final uberwar. org.apache.maven.plugins maven-compiler-plugin 2.0.2 maven-shade-plugin-1.7.1/src/it/shadePomDependency/testModule/0000775000175000017500000000000012236137667023642 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/shadePomDependency/testModule/src/0000775000175000017500000000000012236137667024431 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/shadePomDependency/testModule/src/main/0000775000175000017500000000000012236137667025355 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/shadePomDependency/testModule/src/main/java/0000775000175000017500000000000012236137667026276 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/shadePomDependency/testModule/src/main/java/ShadedClassUsage.java0000664000175000017500000000206411251520341032263 0ustar ebourgebourg/* * 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. */ public class ShadedClassUsage { public static void main() throws Exception { Class cmClass = Class.forName( "org.apache.maven.plugin.CompilerMojo", true, Thread.currentThread().getContextClassLoader() ); } }maven-shade-plugin-1.7.1/src/it/shadePomDependency/testModule/pom.xml0000664000175000017500000000310011251520341025126 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.spom testModule 1.0 MSHADE-60 :: dependency to a type=pom artifact This module uses the shaded artifact and tries to import a package from the shaded module org.apache.maven.its.shade.spom shadingModule 1.0 shaded maven-shade-plugin-1.7.1/src/it/shadePomDependency/shadingModule/0000775000175000017500000000000012236137667024300 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/shadePomDependency/shadingModule/pom.xml0000664000175000017500000000474211251520341025601 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.spom shadingModule 1.0 MSHADE-60 :: dependency to a type=pom artifact This module creates the uberwar containing an artifact which may not be handled by the JarFile like e.g. a depending pom. The artifact with packaging=pom we depend on has several other artifacts as dependencies. Those artifacts should be contained in the shade-artifact finally. org.apache.maven.its.shade.spom pomDependency 1.0 pom org.apache.maven.plugins maven-shade-plugin @project.version@ create-shaded-artifact package shade true shaded false maven-shade-plugin-1.7.1/src/it/shadePomDependency/pom.xml0000664000175000017500000000330511251520341023010 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.spom shadePomDependency 1.0 pom MSHADE-60 :: dependency to a type=pom artifact Test creating an uberwar containing an artifact which may not be handled by the JarFile like e.g. a depending pom. The artifact with packaging=pom we depend on has several other artifacts as dependencies. Those artifacts should be contained in the shade-artifact finally. pomDependency shadingModule testModule maven-shade-plugin-1.7.1/src/it/manifest-transformed/0000775000175000017500000000000012236137667022106 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/manifest-transformed/verify.bsh0000664000175000017500000000321711727627314024110 0ustar ebourgebourg/* * 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.*; import java.util.jar.*; // NOTE: We deliberately use JarInputStream and not JarFile here! JarInputStream jarStream = new JarInputStream( new FileInputStream( new File( basedir, "target/test-1.0.jar" ) ) ); Manifest mf = jarStream.getManifest(); jarStream.close(); if ( mf == null ) { throw new IllegalStateException( "META-INF/MANIFEST.MF is missing" ); } if ( !"PASSED".equals( mf.getMainAttributes().getValue( "Test-Entry" ) ) ) { throw new IllegalStateException( "META-INF/MANIFEST.MF is incomplete" ); } if ( !"PASSED".equals( mf.getMainAttributes().getValue( "Original-Entry" ) ) ) { throw new IllegalStateException( "META-INF/MANIFEST.MF is incomplete" ); } if ( !"org.apache.maven.Shade".equals( mf.getMainAttributes().getValue( "Main-Class" ) ) ) { throw new IllegalStateException( "META-INF/MANIFEST.MF is incomplete" ); } maven-shade-plugin-1.7.1/src/it/manifest-transformed/pom.xml0000664000175000017500000000734511351475747023435 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.mt test 1.0 jar MSHADE-77 Test that manifest is properly transformed and ends up as the first entry in the JAR. org.apache.maven.plugins maven-shade-plugin @project.version@ org.apache.maven.plugins maven-compiler-plugin 2.0.2 org.apache.maven.plugins maven-install-plugin 2.2 org.apache.maven.plugins maven-jar-plugin 2.2 org.apache.maven.Main FAILED PASSED org.apache.maven.plugins maven-resources-plugin 2.2 org.apache.maven.plugins maven-shade-plugin @project.version@ attach-shade package shade false org.apache.maven.Shade PASSED org.apache.maven.plugins maven-surefire-plugin 2.3.1 maven-shade-plugin-1.7.1/src/it/dep-reduced-pom/0000775000175000017500000000000012236137667020730 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/dep-reduced-pom/verify.groovy0000664000175000017500000000213611727627314023502 0ustar ebourgebourg/* * 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. */ File pomFile = new File( basedir, "target/dependency-reduced-pom.xml" ); assert pomFile.isFile() def ns = new groovy.xml.Namespace("http://maven.apache.org/POM/4.0.0") def pom = new XmlParser().parse( pomFile ) assert pom[ns.modelVersion].size() == 1 assert pom[ns.dependencies][ns.dependency].size() == 0 maven-shade-plugin-1.7.1/src/it/dep-reduced-pom/pom.xml0000664000175000017500000000556011772570203022242 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.drp test 1.0 jar MSHADE-53 Test that creation of the dependency reduced POM properly handles dependencies with classifiers. shade-it file:///${basedir}/repo ignore false org.apache.maven.its.shade.drp a 0.1 org.apache.maven.its.shade.drp b 0.2 client org.apache.maven.its.shade.drp c 1 pom org.apache.maven.plugins maven-shade-plugin @project.version@ attach-shade package shade true false true target/dependency-reduced-pom.xml maven-shade-plugin-1.7.1/src/it/dep-reduced-pom/repo/0000775000175000017500000000000012236137667021675 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/dep-reduced-pom/repo/org/0000775000175000017500000000000012236137667022464 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/dep-reduced-pom/repo/org/apache/0000775000175000017500000000000012236137667023705 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/dep-reduced-pom/repo/org/apache/maven/0000775000175000017500000000000012236137667025013 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/dep-reduced-pom/repo/org/apache/maven/its/0000775000175000017500000000000012236137667025612 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/dep-reduced-pom/repo/org/apache/maven/its/shade/0000775000175000017500000000000012236137667026676 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/dep-reduced-pom/repo/org/apache/maven/its/shade/drp/0000775000175000017500000000000012236137667027463 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/dep-reduced-pom/repo/org/apache/maven/its/shade/drp/b/0000775000175000017500000000000012236137667027704 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/dep-reduced-pom/repo/org/apache/maven/its/shade/drp/b/0.2/0000775000175000017500000000000012236137667030203 5ustar ebourgebourg././@LongLink0000644000000000000000000000015312236137670011650 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/dep-reduced-pom/repo/org/apache/maven/its/shade/drp/b/0.2/b-0.2-client.jarmaven-shade-plugin-1.7.1/src/it/dep-reduced-pom/repo/org/apache/maven/its/shade/drp/b/0.2/b-0.2-clie0000664000175000017500000000363211302060357031542 0ustar ebourgebourgPK =²u; META-INF/PK <²u;ÍÚfe{META-INF/MANIFEST.MFóMÌËLK-.Ñ K-*ÎÌϳR0Ô3àår,JÎÈ,K-Bä¤V”+À$x¹œ‹RKRSt*­ “3R|ËRóx¹œJ3sJÀâN®N®~Š®WJ6Èp3=ƒxs^.^.PK =²u;META-INF/maven/PK =²u;.META-INF/maven/org.apache.maven.its.shade.drp/PK =²u;0META-INF/maven/org.apache.maven.its.shade.drp/b/PK ;²u;Åá rš¬7META-INF/maven/org.apache.maven.its.shade.drp/b/pom.xmluT[o›0~Gâ?œ¡=´RÀYµ‡i£TYÛhh]"•tU8!nÁf¶ ¦ý÷rÙ¦=!ûܾË1ñÕk]ÁµJ^ï¢q(sUY^‹iø!¸J|Ï÷â7aè{w"Gi°«À®& Ïé“©•í¸F˜ªVÜR38›dÓs #jP}Oi¨åäJZ-–­¥‹j×x©k”ÖDbß|6_¤×·°UÂìªhx'ìš2„NéXQ#^ÂåIuÂ÷4–\;64¶ÙjQ®-¨NáµhhÖ‘Ȧ{ f×v7’8nU;P8a;ˆ0‚ï;Ýà"Ã%ø^0Ä‚óO}mÍ· •…Öà±3àkŽ% ªn*ÁeNµ«CB÷4´PKË)›÷$@­NÓ€[çÀÚÚæ#c]×E¼)]²=1vGZβÛÀºüY¡1 ñG+4iºÜoKΗ„°â8U-½Ù4½Ó¤°,G¾gövŸšr”iŒèž&Pœ &¤YŸ'Yšà1]|™?,àqr?™-ÒÛ æ÷p=ŸÝ¤‹t>£Ó&³'ßûšÎnF€$Á×F;ø„Q8±8Ù›ý|·½+¦Á\¬DN´dÙò¡T´óÒ­EƒºÆÙh^A‹P Û/ñ½8E¾†»÷ÐhõŒ¹Mœôq­ ¬†uHÞGãh³?îvÅ¥Vm“ 9³7©æ”‘ Í7k^`Tè&fû¼¾ˆk+V<·t^ÆìäÔG‡Ç›Œ£‹˜mã(Bý_xI$“g®cv<`æPÅ7.I÷ûZŠjl”ôH·Ã ݉"éá†9=äPؘ‰âmu•¸ý¦%do.9ý'„þÅ\£˜¹àЙýÕ:fÿEB¨2ÿPK =²u;$#sw>META-INF/maven/org.apache.maven.its.shade.drp/b/pom.properties̱ Â0Ð=8è~¤*:‰ˆƒ.ú׿l34 —ðïÕýñº‹DQ®âaúÀ›DkºW¸§ÔÑІÝNç'sGkšh )ŽÉšEÓ;_ý˜tAÎ<¯‚ÛÁP –•½ ×l k /žëNÖ|PK =²u; íAMETA-INF/PK <²u;ÍÚfe{¤'META-INF/MANIFEST.MFPK =²u;íA¾META-INF/maven/PK =²u;.íAëMETA-INF/maven/org.apache.maven.its.shade.drp/PK =²u;0íA7META-INF/maven/org.apache.maven.its.shade.drp/b/PK ;²u;Åá rš¬7¤…META-INF/maven/org.apache.maven.its.shade.drp/b/pom.xmlPK =²u;$#sw>¤tMETA-INF/maven/org.apache.maven.its.shade.drp/b/pom.propertiesPKACmaven-shade-plugin-1.7.1/src/it/dep-reduced-pom/repo/org/apache/maven/its/shade/drp/b/0.2/b-0.2.pom0000664000175000017500000000225411302060357031421 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.drp b 0.2 jar maven-core-it file:///${basedir}/repo maven-shade-plugin-1.7.1/src/it/dep-reduced-pom/repo/org/apache/maven/its/shade/drp/c/0000775000175000017500000000000012236137667027705 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/dep-reduced-pom/repo/org/apache/maven/its/shade/drp/c/1/0000775000175000017500000000000012236137667030045 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/dep-reduced-pom/repo/org/apache/maven/its/shade/drp/c/1/c-1.pom0000664000175000017500000000225211603350267031131 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.drp c 1 pom maven-core-it file:///${basedir}/repo maven-shade-plugin-1.7.1/src/it/dep-reduced-pom/repo/org/apache/maven/its/shade/drp/a/0000775000175000017500000000000012236137667027703 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/dep-reduced-pom/repo/org/apache/maven/its/shade/drp/a/0.1/0000775000175000017500000000000012236137667030201 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/dep-reduced-pom/repo/org/apache/maven/its/shade/drp/a/0.1/a-0.1.jar0000664000175000017500000000363111302060357031376 0ustar ebourgebourgPK 9²u; META-INF/PK 8²u;ÍÚfe{META-INF/MANIFEST.MFóMÌËLK-.Ñ K-*ÎÌϳR0Ô3àår,JÎÈ,K-Bä¤V”+À$x¹œ‹RKRSt*­ “3R|ËRóx¹œJ3sJÀâN®N®~Š®WJ6Èp3=ƒxs^.^.PK 9²u;META-INF/maven/PK 9²u;.META-INF/maven/org.apache.maven.its.shade.drp/PK 9²u;0META-INF/maven/org.apache.maven.its.shade.drp/a/PK 4²u;éZ´š¬7META-INF/maven/org.apache.maven.its.shade.drp/a/pom.xmluT[o›0~Gâ?œ¡=´RÀé´‡i£TYÛhh]"•tU8!nÁf¶ ¦ý÷rÙ¦=!ûܾË1ñÕk]ÁµJ^Ñ8”¹*„,/ƒ‡Å4ü\%¾ç{ñ›0ô½;‘£4X€U`ד†çôÉÔÊv\#LU+ n©œM²é9Ð5(‰¾§4ÔŠrr%­ËÖÒEµë¼Ôˆ5Jk"€ ±o>›/Òë[X‰Šª avU4¼vMÂ@§ô ¬¨/ áÆò „¤‹ºá{K®Ûlµ(×T'‰ðZ44káHdÓ=³k»I·ª(œ°DÁ÷nð.Ã%ø^0Ä‚óO}mÍ· •…Öà±3àkŽ% ªn*ÁeNµ«CB÷4´PKË)›÷$@­NÓ€[çÀÚÚæ#c]×E¼)]²=1vGZβÛÀºüY¡1 ñG+4iºÜoKΗ„°â8U-½Ù4½Ó¤°,G¾gövŸšr”iŒèž&Pœ &¤YŸ'Yšà1]|™?,àqr?™-ÒÛ æ÷p=ŸÝ¤‹t>£Ó&³'ßûšÎnF€$Á×F;ø„Q8±8Ù›ý|·½+¦Á\¬DN´dÙò¡T´óÒ­EƒºÆÙh^A‹P Û/ñ½8E¾†»÷ÐhõŒ¹Mœôq­ ¬†uHÞGãh³?îvÅ¥Vm“ 9³7©æ”‘ Í7k^`Tè&fû¼¾ˆk+V<·tæ1;9õÑáñ&ãè"f›Ã8ŠPÿ^Éä™ë˜˜ƒ9TñKÒŽÀ¾–¢e=ÒípCw¢Hz¸aN96f¢8F[]%n¿i ÙÛŸKNÿ ¡1×(f.8tfµŽÙ‘êƒÌ¿PK 9²u;(É¿Erw>META-INF/maven/org.apache.maven.its.shade.drp/a/pom.properties̱ Â0Ðý ÿpÐýH‚ :‰ˆƒ.úgs¶LÂ%ü{u¼á$I”›||ðÂ]’áÆ ¯¹£wèýè¶ãf‡‡ã½µ{]´Æœ&KÎÀ¢ù]ÎaʺžW¡×¡Ø*Õ•ƒPÐb€µÅ'ÏíGÙÀPK 9²u; íAMETA-INF/PK 8²u;ÍÚfe{¤'META-INF/MANIFEST.MFPK 9²u;íA¾META-INF/maven/PK 9²u;.íAëMETA-INF/maven/org.apache.maven.its.shade.drp/PK 9²u;0íA7META-INF/maven/org.apache.maven.its.shade.drp/a/PK 4²u;éZ´š¬7¤…META-INF/maven/org.apache.maven.its.shade.drp/a/pom.xmlPK 9²u;(É¿Erw>¤tMETA-INF/maven/org.apache.maven.its.shade.drp/a/pom.propertiesPKABmaven-shade-plugin-1.7.1/src/it/dep-reduced-pom/repo/org/apache/maven/its/shade/drp/a/0.1/a-0.1.pom0000664000175000017500000000225411302060357031415 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.drp a 0.1 jar maven-core-it file:///${basedir}/repo maven-shade-plugin-1.7.1/src/it/mini-jar-respect-includes/0000775000175000017500000000000012236137667022733 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/mini-jar-respect-includes/src/0000775000175000017500000000000012236137667023522 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/mini-jar-respect-includes/src/main/0000775000175000017500000000000012236137667024446 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/mini-jar-respect-includes/src/main/java/0000775000175000017500000000000012236137667025367 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/mini-jar-respect-includes/src/main/java/Main.java0000664000175000017500000000007311727616317027114 0ustar ebourgebourgpublic class Main extends junit.framework.TestCase { } maven-shade-plugin-1.7.1/src/it/mini-jar-respect-includes/invoker.properties0000664000175000017500000000003411727616317026521 0ustar ebourgebourginvoker.java.version = 1.5+ maven-shade-plugin-1.7.1/src/it/mini-jar-respect-includes/verify.bsh0000664000175000017500000000310511727627314024731 0ustar ebourgebourg/* * 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.*; import java.util.jar.*; String[] wanted = { "Main.class", "junit/framework/TestCase.class", "junit/swingui/icons/error.gif", "junit/awtui/TestRunner.class", "org/jdom/Document.class" }; String[] unwanted = { "junit/swingui/TestRunner.class", "junit/textui/TestRunner.class", "org/objectweb/asm/Type.class" }; JarFile jarFile = new JarFile( new File( basedir, "target/test-1.0.jar" ) ); for ( String path : wanted ) { if ( jarFile.getEntry( path ) == null ) { throw new IllegalStateException( "wanted path is missing: " + path ); } } for ( String path : unwanted ) { if ( jarFile.getEntry( path ) != null ) { throw new IllegalStateException( "unwanted path is present: " + path ); } } jarFile.close(); maven-shade-plugin-1.7.1/src/it/mini-jar-respect-includes/pom.xml0000664000175000017500000000624311727616317024253 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.mj test 1.0 jar MSHADE-111 Prevent minimizeJar from excluding classes that were specifically included with filters. junit junit 3.8.2 org.jdom jdom 1.1 asm asm 3.3.1 org.apache.maven.plugins maven-compiler-plugin 2.3.2 org.apache.maven.plugins maven-shade-plugin @project.version@ attach-shade package shade false true junit:junit junit/framework/** junit/awtui/** junit/runner/**/*.properties junit/runner/**/*.gif junit/swingui/icons/*.gif org.jdom:jdom ** maven-shade-plugin-1.7.1/src/it/filter-artifact-contents/0000775000175000017500000000000012236137667022671 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/filter-artifact-contents/verify.bsh0000664000175000017500000000320511727627314024670 0ustar ebourgebourg/* * 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.*; import java.util.jar.*; String[] wanted = { "a.properties", "org/apache/a.properties", "org/apache/maven/a.properties", "b.properties", "org/apache/maven/b.properties", }; String[] unwanted = { "META-INF/maven/org.apache.maven.its.shade.fac/a/pom.properties", "org/a.properties", "org/b.properties", "org/apache/b.properties", "org/apache/maven/b/b.properties", }; JarFile jarFile = new JarFile( new File( basedir, "target/test-1.0.jar" ) ); for ( String path : wanted ) { if ( jarFile.getEntry( path ) == null ) { throw new IllegalStateException( "wanted path is missing: " + path ); } } for ( String path : unwanted ) { if ( jarFile.getEntry( path ) != null ) { throw new IllegalStateException( "unwanted path is present: " + path ); } } jarFile.close(); maven-shade-plugin-1.7.1/src/it/filter-artifact-contents/pom.xml0000664000175000017500000000615411316637144024205 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.fac test 1.0 jar MSHADE-68 Test that artifact contents can be filtered using glob includes/excludes. shade-it file:///${basedir}/repo ignore false org.apache.maven.its.shade.fac a 0.1 org.apache.maven.its.shade.fac b 0.1 client org.apache.maven.plugins maven-shade-plugin @project.version@ attach-shade package shade false org.apache.maven.its.shade.fac:a **/a.properties org.apache.maven.its.shade.fac:b:client org/apache/* org/apache/maven/b/ *:* org/* maven-shade-plugin-1.7.1/src/it/filter-artifact-contents/repo/0000775000175000017500000000000012236137667023636 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/filter-artifact-contents/repo/org/0000775000175000017500000000000012236137667024425 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/filter-artifact-contents/repo/org/apache/0000775000175000017500000000000012236137667025646 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/filter-artifact-contents/repo/org/apache/maven/0000775000175000017500000000000012236137667026754 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/filter-artifact-contents/repo/org/apache/maven/its/0000775000175000017500000000000012236137667027553 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/filter-artifact-contents/repo/org/apache/maven/its/shade/0000775000175000017500000000000012236137667030637 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/filter-artifact-contents/repo/org/apache/maven/its/shade/fac/0000775000175000017500000000000012236137667031370 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/filter-artifact-contents/repo/org/apache/maven/its/shade/fac/b/0000775000175000017500000000000012236137667031611 5ustar ebourgebourg././@LongLink0000644000000000000000000000016212236137670011650 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/filter-artifact-contents/repo/org/apache/maven/its/shade/fac/b/maven-metadata.xmlmaven-shade-plugin-1.7.1/src/it/filter-artifact-contents/repo/org/apache/maven/its/shade/fac/b/maven0000664000175000017500000000046111316465154032634 0ustar ebourgebourg org.apache.maven.its.shade.fac b 0.1 0.1 20091229194207 maven-shade-plugin-1.7.1/src/it/filter-artifact-contents/repo/org/apache/maven/its/shade/fac/b/0.1/0000775000175000017500000000000012236137667032107 5ustar ebourgebourg././@LongLink0000644000000000000000000000015512236137670011652 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/filter-artifact-contents/repo/org/apache/maven/its/shade/fac/b/0.1/b-0.1.pommaven-shade-plugin-1.7.1/src/it/filter-artifact-contents/repo/org/apache/maven/its/shade/fac/b/0.1/b0000664000175000017500000000225411316465154032247 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.fac b 0.1 jar maven-core-it file:///${basedir}/repo ././@LongLink0000644000000000000000000000016412236137670011652 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/filter-artifact-contents/repo/org/apache/maven/its/shade/fac/b/0.1/b-0.1-client.jarmaven-shade-plugin-1.7.1/src/it/filter-artifact-contents/repo/org/apache/maven/its/shade/fac/b/0.1/b0000664000175000017500000000566411316637144032257 0ustar ebourgebourgPK cž; META-INF/þÊPKPK cž;META-INF/MANIFEST.MFóMÌËLK-.Ñ K-*ÎÌϳR0Ô3àår.JM,IMÑuª ˜éĘ+h—æ)øf&åW—¤æ+xæ%ëiòrñrPK”[ØGGPK D¥; b.propertiesPK ùbž;META-INF/maven/PK ùbž;.META-INF/maven/org.apache.maven.its.shade.fac/PK ùbž;0META-INF/maven/org.apache.maven.its.shade.fac/b/PKD¥;>META-INF/maven/org.apache.maven.its.shade.fac/b/pom.propertiesŒA Â0ïýÃBïK ‚´Ð“ŠxðÖl“µÍÁ¤lÒ‚¿7Þf`˜î!I”«œ¿øâC˜nÚoâÑõèìpvƒ½àõ>5±=˜C´ÄœFK'0‹æ}{†1ëB¼±_…>ÿ ÅZ¨¬„ÞìÁ°ÖØ ¶tóPKÁåyrwPK(¥;7META-INF/maven/org.apache.maven.its.shade.fac/b/pom.xmluT[o›0~Gâ?œ¡=´RÀé´‡i£TYÛhh]"•tU8!nÁf¶ ¦ý÷rÙ¦=!ûܾË1ñÕk]ÁµJ^Ñ8”¹*„,/ƒ‡Å4ü\%¾ç{ñ›0ô½;‘£4X€U`ד†çôÉÔÊv\#LU+ n©œM²é9Ð5(‰¾§4ÔŠrr%­ËÖÒEµë¼Ôˆ5Jk"€ ±o>›/Òë[X‰Šª avU4¼vMÂ@§ô ¬¨/ áÆò „¤‹ºá{K®Ûlµ(×T'‰ðZ44káHdÓ=³k»I·ª(œ°DÁ÷nð.Ã%ø^0Ä‚óO}mÍ· •…Öà±3àkŽ% ªn*ÁeNµ«CB÷4´PKË)›÷$@­NÓ€[çÀÚÚæ#c]×E¼)]²=1vGZβÛÀºüY¡1 ñG+4iºÜoKΗ„°â8U-½Ù4½Ó¤°,G¾gövŸšr”iŒèž&Pœ &¤YŸ'Yšà1]|™?,àqr?™-ÒÛ æ÷p=ŸÝ¤‹t>£Ó&³'ßûšÎnF€$Á×F;ø„Q8±8Ù›ý|·½+¦Á\¬DN´dÙò¡T´óÒ­EƒºÆÙh^A‹P Û/ñ½8E¾†»÷ÐhõŒ¹Mœôq­ ¬†uHÞGãh³?îvÅ¥Vm“ 9³7©æ”‘ Í7k^`´âyÌöy}×VЭ¥ó2f'§>:<Þd]ÄlsGêÿÂK"™·META-INF/maven/org.apache.maven.its.shade.fac/b/pom.propertiesPK(¥;ª+ ™¬7•META-INF/maven/org.apache.maven.its.shade.fac/b/pom.xmlPK ùbž;“org/PK ùbž; µorg/apache/PK D¥;Þorg/apache/b.propertiesPK cž;org/apache/maven/PK cž;Borg/apache/maven/b/PK D¥;sorg/apache/maven/b/b.propertiesPK D¥;°org/apache/maven/b.propertiesPK D¥;ëorg/b.propertiesPK…maven-shade-plugin-1.7.1/src/it/filter-artifact-contents/repo/org/apache/maven/its/shade/fac/a/0000775000175000017500000000000012236137667031610 5ustar ebourgebourg././@LongLink0000644000000000000000000000016212236137670011650 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/filter-artifact-contents/repo/org/apache/maven/its/shade/fac/a/maven-metadata.xmlmaven-shade-plugin-1.7.1/src/it/filter-artifact-contents/repo/org/apache/maven/its/shade/fac/a/maven0000664000175000017500000000046111316465154032633 0ustar ebourgebourg org.apache.maven.its.shade.fac a 0.1 0.1 20091229194048 maven-shade-plugin-1.7.1/src/it/filter-artifact-contents/repo/org/apache/maven/its/shade/fac/a/0.1/0000775000175000017500000000000012236137667032106 5ustar ebourgebourg././@LongLink0000644000000000000000000000015512236137670011652 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/filter-artifact-contents/repo/org/apache/maven/its/shade/fac/a/0.1/a-0.1.jarmaven-shade-plugin-1.7.1/src/it/filter-artifact-contents/repo/org/apache/maven/its/shade/fac/a/0.1/a0000664000175000017500000000522411316465154032245 0ustar ebourgebourgPK ¥; META-INF/PK ¥;ÍÚfe{META-INF/MANIFEST.MFóMÌËLK-.Ñ K-*ÎÌϳR0Ô3àår,JÎÈ,K-Bä¤V”+À$x¹œ‹RKRSt*­ “3R|ËRóx¹œJ3sJÀâN®N®~Š®WJ6Èp3=ƒxs^.^.PK ¥;org/PK ¥; org/apache/PK ¥;org/apache/maven/PK ¥; a.propertiesPK ¥;org/a.propertiesPK ¥;org/apache/a.propertiesPK ¥;org/apache/maven/a.propertiesPK ¥;META-INF/maven/PK ¥;.META-INF/maven/org.apache.maven.its.shade.fac/PK ¥;0META-INF/maven/org.apache.maven.its.shade.fac/a/PK ¥;˜!$™¬7META-INF/maven/org.apache.maven.its.shade.fac/a/pom.xmluT[o›0~Gâ?œ¡=´RÀé´‡i£TYÛhh]"•tU8!nÁf¶ ¦ý÷rÙ¦=!ûܾË1ñÕk]ÁµJ^Ñ8”¹*„,/ƒ‡Å4ü\%¾ç{ñ›0ô½;‘£4X€U`ד†çôÉÔÊv\#LU+ n©œM²é9Ð5(‰¾§4ÔŠrr%­ËÖÒEµë¼Ôˆ5Jk"€ ±o>›/Òë[X‰Šª avU4¼vMÂ@§ô ¬¨/ áÆò „¤‹ºá{K®Ûlµ(×T'‰ðZ44káHdÓ=³k»I·ª(œ°DÁ÷nð.Ã%ø^0Ä‚óO}mÍ· •…Öà±3àkŽ% ªn*ÁeNµ«CB÷4´PKË)›÷$@­NÓ€[çÀÚÚæ#c]×E¼)]²=1vGZβÛÀºüY¡1 ñG+4iºÜoKΗ„°â8U-½Ù4½Ó¤°,G¾gövŸšr”iŒèž&Pœ &¤YŸ'Yšà1]|™?,àqr?™-ÒÛ æ÷p=ŸÝ¤‹t>£Ó&³'ßûšÎnF€$Á×F;ø„Q8±8Ù›ý|·½+¦Á\¬DN´dÙò¡T´óÒ­EƒºÆÙh^A‹P Û/ñ½8E¾†»÷ÐhõŒ¹Mœôq­ ¬†uHÞGãh³?îvÅ¥Vm“ 9³7©æ”‘ Í7k^`´âyÌöy}×VЭ¥3ÙÉ©7G1ÛÆQ„ú¿ð’H&Ï\ÇìxÀÌ¡Šo\’.îöµÕØ(#è‘n‡ºEÒà szÈ¡°1Å1Úê*qûMKÈÞþ\rúOý‹¹F1sÁ¡3û«uÌþ‹„Pdþ PK ¥;º Ô/rw>META-INF/maven/org.apache.maven.its.shade.fac/a/pom.propertiesSvOÍK-J,IMQHªTðM,KÍãåR)MUpIMV0²T02°2" g× ÇÀ’—«,µ¨83?ÏÖ@Ï—+½(¿´À3Å6¿(]/± 19#U/dŠ^fI±^qFbJª^Zb2/WbQI&QTšÈËPK ¥; íAMETA-INF/PK ¥;ÍÚfe{¤'META-INF/MANIFEST.MFPK ¥;íA¾org/PK ¥; íAàorg/apache/PK ¥;íA org/apache/maven/PK ¥; ¤8a.propertiesPK ¥;¤dorg/a.propertiesPK ¥;¤”org/apache/a.propertiesPK ¥;¤Ëorg/apache/maven/a.propertiesPK ¥;íAMETA-INF/maven/PK ¥;.íA5META-INF/maven/org.apache.maven.its.shade.fac/PK ¥;0íAMETA-INF/maven/org.apache.maven.its.shade.fac/a/PK ¥;˜!$™¬7¤ÏMETA-INF/maven/org.apache.maven.its.shade.fac/a/pom.xmlPK ¥;º Ô/rw>¤½META-INF/maven/org.apache.maven.its.shade.fac/a/pom.propertiesPKó‹././@LongLink0000644000000000000000000000015512236137670011652 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/filter-artifact-contents/repo/org/apache/maven/its/shade/fac/a/0.1/a-0.1.pommaven-shade-plugin-1.7.1/src/it/filter-artifact-contents/repo/org/apache/maven/its/shade/fac/a/0.1/a0000664000175000017500000000225411316465154032245 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.fac a 0.1 jar maven-core-it file:///${basedir}/repo maven-shade-plugin-1.7.1/src/it/mshade-123/0000775000175000017500000000000012236137667017522 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/mshade-123/assembly.xml0000664000175000017500000000050011772570203022045 0ustar ebourgebourg zip zip true sample.txt / maven-shade-plugin-1.7.1/src/it/mshade-123/sample.txt0000664000175000017500000000001311772570203021525 0ustar ebourgebourgSAMPLE FILEmaven-shade-plugin-1.7.1/src/it/mshade-123/pom.xml0000664000175000017500000000714111772570203021031 0ustar ebourgebourg test 4.0.0 org.test test 0.0.1-SNAPSHOT jar org.sonatype.oss oss-parent 7 commons-lang commons-lang 2.6 compile org.apache.maven.plugins maven-compiler-plugin 2.3.2 1.6 1.6 org.apache.maven.plugins maven-source-plugin 2.1.2 attach-sources jar org.apache.maven.plugins maven-shade-plugin @project.version@ package shade true commons-lang:commons-lang com.apache.commons.lang org.test.common.lang maven-assembly-plugin 2.3 false ${project.build.directory}/releases/ ${basedir}/assembly.xml package single maven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/0000775000175000017500000000000012236137667023133 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/system.jar0000664000175000017500000000070711322460250025137 0ustar ebourgebourgPK/¿*< META-INF/þÊPKPK/¿*<META-INF/MANIFEST.MFóMÌËLK-.Ñ K-*ÎÌϳR0Ô3àår.JM,IMÑuª ˜éĘ+h—æ)øf&åW—¤æ+xæ%ëiòrñrPK”[ØGGPK (¿*<system.propertiesPK/¿*< META-INF/þÊPK/¿*<”[ØGG=META-INF/MANIFEST.MFPK (¿*<Æsystem.propertiesPK¼õmaven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/verify.bsh0000664000175000017500000000266511727627314025143 0ustar ebourgebourg/* * 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.*; import java.util.jar.*; String[] wanted = { "compile.properties", "runtime.properties", }; String[] unwanted = { "system.properties", "provided.properties", "test.properties", }; JarFile jarFile = new JarFile( new File( basedir, "target/it-1.0.jar" ) ); for ( String path : wanted ) { if ( jarFile.getEntry( path ) == null ) { throw new IllegalStateException( "wanted path is missing: " + path ); } } for ( String path : unwanted ) { if ( jarFile.getEntry( path ) != null ) { throw new IllegalStateException( "unwanted path is present: " + path ); } } jarFile.close(); maven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/pom.xml0000664000175000017500000000574411322460250024440 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.nrse it 1.0 jar MSHADE Test that dependencies not matching runtime scope are automatically excluded. shade-it file:///${basedir}/repo ignore false org.apache.maven.its.shade.nrse system 1.0 system ${basedir}/system.jar org.apache.maven.its.shade.nrse provided 1.0 provided org.apache.maven.its.shade.nrse compile 1.0 compile org.apache.maven.its.shade.nrse runtime 1.0 runtime org.apache.maven.its.shade.nrse test 1.0 test org.apache.maven.plugins maven-shade-plugin @project.version@ attach-shade package shade false maven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/repo/0000775000175000017500000000000012236137667024100 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/repo/org/0000775000175000017500000000000012236137667024667 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/repo/org/apache/0000775000175000017500000000000012236137667026110 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/repo/org/apache/maven/0000775000175000017500000000000012236137667027216 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/repo/org/apache/maven/its/0000775000175000017500000000000012236137667030015 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/repo/org/apache/maven/its/shade/0000775000175000017500000000000012236137667031101 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/repo/org/apache/maven/its/shade/nrse/0000775000175000017500000000000012236137667032050 5ustar ebourgebourg././@LongLink0000644000000000000000000000015112236137670011646 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/repo/org/apache/maven/its/shade/nrse/compile/maven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/repo/org/apache/maven/its/shade/nrse/comp0000775000175000017500000000000012236137667032727 5ustar ebourgebourg././@LongLink0000644000000000000000000000017312236137670011652 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/repo/org/apache/maven/its/shade/nrse/compile/maven-metadata.xmlmaven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/repo/org/apache/maven/its/shade/nrse/comp0000664000175000017500000000047011322460250032710 0ustar ebourgebourg org.apache.maven.its.shade.nrse compile 1.0 1.0 20100110230146 ././@LongLink0000644000000000000000000000015512236137670011652 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/repo/org/apache/maven/its/shade/nrse/compile/1.0/maven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/repo/org/apache/maven/its/shade/nrse/comp0000775000175000017500000000000012236137667032727 5ustar ebourgebourg././@LongLink0000644000000000000000000000017412236137670011653 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/repo/org/apache/maven/its/shade/nrse/compile/1.0/compile-1.0.jarmaven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/repo/org/apache/maven/its/shade/nrse/comp0000664000175000017500000000421311322460250032707 0ustar ebourgebourgPK 8+< META-INF/PK 7+<ÍÚfe{META-INF/MANIFEST.MFóMÌËLK-.Ñ K-*ÎÌϳR0Ô3àår,JÎÈ,K-Bä¤V”+À$x¹œ‹RKRSt*­ “3R|ËRóx¹œJ3sJÀâN®N®~Š®WJ6Èp3=ƒxs^.^.PK 7+<compile.propertiesPK 8+<META-INF/maven/PK 8+</META-INF/maven/org.apache.maven.its.shade.nrse/PK 8+<7META-INF/maven/org.apache.maven.its.shade.nrse/compile/PK ,+META-INF/maven/org.apache.maven.its.shade.nrse/compile/pom.xmluTÁn›@½#ñSÔC#pªª–ÑÄVP[ N£×0Æ›À.Ý]B¬ªÿÞY ±Óª'´³³óÞ¼yCtþRWðŒJs)μÓ`êŠ\\”gÞÝjîöÎc×qèï»Î5ÏQh,ÀH0[„¤a9}2¹1SsÙŠ‚*’l~tDR ëHµ¤œ\ £øº5¨öõ€• ±Fat!öÅËUz1ƒ ¯èuÁõþwÜl)ƒkè¤z‚ bEÁ-,«€ Ô= ×QX2e»!Øf§x¹5 ;A oyCX+ÛD6‰è}Ù=$õ¸“íÐÂQ·ƒø±× >Sø@ ®ã wÞÉ×þmÍv ¤Vã¡2àKŽ!¢Dªn*ÎDNo‡®^뻇¡„\FÙ¬oäæ8 ˜±óØÓ| îëÖ ¤*ñ±ðš´\d3ŸÈÚü;Q¡Ö ðgËiºÞkˆKÎÖİbXUíXúaz§HaQN\Gã>ÊA¦‘µ{œ@B1šˆ—df|K²4›À}ººZÞ­à>¹½M«t–Áò.–‹Ët•.tšC²xpïéârH" ¾4ÊÒ'ŽÜ*ˆÅ‘oF|ë‹~*ºÁœoxNm‰²e%B)ÉóÂÚ¢AUsmǨ‰^AF¨¹éÍ£]矞×ñýý>4J>bnb+}TË«Áñ§`L£ðMl?¢¨T²mÒ"¦ÉŒCªÙ3Š€“óõ–¥1 ÇÄþS†oXnèl CŠÂ£XŸ3ìp|j¡Ÿ_Qé†`žXI½ÆLEáá8p¬Æø&»J.gQØúp:W¼1cÚÔ†Ä` l¤9§±þ¦uË·VNÕ ÃkMN%k’G-ºÝÆœUÕÎZ¿j W¾Ù㎖¡Ø 4-û_(D ©9ý:vC„b¼ˆ{ýœ~/>7QÈ‹Ãm«ªØn­FøþךÑß‹«ß¡-…ör¨þUšÈý ‰ø:ü?PK 8+¤¿META-INF/maven/org.apache.maven.its.shade.nrse/compile/pom.xmlPK 8+ 4.0.0 org.apache.maven.its.shade.nrse compile 1.0 jar MSHADE Test that dependencies not matching runtime scope are automatically excluded. maven-core-it file:///${basedir}/repo ././@LongLink0000644000000000000000000000015112236137670011646 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/repo/org/apache/maven/its/shade/nrse/runtime/maven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/repo/org/apache/maven/its/shade/nrse/runt0000775000175000017500000000000012236137667032761 5ustar ebourgebourg././@LongLink0000644000000000000000000000017312236137670011652 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/repo/org/apache/maven/its/shade/nrse/runtime/maven-metadata.xmlmaven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/repo/org/apache/maven/its/shade/nrse/runt0000664000175000017500000000047011322460250032742 0ustar ebourgebourg org.apache.maven.its.shade.nrse runtime 1.0 1.0 20100110230222 ././@LongLink0000644000000000000000000000015512236137670011652 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/repo/org/apache/maven/its/shade/nrse/runtime/1.0/maven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/repo/org/apache/maven/its/shade/nrse/runt0000775000175000017500000000000012236137667032761 5ustar ebourgebourg././@LongLink0000644000000000000000000000017412236137670011653 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/repo/org/apache/maven/its/shade/nrse/runtime/1.0/runtime-1.0.pommaven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/repo/org/apache/maven/its/shade/nrse/runt0000664000175000017500000000250211322460250032740 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.nrse runtime 1.0 jar MSHADE Test that dependencies not matching runtime scope are automatically excluded. maven-core-it file:///${basedir}/repo ././@LongLink0000644000000000000000000000017412236137670011653 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/repo/org/apache/maven/its/shade/nrse/runtime/1.0/runtime-1.0.jarmaven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/repo/org/apache/maven/its/shade/nrse/runt0000664000175000017500000000420711322460250032744 0ustar ebourgebourgPK L+< META-INF/PK K+<ÍÚfe{META-INF/MANIFEST.MFóMÌËLK-.Ñ K-*ÎÌϳR0Ô3àår,JÎÈ,K-Bä¤V”+À$x¹œ‹RKRSt*­ “3R|ËRóx¹œJ3sJÀâN®N®~Š®WJ6Èp3=ƒxs^.^.PK K+<runtime.propertiesPK L+<META-INF/maven/PK L+</META-INF/maven/org.apache.maven.its.shade.nrse/PK L+<7META-INF/maven/org.apache.maven.its.shade.nrse/runtime/PK G+META-INF/maven/org.apache.maven.its.shade.nrse/runtime/pom.xmluTÁn›@½#ñSÔC#pªª–ÑÄVP[ N£×0Æ›À.Ý]B¬ªÿÞY ±Óª'´³³óÞ¼yCtþRWðŒJs)μÓ`êŠ\\”gÞÝjîöÎc×qèï»Î5ÏQh,ÀH0[„¤a9}2¹1SsÙŠ‚*’l~tDR ëHµ¤œ\ £øº5¨öõ€• ±Fat!öÅËUz1ƒ ¯èuÁõþwÜl)ƒkè¤z‚ bEÁ-,«€ Ô= ×QX2e»!Øf§x¹5 ;A oyCX+ÛD6‰è}Ù=$õ¸“íÐÂQ·ƒø±× >Sø@ ®ã wÞÉ×þmÍv ¤Vã¡2àKŽ!¢Dªn*ÎDNo‡®^뻇¡„\FÙ¬oäæ8 ˜±óØÓ| îëÖ ¤*ñ±ðš´\d3ŸÈÚü;Q¡Ö ðgËiºÞkˆKÎÖİbXUíXúaz§HaQN\Gã>ÊA¦‘µ{œ@B1šˆ—df|K²4›À}ººZÞ­à>¹½M«t–Áò.–‹Ët•.tšC²xpïéârH" ¾4ÊÒ'ŽÜ*ˆÅ‘oF|ë‹~*ºÁœoxNm‰²e%B)ÉóÂÚ¢AUsmǨ‰^AF¨¹éÍ£]矞×ñýý>4J>bnb+}TË«Áñ§`L£ðMl?¢¨T²mÒ"¦ÉŒCªÙ3Š€“óõ–¥1 ÇÄþS†oXnè¬ZaxM G±>gØáøÔB?¿¢Ò Á<±’z™ŠÂÃqà$XñMv•\΢°?ôáu®xcÆ:´+¨ ‰Á Ø I#rNcýMë–o­œ?ÐäT²&y„Ñ¢ÛmÌYUí¬õ«¶ qõá[=îhŠÝ0AÓ²ÿ…B¤°‘šÓ¯c7D(Æ‹¸ÑÏé÷âs…¼8ܶªŠíÖÑj„ï­ý½¸úÚBQh/‡Êá_¥‰Üÿ˜ˆ¯ÃÿPK L+<^1ªs~EMETA-INF/maven/org.apache.maven.its.shade.nrse/runtime/pom.propertiesŒA ƒ0ïüaÁû’ä(x’RZðæ¶fÕÜÈ& ý}Óã ÃtOVªáó…‰nkº) ¼IÀ{p®w¡ÆÇ ÁygÍÍZR–ÁcƒMóu¾âuC:iÙÿS-XvŠŒ¢…­!­i¥¥¶V/©éhîPK L+< íAMETA-INF/PK K+<ÍÚfe{¤'META-INF/MANIFEST.MFPK K+<¤¾runtime.propertiesPK L+<íAðMETA-INF/maven/PK L+</íAMETA-INF/maven/org.apache.maven.its.shade.nrse/PK L+<7íAjMETA-INF/maven/org.apache.maven.its.shade.nrse/runtime/PK G+¤¿META-INF/maven/org.apache.maven.its.shade.nrse/runtime/pom.xmlPK L+<^1ªs~E¤META-INF/maven/org.apache.maven.its.shade.nrse/runtime/pom.propertiesPK—Ú././@LongLink0000644000000000000000000000015212236137670011647 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/repo/org/apache/maven/its/shade/nrse/provided/maven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/repo/org/apache/maven/its/shade/nrse/prov0000775000175000017500000000000012236137667032757 5ustar ebourgebourg././@LongLink0000644000000000000000000000017412236137670011653 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/repo/org/apache/maven/its/shade/nrse/provided/maven-metadata.xmlmaven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/repo/org/apache/maven/its/shade/nrse/prov0000664000175000017500000000047111322460250032741 0ustar ebourgebourg org.apache.maven.its.shade.nrse provided 1.0 1.0 20100110230646 ././@LongLink0000644000000000000000000000015612236137670011653 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/repo/org/apache/maven/its/shade/nrse/provided/1.0/maven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/repo/org/apache/maven/its/shade/nrse/prov0000775000175000017500000000000012236137667032757 5ustar ebourgebourg././@LongLink0000644000000000000000000000017612236137670011655 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/repo/org/apache/maven/its/shade/nrse/provided/1.0/provided-1.0.pommaven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/repo/org/apache/maven/its/shade/nrse/prov0000664000175000017500000000250311322460250032737 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.nrse provided 1.0 jar MSHADE Test that dependencies not matching runtime scope are automatically excluded. maven-core-it file:///${basedir}/repo ././@LongLink0000644000000000000000000000017612236137670011655 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/repo/org/apache/maven/its/shade/nrse/provided/1.0/provided-1.0.jarmaven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/repo/org/apache/maven/its/shade/nrse/prov0000664000175000017500000000422611322460250032743 0ustar ebourgebourgPK Ø+< META-INF/PK ×+<ÍÚfe{META-INF/MANIFEST.MFóMÌËLK-.Ñ K-*ÎÌϳR0Ô3àår,JÎÈ,K-Bä¤V”+À$x¹œ‹RKRSt*­ “3R|ËRóx¹œJ3sJÀâN®N®~Š®WJ6Èp3=ƒxs^.^.PK ×+<provided.propertiesPK Ø+<META-INF/maven/PK Ø+</META-INF/maven/org.apache.maven.its.shade.nrse/PK Ø+<8META-INF/maven/org.apache.maven.its.shade.nrse/provided/PK Ñ+ org.apache.maven.its.shade.nrse test 1.0 1.0 20100110230209 ././@LongLink0000644000000000000000000000015212236137670011647 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/repo/org/apache/maven/its/shade/nrse/test/1.0/maven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/repo/org/apache/maven/its/shade/nrse/test0000775000175000017500000000000012236137667032750 5ustar ebourgebourg././@LongLink0000644000000000000000000000016612236137670011654 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/repo/org/apache/maven/its/shade/nrse/test/1.0/test-1.0.pommaven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/repo/org/apache/maven/its/shade/nrse/test0000664000175000017500000000247711322460250032742 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.nrse test 1.0 jar MSHADE Test that dependencies not matching runtime scope are automatically excluded. maven-core-it file:///${basedir}/repo ././@LongLink0000644000000000000000000000016612236137670011654 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/repo/org/apache/maven/its/shade/nrse/test/1.0/test-1.0.jarmaven-shade-plugin-1.7.1/src/it/non-runtime-scope-excluded/repo/org/apache/maven/its/shade/nrse/test0000664000175000017500000000415711322460250032737 0ustar ebourgebourgPK E+< META-INF/PK D+<ÍÚfe{META-INF/MANIFEST.MFóMÌËLK-.Ñ K-*ÎÌϳR0Ô3àår,JÎÈ,K-Bä¤V”+À$x¹œ‹RKRSt*­ “3R|ËRóx¹œJ3sJÀâN®N®~Š®WJ6Èp3=ƒxs^.^.PK E+<test.propertiesPK E+<META-INF/maven/PK E+</META-INF/maven/org.apache.maven.its.shade.nrse/PK E+<4META-INF/maven/org.apache.maven.its.shade.nrse/test/PK B+<‹Áué?;META-INF/maven/org.apache.maven.its.shade.nrse/test/pom.xmluTÁŽÓ0½GÊ? ¶É‚8 A…ÝŠˆ¥•6]G7™¦†Ä¶³Ù ñï<§ÉnqŠ<Ï{óæM’·wMM·l¬ÔêÍìYt>#V….¥ªÞÌn6ËùËÙÛ4  y4Ÿ‡Á•,XY.Éir{¦E+ |r½s½0LKÝ©R8£'‹|ù”pdCZqhCFN¡•3rÛ9êc=•anX9åÌCñÕz“½¿¤¬ñº”öø à½t{dHK½6ßi‡B¢,¥‡5I…@3Õ0¾À¶#«½#Ý+4¼—-°6¾‰|9±Ç²GHôxÐÝØÂI·£gôù¨=Îé Â`6ÞÍž¾Þ6â@J;ê,?T&¾+¸u RM[K¡ ¼»º¯v_Çzë²ÅÐéÝi ççC´w®}Ç}ßGb iSÅScñ´\å—sõù7ªfkÉðNhº=hÁ¥[0¬EO^U?–aØ@ï VÕYØiܧCyi"†vO ”ÀDf‹œ²|Fïy–ŸÑ—lóa}³¡/‹ëëÅj“]æ´¾¦÷ëÕE¶ÉÖ+œ–´X} ƒÙêâŒ"†ïZã郣ô ryâ› ßûb˜Šm¹;Y -Uu¢bª4<¯¼-Z6´~ŒôJ¡‘n0 ƒzŠÂ`>?îCkô7.\ê¥O]r=Ú!}GçIüGì8¢¤2ºk³2Åd¦!5â–U$á|»%GÊXNâ)qx%Œ“;Q8œ[—Ä'!a\àô™Ç½½‡Ä 0¾‹ ¦ß„Iâ‡ãHH‰†ÓOù‡ÅÅe‡!\²-ŒlÝT‹`(!•Ü2tQ…ĺxsc׊½×ÒtÊɆɦð% "°å~ Q×ïûº+1«#þäˆ;ù±OBaTþ§0RH ·ÚJü7c1Y¦ƒ‚óÿ–¹„8²|¸íLú•Ã^Än~]ÒüŠ}¡$ö—cåø¯Ò ÷?&ñ~ò¿PK E+< maven-shade-plugin-1.7.1/src/it/finalNameShade-attached/verify.bsh0000664000175000017500000000456511727627314024401 0ustar ebourgebourg/* * 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.*; import java.util.*; import java.util.regex.*; try { // check for primary artifact, which is the unshaded one! File file = new File( basedir, "target/finalNameShadeAttached-1.0.jar" ); System.out.println( "file with finalName : " + file ); if ( !file.exists() ) { System.out.println( "file with finalName does not exist: " + file ); return false; } // check for the shaded jar File shaded = new File( basedir, "target/MyFinalShadeName.jar" ); System.out.println( "shaded file with name : " + shaded ); if ( !shaded.exists() ) { System.out.println( "shaded file does not exist: " + shaded ); return false; } // check for the artifact in the repo File rfile = new File( localRepositoryPath , "org/apache/maven/its/shade/fnsa/finalNameShadeAttached/1.0/finalNameShadeAttached-1.0.jar" ); System.out.println( "Checking for existence in repo: " + rfile ); if ( !rfile.isFile() ) { throw new FileNotFoundException( "Missing: " + rfile.getAbsolutePath() ); } // check for the shaded artifact in the repo File afile = new File( localRepositoryPath , "org/apache/maven/its/shade/fnsa/finalNameShadeAttached/1.0/finalNameShadeAttached-1.0-shaded.jar" ); System.out.println( "Checking for existence in repo: " + afile ); if ( !afile.isFile() ) { throw new FileNotFoundException( "Missing: " + afile.getAbsolutePath() ); } } catch( Throwable t ) { t.printStackTrace(); return false; } return true; maven-shade-plugin-1.7.1/src/it/finalNameShade-attached/pom.xml0000664000175000017500000000425511251463631023700 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.fnsa finalNameShadeAttached 1.0 MSHADE-54 :: Shaded Artifact Producer Test that attached artifact has the correct finalName if the finalName is set in the shade plugin section and artifact attaching is activated. org.apache.maven.plugins maven-shade-plugin @project.version@ attach-shaded-artifact package shade MyFinalShadeName true shaded false maven-shade-plugin-1.7.1/src/it/finalNameShade-attached/setup.bsh0000664000175000017500000000203711727627314024225 0ustar ebourgebourg/* * 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.*; import java.util.*; import org.codehaus.plexus.util.*; File file = new File( localRepositoryPath, "org/apache/maven/its/shade/fnsa" ); System.out.println( "Deleting " + file ); FileUtils.deleteDirectory( file ); return true; maven-shade-plugin-1.7.1/src/it/finalNameBuild/0000775000175000017500000000000012236137667020630 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/finalNameBuild/src/0000775000175000017500000000000012236137667021417 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/finalNameBuild/src/main/0000775000175000017500000000000012236137667022343 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/finalNameBuild/src/main/resources/0000775000175000017500000000000012236137667024355 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/finalNameBuild/src/main/resources/META-INF/0000775000175000017500000000000012236137667025515 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/finalNameBuild/src/main/resources/META-INF/ejb-jar.xml0000664000175000017500000000004711251463631027537 0ustar ebourgebourg maven-shade-plugin-1.7.1/src/it/finalNameBuild/verify.bsh0000664000175000017500000000375511727627314022641 0ustar ebourgebourg/* * 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.*; import java.util.*; import java.util.regex.*; try { // check for primary artifact, which is actually the shaded one! File file = new File( basedir, "target/MyFinalName.jar" ); System.out.println( "file with finalName : " + file ); if ( !file.exists() ) { System.out.println( "file with finalName does not exist: " + file ); return false; } // check for original unshaded jar File original = new File( basedir, "target/original-MyFinalName.jar" ); System.out.println( "'orifinal' file with name : " + original ); if ( !original.exists() ) { System.out.println( "'original' file does not exist: " + original ); return false; } // check for the artifact in the repo. This is the shaded one! File rfile = new File( localRepositoryPath , "org/apache/maven/its/shade/fnb/finalNameBuild/1.0/finalNameBuild-1.0.jar" ); System.out.println( "Checking for existence in repo: " + rfile ); if ( !rfile.isFile() ) { throw new FileNotFoundException( "Missing: " + rfile.getAbsolutePath() ); } } catch( Throwable t ) { t.printStackTrace(); return false; } return true; maven-shade-plugin-1.7.1/src/it/finalNameBuild/pom.xml0000664000175000017500000000411611251463631022134 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.fnb finalNameBuild 1.0 MSHADE-54 :: Shaded Artifact Producer Test that attached artifact has the correct finalName if the finalName is set in the build section and artifact attaching is NOT activated. MyFinalName org.apache.maven.plugins maven-shade-plugin @project.version@ create-shaded-artifact package shade shaded false maven-shade-plugin-1.7.1/src/it/finalNameBuild/setup.bsh0000664000175000017500000000203611727627314022464 0ustar ebourgebourg/* * 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.*; import java.util.*; import org.codehaus.plexus.util.*; File file = new File( localRepositoryPath, "org/apache/maven/its/shade/fnb" ); System.out.println( "Deleting " + file ); FileUtils.deleteDirectory( file ); return true; maven-shade-plugin-1.7.1/src/it/duplicate-classes-with-reloc/0000775000175000017500000000000012236137667023436 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/duplicate-classes-with-reloc/pom.xml0000664000175000017500000000723611131476146024752 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.dcwr test 1.0 jar MSHADE-30 Test that duplicate classes/resources on the class path are gracefully handled. org.apache.maven.its.shade.dcwr a 0.1 org.apache.maven.its.shade.dcwr b 0.1 shade-it file:///${basedir}/repo ignore false org.apache.maven.plugins maven-compiler-plugin 2.0.2 org.apache.maven.plugins maven-jar-plugin 2.1 org.apache.maven.plugins maven-resources-plugin 2.2 org.apache.maven.plugins maven-shade-plugin @project.version@ shade package shade false org.apache hidden org.apache.maven.plugins maven-surefire-plugin 2.3.1 maven-shade-plugin-1.7.1/src/it/duplicate-classes-with-reloc/repo/0000775000175000017500000000000012236137667024403 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/duplicate-classes-with-reloc/repo/org/0000775000175000017500000000000012236137667025172 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/duplicate-classes-with-reloc/repo/org/apache/0000775000175000017500000000000012236137667026413 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/duplicate-classes-with-reloc/repo/org/apache/maven/0000775000175000017500000000000012236137667027521 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/duplicate-classes-with-reloc/repo/org/apache/maven/its/0000775000175000017500000000000012236137667030320 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/duplicate-classes-with-reloc/repo/org/apache/maven/its/shade/0000775000175000017500000000000012236137667031404 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/duplicate-classes-with-reloc/repo/org/apache/maven/its/shade/dcwr/0000775000175000017500000000000012236137667032343 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/duplicate-classes-with-reloc/repo/org/apache/maven/its/shade/dcwr/b/0000775000175000017500000000000012236137667032564 5ustar ebourgebourg././@LongLink0000644000000000000000000000016712236137670011655 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/duplicate-classes-with-reloc/repo/org/apache/maven/its/shade/dcwr/b/maven-metadata.xmlmaven-shade-plugin-1.7.1/src/it/duplicate-classes-with-reloc/repo/org/apache/maven/its/shade/dcwr/b/0000664000175000017500000000051311131476146032554 0ustar ebourgebourg org.apache.maven.its.shade.dcwr b 0.1 0.1 0.1 20090108191825 ././@LongLink0000644000000000000000000000015112236137670011646 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/duplicate-classes-with-reloc/repo/org/apache/maven/its/shade/dcwr/b/0.1/maven-shade-plugin-1.7.1/src/it/duplicate-classes-with-reloc/repo/org/apache/maven/its/shade/dcwr/b/0000775000175000017500000000000012236137667032564 5ustar ebourgebourg././@LongLink0000644000000000000000000000016212236137670011650 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/duplicate-classes-with-reloc/repo/org/apache/maven/its/shade/dcwr/b/0.1/b-0.1.jarmaven-shade-plugin-1.7.1/src/it/duplicate-classes-with-reloc/repo/org/apache/maven/its/shade/dcwr/b/0000664000175000017500000000652711131476146032567 0ustar ebourgebourgPK M¢(: META-INF/PK L¢(:˜÷вe{META-INF/MANIFEST.MFóMÌËLK-.Ñ K-*ÎÌϳR0Ô3àår,JÎÈ,K-Bä¤V”+À$x¹œ‹RKRSt*­ “3R|ËRóx¹œJ3sJÀâN®N®~Š®WJ6Èp=£xC3^.^.PK L¢(:org/PK L¢(: org/apache/PK L¢(:org/apache/maven/PK L¢(:org/apache/maven/its/PK L¢(:org/apache/maven/its/shade/PK L¢(: org/apache/maven/its/shade/impl/PK L¢(:dv]°Ü3,org/apache/maven/its/shade/impl/MyImpl.classOÍJÃ`œmÒDÓh‹oàEjA÷,^¡õ ô¾I?š¯ä§$i¡ÕSÁƒЇ’nRÀ]˜Ýföøûý:®|\û¼©-lóLpÆ÷s‚ûR. aÙ¼oòØT_gªÜDe"Ù\*Ûò?ÑmR[ÆQY-YÖ’¤†sÙš‚mSsʰÍ׿íf:žÁg¹©ójÛøà,?®d+!\ô wÿ»Dµ!ΤXòG¼2Iƒ[ôô±¶H[¯)zʸã@ríuéÁWô:ÑÁ…bx6àAt®ðPK L¢(:à?zq‚,org/apache/maven/its/shade/MyInterface.class;õo×>f]vvVv6F®àüÒ¢äT·ÌœTFßJϼ’Ô¢´ÄäT½¬Ä²DFµü¢týÄ‚ÄäŒTýÜIJÔ<ýÌ’býâŒÄ”T}$Õ@½ õú9‰yéúþIY©É%@Ø €h+ÇPK L¢(:some-ordinary-resource.txtPK M¢(:META-INF/maven/PK M¢(:.META-INF/maven/org.apache.maven.its.shade.dze/PK M¢(:0META-INF/maven/org.apache.maven.its.shade.dze/b/PK Hž(:"úêì—§7META-INF/maven/org.apache.maven.its.shade.dze/b/pom.xmluT[o›0~Gâ?œ¡=´R‚ÓiÓF©²¶ÑP»D*éª>:pBÜ‚ÍlSšMûï;&d›ö„ìsû.ÇD¯U /¨Pò<8 ' ÌT.dqÜ/gãÁEì{¾½}ïVd( æ`Ø Â´æ}Rµ¶-×3ÕÈœ[j'Ótv tD J¢ï) •¢œLI«Åª±tQîú/4b…Òš EìšÏËäòÖ¢¤ê\˜] o…ÝP†0Ð*ý kjÄó\¸±¼!é¢ê@øžÆ‚kdžÆÖ[-ŠÕJ"¼5ÍZ:élbvmw#‰ãV5=…#¶½#ø¶Ó Þ…8¡ß úXpú©«­ø¤²Ðœ„“ˆýq·³(*´jê$É™Á¤Š¿  m¾ÙðÃüFlÈ늸¶bÍ3KçUÄŽN]´¼ñ$<‹ØË~E¨ÿ3/ˆdüÄuÄÇÌÞªøÊ%éâ^`WKQµ2‚é¶¿¡;‘Çȱ°ù!Ðè2v«MûÇÞþ\qúEý‹¹sÁ¾)û«kÄþ ‚ïþ PK M¢(:1±ê—tw>META-INF/maven/org.apache.maven.its.shade.dze/b/pom.properties̱ ƒ0€á=pïpà~Dé`§RJ…n¾Ài®&C¹DÁ>}íøÃÇ_=$Šr‡Ó/Þ%‚©F¿áÀm‹íê¶k.x»gØ+˜]4‡{K5˜EÓ¶>]Ÿt!^yöBŸÿ…BÉ”=;!÷0¬%¼y.'ÀüPK M¢(: íAMETA-INF/PK L¢(:˜÷вe{¤'META-INF/MANIFEST.MFPK L¢(:íA¾org/PK L¢(: íAàorg/apache/PK L¢(:íA org/apache/maven/PK L¢(:íA8org/apache/maven/its/PK L¢(:íAkorg/apache/maven/its/shade/PK L¢(: íA¤org/apache/maven/its/shade/impl/PK L¢(:dv]°Ü3,¤âorg/apache/maven/its/shade/impl/MyImpl.classPK L¢(:à?zq‚,¤org/apache/maven/its/shade/MyInterface.classPK L¢(:¤Ãsome-ordinary-resource.txtPK M¢(:íAýMETA-INF/maven/PK M¢(:.íA*META-INF/maven/org.apache.maven.its.shade.dze/PK M¢(:0íAvMETA-INF/maven/org.apache.maven.its.shade.dze/b/PK Hž(:"úêì—§7¤ÄMETA-INF/maven/org.apache.maven.its.shade.dze/b/pom.xmlPK M¢(:1±ê—tw>¤°META-INF/maven/org.apache.maven.its.shade.dze/b/pom.propertiesPKÁ€././@LongLink0000644000000000000000000000016212236137670011650 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/duplicate-classes-with-reloc/repo/org/apache/maven/its/shade/dcwr/b/0.1/b-0.1.pommaven-shade-plugin-1.7.1/src/it/duplicate-classes-with-reloc/repo/org/apache/maven/its/shade/dcwr/b/0000664000175000017500000000200511131476146032552 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.dcwr b 0.1 jar maven-shade-plugin-1.7.1/src/it/duplicate-classes-with-reloc/repo/org/apache/maven/its/shade/dcwr/a/0000775000175000017500000000000012236137667032563 5ustar ebourgebourg././@LongLink0000644000000000000000000000016712236137670011655 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/duplicate-classes-with-reloc/repo/org/apache/maven/its/shade/dcwr/a/maven-metadata.xmlmaven-shade-plugin-1.7.1/src/it/duplicate-classes-with-reloc/repo/org/apache/maven/its/shade/dcwr/a/0000664000175000017500000000051311131476146032553 0ustar ebourgebourg org.apache.maven.its.shade.dcwr a 0.1 0.1 0.1 20090108191842 ././@LongLink0000644000000000000000000000015112236137670011646 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/duplicate-classes-with-reloc/repo/org/apache/maven/its/shade/dcwr/a/0.1/maven-shade-plugin-1.7.1/src/it/duplicate-classes-with-reloc/repo/org/apache/maven/its/shade/dcwr/a/0000775000175000017500000000000012236137667032563 5ustar ebourgebourg././@LongLink0000644000000000000000000000016212236137670011650 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/duplicate-classes-with-reloc/repo/org/apache/maven/its/shade/dcwr/a/0.1/a-0.1.jarmaven-shade-plugin-1.7.1/src/it/duplicate-classes-with-reloc/repo/org/apache/maven/its/shade/dcwr/a/0000664000175000017500000000652611131476146032565 0ustar ebourgebourgPK U¢(: META-INF/PK T¢(:˜÷вe{META-INF/MANIFEST.MFóMÌËLK-.Ñ K-*ÎÌϳR0Ô3àår,JÎÈ,K-Bä¤V”+À$x¹œ‹RKRSt*­ “3R|ËRóx¹œJ3sJÀâN®N®~Š®WJ6Èp=£xC3^.^.PK T¢(:org/PK T¢(: org/apache/PK T¢(:org/apache/maven/PK T¢(:org/apache/maven/its/PK T¢(:org/apache/maven/its/shade/PK T¢(: org/apache/maven/its/shade/impl/PK T¢(:dv]°Ü3,org/apache/maven/its/shade/impl/MyImpl.classOÍJÃ`œmÒDÓh‹oàEjA÷,^¡õ ô¾I?š¯ä§$i¡ÕSÁƒЇ’nRÀ]˜Ýföøûý:®|\û¼©-lóLpÆ÷s‚ûR. aÙ¼oòØT_gªÜDe"Ù\*Ûò?ÑmR[ÆQY-YÖ’¤†sÙš‚mSsʰÍ׿íf:žÁg¹©ójÛøà,?®d+!\ô wÿ»Dµ!ΤXòG¼2Iƒ[ôô±¶H[¯)zʸã@ríuéÁWô:ÑÁ…bx6àAt®ðPK T¢(:à?zq‚,org/apache/maven/its/shade/MyInterface.class;õo×>f]vvVv6F®àüÒ¢äT·ÌœTFßJϼ’Ô¢´ÄäT½¬Ä²DFµü¢týÄ‚ÄäŒTýÜIJÔ<ýÌ’býâŒÄ”T}$Õ@½ õú9‰yéúþIY©É%@Ø €h+ÇPK T¢(:some-ordinary-resource.txtPK U¢(:META-INF/maven/PK U¢(:.META-INF/maven/org.apache.maven.its.shade.dze/PK U¢(:0META-INF/maven/org.apache.maven.its.shade.dze/a/PK R¢(:(63¬—§7META-INF/maven/org.apache.maven.its.shade.dze/a/pom.xmluT[o›0~Gâ?œ¡=´R‚ÓiÓF©²¶ÑP»D*éª>:pBÜ‚ÍlSšMûï;&d›ö„ìsû.ÇD¯U /¨Pò<8 ' ÌT.dqÜ/gãÁEì{¾½}ïVd( æ`Ø Â´æ}Rµ¶-×3ÕÈœ[j'Ótv tD J¢ï) •¢œLI«Åª±tQîú/4b…Òš EìšÏËäòÖ¢¤ê\˜] o…ÝP†0Ð*ý kjÄó\¸±¼!é¢ê@øžÆ‚kdžÆÖ[-ŠÕJ"¼5ÍZ:élbvmw#‰ãV5=…#¶½#ø¶Ó Þ…8¡ß úXpú©«­ø¤²Ðœ„“ˆýq·³(*´jê$É™Á¤Š¿  m¾ÙðÃüFlÈ늸¶bÍ3Kg±£Sío< Ï"ö²GêÿÌ "?q±Ã±³7‡*¾rIº¸ØÕRTc­Œ GºíoèNäqr,lÄD~4ºŒÝjÓþ±·?Wœ~Bÿb®GÄ\°oÊþê±ÿ‚ À{…PK U¢(:Bóbsw>META-INF/maven/org.apache.maven.its.shade.dze/a/pom.properties̱ Â0€áý ïpÐýHÄ¡:‰ˆ‚[_àlÎ&ƒI¹¤}ú¶ãs—$ÊU<¾øâU’f >9¡mñd;×vg‡×Û°‡½XEKÌ©·ä Lš—ùáû¬ñÌcúеP ì…ü_ °Öøá±î” lPK U¢(: íAMETA-INF/PK T¢(:˜÷вe{¤'META-INF/MANIFEST.MFPK T¢(:íA¾org/PK T¢(: íAàorg/apache/PK T¢(:íA org/apache/maven/PK T¢(:íA8org/apache/maven/its/PK T¢(:íAkorg/apache/maven/its/shade/PK T¢(: íA¤org/apache/maven/its/shade/impl/PK T¢(:dv]°Ü3,¤âorg/apache/maven/its/shade/impl/MyImpl.classPK T¢(:à?zq‚,¤org/apache/maven/its/shade/MyInterface.classPK T¢(:¤Ãsome-ordinary-resource.txtPK U¢(:íAýMETA-INF/maven/PK U¢(:.íA*META-INF/maven/org.apache.maven.its.shade.dze/PK U¢(:0íAvMETA-INF/maven/org.apache.maven.its.shade.dze/a/PK R¢(:(63¬—§7¤ÄMETA-INF/maven/org.apache.maven.its.shade.dze/a/pom.xmlPK U¢(:Bóbsw>¤°META-INF/maven/org.apache.maven.its.shade.dze/a/pom.propertiesPKÁ././@LongLink0000644000000000000000000000016212236137670011650 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/duplicate-classes-with-reloc/repo/org/apache/maven/its/shade/dcwr/a/0.1/a-0.1.pommaven-shade-plugin-1.7.1/src/it/duplicate-classes-with-reloc/repo/org/apache/maven/its/shade/dcwr/a/0000664000175000017500000000200511131476146032551 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.dcwr a 0.1 jar maven-shade-plugin-1.7.1/src/it/mini-jar-malformed-dependencies/0000775000175000017500000000000012236137667024054 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/mini-jar-malformed-dependencies/pom.xml0000664000175000017500000000317711760550707025374 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade mini-jar-malformed-dependencies-MSHADE-107 1 mini-jar-malformed-dependencies-MSHADE-107 jaxen jaxen 1.1.1 com.ibm.icu icu4j 2.6.1 org.apache.maven.plugins maven-shade-plugin @project.version@ package shade true maven-shade-plugin-1.7.1/src/it/empty-relocation-shaded-pattern/0000775000175000017500000000000012236137667024152 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/empty-relocation-shaded-pattern/pom.xml0000664000175000017500000000403511727637645025476 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.eant empty-relocation-shaded-pattern 0.1-SNAPSHOT jar MSHADE-94 Test that NullPointerException is not thrown when shadedPattern parameter is unset. org.apache.maven.plugins maven-shade-plugin @project.version@ package shade org.example maven-shade-plugin-1.7.1/src/it/attached-artifact-type/0000775000175000017500000000000012236137667022305 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/attached-artifact-type/invoker.properties0000664000175000017500000000020311161646061026060 0ustar ebourgebourg# NOTE: Running only up to "package" is crucial, we want to check proper resolution from the reactor invoker.goals = clean package maven-shade-plugin-1.7.1/src/it/attached-artifact-type/shade/0000775000175000017500000000000012236137667023371 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/attached-artifact-type/shade/src/0000775000175000017500000000000012236137667024160 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/attached-artifact-type/shade/src/main/0000775000175000017500000000000012236137667025104 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/attached-artifact-type/shade/src/main/resources/0000775000175000017500000000000012236137667027116 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/attached-artifact-type/shade/src/main/resources/META-INF/0000775000175000017500000000000012236137667030256 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/attached-artifact-type/shade/src/main/resources/META-INF/ejb-jar.xml0000664000175000017500000000004711161646061032300 0ustar ebourgebourg maven-shade-plugin-1.7.1/src/it/attached-artifact-type/shade/pom.xml0000664000175000017500000000425111161646061024675 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.aat parent 1.0 shade ejb MSHADE-46 :: Shaded Artifact Producer Test that attached shaded artifacts have the same type as the original main artifact. org.apache.maven.plugins maven-shade-plugin attach-shaded-artifact package shade true shaded false maven-shade-plugin-1.7.1/src/it/attached-artifact-type/pom.xml0000664000175000017500000000546211161646061023616 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.aat parent 1.0 pom MSHADE-46 Test that attached shaded artifacts have the same type as the original main artifact. shade consumer true org.apache.maven.plugins maven-compiler-plugin 2.0.2 org.apache.maven.plugins maven-install-plugin 2.2 org.apache.maven.plugins maven-ear-plugin 2.3.1 org.apache.maven.plugins maven-ejb-plugin 2.1 org.apache.maven.plugins maven-resources-plugin 2.2 org.apache.maven.plugins maven-shade-plugin @project.version@ org.apache.maven.plugins maven-surefire-plugin 2.3.1 maven-shade-plugin-1.7.1/src/it/attached-artifact-type/consumer/0000775000175000017500000000000012236137667024140 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/attached-artifact-type/consumer/pom.xml0000664000175000017500000000504611161646061025447 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.aat parent 1.0 consumer ear MSHADE-46 :: Shaded Artifact Consumer Test that attached shaded artifacts have the same type as the original main artifact. org.apache.maven.its.shade.aat shade 1.0 ejb shaded org.apache.maven.plugins maven-ear-plugin org.apache.maven.its.shade.aat shade shaded maven-shade-plugin-1.7.1/src/it/reloc-abs-resource-path/0000775000175000017500000000000012236137667022404 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/reloc-abs-resource-path/src/0000775000175000017500000000000012236137667023173 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/reloc-abs-resource-path/src/main/0000775000175000017500000000000012236137667024117 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/reloc-abs-resource-path/src/main/java/0000775000175000017500000000000012236137667025040 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/reloc-abs-resource-path/src/main/java/Main.java0000664000175000017500000000231011760251671026554 0ustar ebourgebourgimport java.net.URL; /* * 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. */ public class Main { public static void main( String[] args ) throws Exception { new Main().testAbsResource(); } private void testAbsResource() throws Exception { URL r = getClass().getResource("/org/apache/maven/from/test.properties"); // expect NPE if MSHADE-119 is not fixed. System.out.println( r.toString() ); } } maven-shade-plugin-1.7.1/src/it/reloc-abs-resource-path/src/main/resources/0000775000175000017500000000000012236137667026131 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/reloc-abs-resource-path/src/main/resources/org/0000775000175000017500000000000012236137667026720 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/reloc-abs-resource-path/src/main/resources/org/apache/0000775000175000017500000000000012236137667030141 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/reloc-abs-resource-path/src/main/resources/org/apache/maven/0000775000175000017500000000000012236137667031247 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/reloc-abs-resource-path/src/main/resources/org/apache/maven/from/0000775000175000017500000000000012236137667032212 5ustar ebourgebourg././@LongLink0000644000000000000000000000016112236137670011647 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/reloc-abs-resource-path/src/main/resources/org/apache/maven/from/test.propertiesmaven-shade-plugin-1.7.1/src/it/reloc-abs-resource-path/src/main/resources/org/apache/maven/from/tes0000664000175000017500000000002211760251671032713 0ustar ebourgebourgtestprop=proptest maven-shade-plugin-1.7.1/src/it/reloc-abs-resource-path/pom.xml0000664000175000017500000000576411760251671023726 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade reloc-abs-resource-path 1.0 org.apache.maven maven-parent 21 MSHADE-119 Test that classes in strings like "/org/apache/velocity/my.properties" get properly relocated in calls to Class.getResource(). org.apache.maven.plugins maven-shade-plugin @project.version@ shade package shade false org.apache.maven.from org.apache.maven.to org.codehaus.mojo exec-maven-plugin 1.1.1 run verify exec java -classpath ${project.build.directory}/reloc-abs-resource-path-1.0.jar Main maven-shade-plugin-1.7.1/src/it/reloc-anno/0000775000175000017500000000000012236137667020013 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/reloc-anno/src/0000775000175000017500000000000012236137667020602 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/reloc-anno/src/main/0000775000175000017500000000000012236137667021526 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/reloc-anno/src/main/java/0000775000175000017500000000000012236137667022447 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/reloc-anno/src/main/java/Main.java0000664000175000017500000000313611371250660024165 0ustar ebourgebourg/* * 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.lang.reflect.*; import relocated.*; @MyAnno public class Main { @MyAnno public String field = ""; @MyAnno public Main() { } @MyAnno public void method() { } public static void main( String[] args ) throws Exception { Class type = Main.class; Field field = type.getField( "field" ); Method method = type.getMethod( "method" ); Constructor constructor = type.getConstructor(); AnnotatedElement[] elements = { type, method, constructor, field }; for ( AnnotatedElement element : elements ) { if ( !element.isAnnotationPresent( MyAnno.class ) ) { throw new IllegalStateException( "annotation missing on " + element ); } } } } maven-shade-plugin-1.7.1/src/it/reloc-anno/src/main/java/relocated/0000775000175000017500000000000012236137667024411 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/reloc-anno/src/main/java/relocated/MyAnno.java0000664000175000017500000000165211371250660026445 0ustar ebourgebourgpackage relocated; /* * 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. */ @java.lang.annotation.Retention( java.lang.annotation.RetentionPolicy.RUNTIME ) public @interface MyAnno { } maven-shade-plugin-1.7.1/src/it/reloc-anno/invoker.properties0000664000175000017500000000003411371250660023567 0ustar ebourgebourginvoker.java.version = 1.5+ maven-shade-plugin-1.7.1/src/it/reloc-anno/pom.xml0000664000175000017500000000701611371250660021320 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.ra test 1.0 jar MSHADE-79 Test that annotations are properly relocated. org.apache.maven.plugins maven-compiler-plugin 2.0.2 1.5 1.5 org.apache.maven.plugins maven-jar-plugin 2.1 org.apache.maven.plugins maven-resources-plugin 2.2 org.apache.maven.plugins maven-shade-plugin @project.version@ shade package shade false relocated hidden org.codehaus.mojo exec-maven-plugin 1.1.1 run verify exec java -classpath ${project.build.directory}/test-1.0.jar Main org.apache.maven.plugins maven-surefire-plugin 2.3.1 maven-shade-plugin-1.7.1/src/it/empty-relocation-pattern/0000775000175000017500000000000012236137667022724 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/empty-relocation-pattern/pom.xml0000664000175000017500000000404411727637645024250 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.eant empty-relocation-pattern 0.1-SNAPSHOT jar MSHADE-94 Test that NullPointerException is not thrown when pattern parameter is unset. org.apache.maven.plugins maven-shade-plugin @project.version@ package shade org.example maven-shade-plugin-1.7.1/src/it/pom-packaging/0000775000175000017500000000000012236137667020473 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/pom-packaging/verify.bsh0000664000175000017500000000253411727627314022476 0ustar ebourgebourg/* * 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.*; import java.util.jar.*; String[] wanted = { "junit/framework/TestCase.class", }; String[] unwanted = { }; JarFile jarFile = new JarFile( new File( basedir, "target/shaded.jar" ) ); for ( String path : wanted ) { if ( jarFile.getEntry( path ) == null ) { throw new IllegalStateException( "wanted path is missing: " + path ); } } for ( String path : unwanted ) { if ( jarFile.getEntry( path ) != null ) { throw new IllegalStateException( "unwanted path is present: " + path ); } } jarFile.close(); maven-shade-plugin-1.7.1/src/it/pom-packaging/pom.xml0000664000175000017500000000406111316733222021774 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.pp test 1.0 pom MSHADE-52 Test that usage of the plugin within a POM project is supported. Think about Shade being used to create some archive that is not meant to be deployed on its own but to be included in some final/bigger assembly. junit junit 3.8.2 org.apache.maven.plugins maven-shade-plugin @project.version@ create-shaded-bundle-of-some-artifacts-for-inclusion-in-assembly package shade ${project.build.directory}/shaded.jar maven-shade-plugin-1.7.1/src/it/mini-jar/0000775000175000017500000000000012236137667017464 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/mini-jar/src/0000775000175000017500000000000012236137667020253 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/mini-jar/src/main/0000775000175000017500000000000012236137667021177 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/mini-jar/src/main/java/0000775000175000017500000000000012236137667022120 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/mini-jar/src/main/java/Main.java0000664000175000017500000000007311427243122023630 0ustar ebourgebourgpublic class Main extends junit.framework.TestCase { } maven-shade-plugin-1.7.1/src/it/mini-jar/invoker.properties0000664000175000017500000000003411427244527023247 0ustar ebourgebourginvoker.java.version = 1.5+ maven-shade-plugin-1.7.1/src/it/mini-jar/verify.bsh0000664000175000017500000000267411727627314021474 0ustar ebourgebourg/* * 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.*; import java.util.jar.*; String[] wanted = { "Main.class", "junit/framework/TestCase.class", "junit/swingui/icons/error.gif", }; String[] unwanted = { "junit/swingui/TestRunner.class", }; JarFile jarFile = new JarFile( new File( basedir, "target/test-1.0.jar" ) ); for ( String path : wanted ) { if ( jarFile.getEntry( path ) == null ) { throw new IllegalStateException( "wanted path is missing: " + path ); } } for ( String path : unwanted ) { if ( jarFile.getEntry( path ) != null ) { throw new IllegalStateException( "unwanted path is present: " + path ); } } jarFile.close(); maven-shade-plugin-1.7.1/src/it/mini-jar/pom.xml0000664000175000017500000000434511427243122020770 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.mj test 1.0 jar MSHADE-84 Test that artifact contents can be filtered automatically to produce a mini jar that only contains the referenced classes. junit junit 3.8.2 org.apache.maven.plugins maven-compiler-plugin 2.0.2 1.4 1.4 org.apache.maven.plugins maven-shade-plugin @project.version@ attach-shade package shade false true maven-shade-plugin-1.7.1/src/it/duplicate-classes-without-reloc/0000775000175000017500000000000012236137667024166 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/duplicate-classes-without-reloc/pom.xml0000664000175000017500000000671111131476146025477 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.dcwor test 1.0 jar MSHADE-30 Test that duplicate classes/resources on the class path are gracefully handled. org.apache.maven.its.shade.dcwor a 0.1 org.apache.maven.its.shade.dcwor b 0.1 shade-it file:///${basedir}/repo ignore false org.apache.maven.plugins maven-compiler-plugin 2.0.2 org.apache.maven.plugins maven-jar-plugin 2.1 org.apache.maven.plugins maven-resources-plugin 2.2 org.apache.maven.plugins maven-shade-plugin @project.version@ shade package shade false org.apache.maven.plugins maven-surefire-plugin 2.3.1 maven-shade-plugin-1.7.1/src/it/duplicate-classes-without-reloc/repo/0000775000175000017500000000000012236137667025133 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/duplicate-classes-without-reloc/repo/org/0000775000175000017500000000000012236137667025722 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/duplicate-classes-without-reloc/repo/org/apache/0000775000175000017500000000000012236137667027143 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/duplicate-classes-without-reloc/repo/org/apache/maven/0000775000175000017500000000000012236137667030251 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/duplicate-classes-without-reloc/repo/org/apache/maven/its/0000775000175000017500000000000012236137667031050 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/duplicate-classes-without-reloc/repo/org/apache/maven/its/shade/0000775000175000017500000000000012236137667032134 5ustar ebourgebourg././@LongLink0000644000000000000000000000014712236137670011653 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/duplicate-classes-without-reloc/repo/org/apache/maven/its/shade/dcwor/maven-shade-plugin-1.7.1/src/it/duplicate-classes-without-reloc/repo/org/apache/maven/its/shade/dcwo0000775000175000017500000000000012236137667033011 5ustar ebourgebourg././@LongLink0000644000000000000000000000015112236137670011646 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/duplicate-classes-without-reloc/repo/org/apache/maven/its/shade/dcwor/b/maven-shade-plugin-1.7.1/src/it/duplicate-classes-without-reloc/repo/org/apache/maven/its/shade/dcwo0000775000175000017500000000000012236137667033011 5ustar ebourgebourg././@LongLink0000644000000000000000000000017312236137670011652 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/duplicate-classes-without-reloc/repo/org/apache/maven/its/shade/dcwor/b/maven-metadata.xmlmaven-shade-plugin-1.7.1/src/it/duplicate-classes-without-reloc/repo/org/apache/maven/its/shade/dcwo0000664000175000017500000000051411131476146033002 0ustar ebourgebourg org.apache.maven.its.shade.dcwor b 0.1 0.1 0.1 20090108191825 ././@LongLink0000644000000000000000000000015512236137670011652 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/duplicate-classes-without-reloc/repo/org/apache/maven/its/shade/dcwor/b/0.1/maven-shade-plugin-1.7.1/src/it/duplicate-classes-without-reloc/repo/org/apache/maven/its/shade/dcwo0000775000175000017500000000000012236137667033011 5ustar ebourgebourg././@LongLink0000644000000000000000000000016612236137670011654 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/duplicate-classes-without-reloc/repo/org/apache/maven/its/shade/dcwor/b/0.1/b-0.1.jarmaven-shade-plugin-1.7.1/src/it/duplicate-classes-without-reloc/repo/org/apache/maven/its/shade/dcwo0000664000175000017500000000652711131476146033014 0ustar ebourgebourgPK M¢(: META-INF/PK L¢(:˜÷вe{META-INF/MANIFEST.MFóMÌËLK-.Ñ K-*ÎÌϳR0Ô3àår,JÎÈ,K-Bä¤V”+À$x¹œ‹RKRSt*­ “3R|ËRóx¹œJ3sJÀâN®N®~Š®WJ6Èp=£xC3^.^.PK L¢(:org/PK L¢(: org/apache/PK L¢(:org/apache/maven/PK L¢(:org/apache/maven/its/PK L¢(:org/apache/maven/its/shade/PK L¢(: org/apache/maven/its/shade/impl/PK L¢(:dv]°Ü3,org/apache/maven/its/shade/impl/MyImpl.classOÍJÃ`œmÒDÓh‹oàEjA÷,^¡õ ô¾I?š¯ä§$i¡ÕSÁƒЇ’nRÀ]˜Ýföøûý:®|\û¼©-lóLpÆ÷s‚ûR. aÙ¼oòØT_gªÜDe"Ù\*Ûò?ÑmR[ÆQY-YÖ’¤†sÙš‚mSsʰÍ׿íf:žÁg¹©ójÛøà,?®d+!\ô wÿ»Dµ!ΤXòG¼2Iƒ[ôô±¶H[¯)zʸã@ríuéÁWô:ÑÁ…bx6àAt®ðPK L¢(:à?zq‚,org/apache/maven/its/shade/MyInterface.class;õo×>f]vvVv6F®àüÒ¢äT·ÌœTFßJϼ’Ô¢´ÄäT½¬Ä²DFµü¢týÄ‚ÄäŒTýÜIJÔ<ýÌ’býâŒÄ”T}$Õ@½ õú9‰yéúþIY©É%@Ø €h+ÇPK L¢(:some-ordinary-resource.txtPK M¢(:META-INF/maven/PK M¢(:.META-INF/maven/org.apache.maven.its.shade.dze/PK M¢(:0META-INF/maven/org.apache.maven.its.shade.dze/b/PK Hž(:"úêì—§7META-INF/maven/org.apache.maven.its.shade.dze/b/pom.xmluT[o›0~Gâ?œ¡=´R‚ÓiÓF©²¶ÑP»D*éª>:pBÜ‚ÍlSšMûï;&d›ö„ìsû.ÇD¯U /¨Pò<8 ' ÌT.dqÜ/gãÁEì{¾½}ïVd( æ`Ø Â´æ}Rµ¶-×3ÕÈœ[j'Ótv tD J¢ï) •¢œLI«Åª±tQîú/4b…Òš EìšÏËäòÖ¢¤ê\˜] o…ÝP†0Ð*ý kjÄó\¸±¼!é¢ê@øžÆ‚kdžÆÖ[-ŠÕJ"¼5ÍZ:élbvmw#‰ãV5=…#¶½#ø¶Ó Þ…8¡ß úXpú©«­ø¤²Ðœ„“ˆýq·³(*´jê$É™Á¤Š¿  m¾ÙðÃüFlÈ늸¶bÍ3KçUÄŽN]´¼ñ$<‹ØË~E¨ÿ3/ˆdüÄuÄÇÌÞªøÊ%éâ^`WKQµ2‚é¶¿¡;‘Çȱ°ù!Ðè2v«MûÇÞþ\qúEý‹¹sÁ¾)û«kÄþ ‚ïþ PK M¢(:1±ê—tw>META-INF/maven/org.apache.maven.its.shade.dze/b/pom.properties̱ ƒ0€á=pïpà~Dé`§RJ…n¾Ài®&C¹DÁ>}íøÃÇ_=$Šr‡Ó/Þ%‚©F¿áÀm‹íê¶k.x»gØ+˜]4‡{K5˜EÓ¶>]Ÿt!^yöBŸÿ…BÉ”=;!÷0¬%¼y.'ÀüPK M¢(: íAMETA-INF/PK L¢(:˜÷вe{¤'META-INF/MANIFEST.MFPK L¢(:íA¾org/PK L¢(: íAàorg/apache/PK L¢(:íA org/apache/maven/PK L¢(:íA8org/apache/maven/its/PK L¢(:íAkorg/apache/maven/its/shade/PK L¢(: íA¤org/apache/maven/its/shade/impl/PK L¢(:dv]°Ü3,¤âorg/apache/maven/its/shade/impl/MyImpl.classPK L¢(:à?zq‚,¤org/apache/maven/its/shade/MyInterface.classPK L¢(:¤Ãsome-ordinary-resource.txtPK M¢(:íAýMETA-INF/maven/PK M¢(:.íA*META-INF/maven/org.apache.maven.its.shade.dze/PK M¢(:0íAvMETA-INF/maven/org.apache.maven.its.shade.dze/b/PK Hž(:"úêì—§7¤ÄMETA-INF/maven/org.apache.maven.its.shade.dze/b/pom.xmlPK M¢(:1±ê—tw>¤°META-INF/maven/org.apache.maven.its.shade.dze/b/pom.propertiesPKÁ€././@LongLink0000644000000000000000000000016612236137670011654 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/duplicate-classes-without-reloc/repo/org/apache/maven/its/shade/dcwor/b/0.1/b-0.1.pommaven-shade-plugin-1.7.1/src/it/duplicate-classes-without-reloc/repo/org/apache/maven/its/shade/dcwo0000664000175000017500000000200611131476146033000 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.dcwor b 0.1 jar ././@LongLink0000644000000000000000000000015112236137670011646 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/duplicate-classes-without-reloc/repo/org/apache/maven/its/shade/dcwor/a/maven-shade-plugin-1.7.1/src/it/duplicate-classes-without-reloc/repo/org/apache/maven/its/shade/dcwo0000775000175000017500000000000012236137667033011 5ustar ebourgebourg././@LongLink0000644000000000000000000000017312236137670011652 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/duplicate-classes-without-reloc/repo/org/apache/maven/its/shade/dcwor/a/maven-metadata.xmlmaven-shade-plugin-1.7.1/src/it/duplicate-classes-without-reloc/repo/org/apache/maven/its/shade/dcwo0000664000175000017500000000051411131476146033002 0ustar ebourgebourg org.apache.maven.its.shade.dcwor a 0.1 0.1 0.1 20090108191842 ././@LongLink0000644000000000000000000000015512236137670011652 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/duplicate-classes-without-reloc/repo/org/apache/maven/its/shade/dcwor/a/0.1/maven-shade-plugin-1.7.1/src/it/duplicate-classes-without-reloc/repo/org/apache/maven/its/shade/dcwo0000775000175000017500000000000012236137667033011 5ustar ebourgebourg././@LongLink0000644000000000000000000000016612236137670011654 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/duplicate-classes-without-reloc/repo/org/apache/maven/its/shade/dcwor/a/0.1/a-0.1.jarmaven-shade-plugin-1.7.1/src/it/duplicate-classes-without-reloc/repo/org/apache/maven/its/shade/dcwo0000664000175000017500000000652611131476146033013 0ustar ebourgebourgPK U¢(: META-INF/PK T¢(:˜÷вe{META-INF/MANIFEST.MFóMÌËLK-.Ñ K-*ÎÌϳR0Ô3àår,JÎÈ,K-Bä¤V”+À$x¹œ‹RKRSt*­ “3R|ËRóx¹œJ3sJÀâN®N®~Š®WJ6Èp=£xC3^.^.PK T¢(:org/PK T¢(: org/apache/PK T¢(:org/apache/maven/PK T¢(:org/apache/maven/its/PK T¢(:org/apache/maven/its/shade/PK T¢(: org/apache/maven/its/shade/impl/PK T¢(:dv]°Ü3,org/apache/maven/its/shade/impl/MyImpl.classOÍJÃ`œmÒDÓh‹oàEjA÷,^¡õ ô¾I?š¯ä§$i¡ÕSÁƒЇ’nRÀ]˜Ýföøûý:®|\û¼©-lóLpÆ÷s‚ûR. aÙ¼oòØT_gªÜDe"Ù\*Ûò?ÑmR[ÆQY-YÖ’¤†sÙš‚mSsʰÍ׿íf:žÁg¹©ójÛøà,?®d+!\ô wÿ»Dµ!ΤXòG¼2Iƒ[ôô±¶H[¯)zʸã@ríuéÁWô:ÑÁ…bx6àAt®ðPK T¢(:à?zq‚,org/apache/maven/its/shade/MyInterface.class;õo×>f]vvVv6F®àüÒ¢äT·ÌœTFßJϼ’Ô¢´ÄäT½¬Ä²DFµü¢týÄ‚ÄäŒTýÜIJÔ<ýÌ’býâŒÄ”T}$Õ@½ õú9‰yéúþIY©É%@Ø €h+ÇPK T¢(:some-ordinary-resource.txtPK U¢(:META-INF/maven/PK U¢(:.META-INF/maven/org.apache.maven.its.shade.dze/PK U¢(:0META-INF/maven/org.apache.maven.its.shade.dze/a/PK R¢(:(63¬—§7META-INF/maven/org.apache.maven.its.shade.dze/a/pom.xmluT[o›0~Gâ?œ¡=´R‚ÓiÓF©²¶ÑP»D*éª>:pBÜ‚ÍlSšMûï;&d›ö„ìsû.ÇD¯U /¨Pò<8 ' ÌT.dqÜ/gãÁEì{¾½}ïVd( æ`Ø Â´æ}Rµ¶-×3ÕÈœ[j'Ótv tD J¢ï) •¢œLI«Åª±tQîú/4b…Òš EìšÏËäòÖ¢¤ê\˜] o…ÝP†0Ð*ý kjÄó\¸±¼!é¢ê@øžÆ‚kdžÆÖ[-ŠÕJ"¼5ÍZ:élbvmw#‰ãV5=…#¶½#ø¶Ó Þ…8¡ß úXpú©«­ø¤²Ðœ„“ˆýq·³(*´jê$É™Á¤Š¿  m¾ÙðÃüFlÈ늸¶bÍ3Kg±£Sío< Ï"ö²GêÿÌ "?q±Ã±³7‡*¾rIº¸ØÕRTc­Œ GºíoèNäqr,lÄD~4ºŒÝjÓþ±·?Wœ~Bÿb®GÄ\°oÊþê±ÿ‚ À{…PK U¢(:Bóbsw>META-INF/maven/org.apache.maven.its.shade.dze/a/pom.properties̱ Â0€áý ïpÐýHÄ¡:‰ˆ‚[_àlÎ&ƒI¹¤}ú¶ãs—$ÊU<¾øâU’f >9¡mñd;×vg‡×Û°‡½XEKÌ©·ä Lš—ùáû¬ñÌcúеP ì…ü_ °Öøá±î” lPK U¢(: íAMETA-INF/PK T¢(:˜÷вe{¤'META-INF/MANIFEST.MFPK T¢(:íA¾org/PK T¢(: íAàorg/apache/PK T¢(:íA org/apache/maven/PK T¢(:íA8org/apache/maven/its/PK T¢(:íAkorg/apache/maven/its/shade/PK T¢(: íA¤org/apache/maven/its/shade/impl/PK T¢(:dv]°Ü3,¤âorg/apache/maven/its/shade/impl/MyImpl.classPK T¢(:à?zq‚,¤org/apache/maven/its/shade/MyInterface.classPK T¢(:¤Ãsome-ordinary-resource.txtPK U¢(:íAýMETA-INF/maven/PK U¢(:.íA*META-INF/maven/org.apache.maven.its.shade.dze/PK U¢(:0íAvMETA-INF/maven/org.apache.maven.its.shade.dze/a/PK R¢(:(63¬—§7¤ÄMETA-INF/maven/org.apache.maven.its.shade.dze/a/pom.xmlPK U¢(:Bóbsw>¤°META-INF/maven/org.apache.maven.its.shade.dze/a/pom.propertiesPKÁ././@LongLink0000644000000000000000000000016612236137670011654 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/duplicate-classes-without-reloc/repo/org/apache/maven/its/shade/dcwor/a/0.1/a-0.1.pommaven-shade-plugin-1.7.1/src/it/duplicate-classes-without-reloc/repo/org/apache/maven/its/shade/dcwo0000664000175000017500000000200611131476146033000 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.dcwor a 0.1 jar maven-shade-plugin-1.7.1/src/it/rerun-with-reloc/0000775000175000017500000000000012236137667021164 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/rerun-with-reloc/src/0000775000175000017500000000000012236137667021753 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/rerun-with-reloc/src/main/0000775000175000017500000000000012236137667022677 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/rerun-with-reloc/src/main/java/0000775000175000017500000000000012236137667023620 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/rerun-with-reloc/src/main/java/org/0000775000175000017500000000000012236137667024407 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/rerun-with-reloc/src/main/java/org/MyInterface.java0000664000175000017500000000015611131476146027451 0ustar ebourgebourgpackage org; /* * NOTE: The project's main artifact must not be empty! */ public interface MyInterface { } maven-shade-plugin-1.7.1/src/it/rerun-with-reloc/src/main/resources/0000775000175000017500000000000012236137667024711 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/rerun-with-reloc/src/main/resources/some-ordinary-resource.txt0000664000175000017500000000000011131476146032044 0ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/rerun-with-reloc/invoker.properties0000664000175000017500000000015611131476146024750 0ustar ebourgebourg# NOTE: It's the essential part of the test to re-run the package phase invoker.goals = clean package package maven-shade-plugin-1.7.1/src/it/rerun-with-reloc/pom.xml0000664000175000017500000000733611131476146022501 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.rrwr test 0.1 jar MSHADE-30 Test that re-running the package phase without any code changes in between doesn't cause shading to crash. The potential issue was that the first run produced the shaded artifact and that this artifact survived unchanged until shading got executed the second time, thereby re-shading all classes that were included during the first run. org.apache.maven.plugins maven-compiler-plugin 2.0.2 org.apache.maven.plugins maven-compiler-plugin 2.0.2 5000 org.apache.maven.plugins maven-install-plugin 2.2 org.apache.maven.plugins maven-jar-plugin 2.1 false org.apache.maven.plugins maven-resources-plugin 2.2 org.apache.maven.plugins maven-shade-plugin @project.version@ shade package shade false org.apache hidden org.apache.maven.plugins maven-surefire-plugin 2.3.1 maven-shade-plugin-1.7.1/src/it/dep-reduced-pom-with-local-parent/0000775000175000017500000000000012236137667024260 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/dep-reduced-pom-with-local-parent/child/0000775000175000017500000000000012236137667025343 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/dep-reduced-pom-with-local-parent/child/pom.xml0000664000175000017500000000471111272041562026646 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.drpwlp parent 1.0 org.apache.maven.its.shade.drpwlp child 1.0 jar MSHADE-66 Test that creation of the dependency reduced POM succeeds if the POM inherits from a parent that is only locally available. In other words, the parent can only be resolved by following the relativePath in the POM which demands for the dependency reduced POM to reside in the original project directory. junit junit 3.8.2 org.apache.maven.plugins maven-shade-plugin attach-shade package shade false true maven-shade-plugin-1.7.1/src/it/dep-reduced-pom-with-local-parent/invoker.properties0000664000175000017500000000006611272041562030040 0ustar ebourgebourginvoker.goals = clean package invoker.project = child maven-shade-plugin-1.7.1/src/it/dep-reduced-pom-with-local-parent/pom.xml0000664000175000017500000000537411272041562025571 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.drpwlp parent 1.0 pom MSHADE-66 Test that creation of the dependency reduced POM succeeds if the POM inherits from a parent that is only locally available. In other words, the parent can only be resolved by following the relativePath in the POM which demands for the dependency reduced POM to reside in the original project directory. child org.apache.maven.plugins maven-compiler-plugin 2.0.2 org.apache.maven.plugins maven-install-plugin 2.2 org.apache.maven.plugins maven-jar-plugin 2.1 org.apache.maven.plugins maven-resources-plugin 2.2 org.apache.maven.plugins maven-shade-plugin @project.version@ org.apache.maven.plugins maven-surefire-plugin 2.3.1 maven-shade-plugin-1.7.1/src/it/reloc-class-from-string-pool/0000775000175000017500000000000012236137667023401 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/reloc-class-from-string-pool/src/0000775000175000017500000000000012236137667024170 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/reloc-class-from-string-pool/src/main/0000775000175000017500000000000012236137667025114 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/reloc-class-from-string-pool/src/main/java/0000775000175000017500000000000012236137667026035 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/reloc-class-from-string-pool/src/main/java/Main.java0000664000175000017500000000463311273331662027561 0ustar ebourgebourg/* * 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. */ public class Main { public static void main( String[] args ) throws Exception { testClassWithSlashes(); testClassWithDots(); testArrayClassWithDots(); testArrayClassWithDots(); } private static void testClassWithSlashes() throws Exception { String typeName = "Lrelocated/RelocatedClass;"; typeName = typeName.substring( 1, typeName.length() - 1 ); typeName = typeName.replace( '/', '.' ); Class type = Class.forName( typeName ); System.out.println( type.getName() ); } private static void testClassWithDots() throws Exception { String typeName = "Lrelocated.RelocatedClass;"; typeName = typeName.substring( 1, typeName.length() - 1 ); typeName = typeName.replace( '/', '.' ); Class type = Class.forName( typeName ); System.out.println( type.getName() ); } private static void testArrayClassWithSlashes() throws Exception { String typeName = "[[[Lrelocated/RelocatedClass;"; typeName = typeName.substring( 4, typeName.length() - 1 ); typeName = typeName.replace( '/', '.' ); Class type = Class.forName( typeName ); System.out.println( type.getName() ); } private static void testArrayClassWithDots() throws Exception { String typeName = "[[[[Lrelocated.RelocatedClass;"; typeName = typeName.substring( 5, typeName.length() - 1 ); typeName = typeName.replace( '/', '.' ); Class type = Class.forName( typeName ); System.out.println( type.getName() ); } } maven-shade-plugin-1.7.1/src/it/reloc-class-from-string-pool/src/main/java/relocated/0000775000175000017500000000000012236137667027777 5ustar ebourgebourg././@LongLink0000644000000000000000000000015112236137670011646 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/reloc-class-from-string-pool/src/main/java/relocated/RelocatedClass.javamaven-shade-plugin-1.7.1/src/it/reloc-class-from-string-pool/src/main/java/relocated/RelocatedClass.0000664000175000017500000000153511273331662032663 0ustar ebourgebourgpackage relocated; /* * 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. */ public class RelocatedClass { } maven-shade-plugin-1.7.1/src/it/reloc-class-from-string-pool/pom.xml0000664000175000017500000000671611273331662024717 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.rcfsp test 1.0 jar MSHADE-47 Test that classes in strings like "[Lnet/sf/cglib/proxy/Callback" get properly relocated. org.apache.maven.plugins maven-compiler-plugin 2.0.2 org.apache.maven.plugins maven-jar-plugin 2.1 org.apache.maven.plugins maven-resources-plugin 2.2 org.apache.maven.plugins maven-shade-plugin @project.version@ shade package shade false relocated hidden org.codehaus.mojo exec-maven-plugin 1.1.1 run verify exec java -classpath ${project.build.directory}/test-1.0.jar Main org.apache.maven.plugins maven-surefire-plugin 2.3.1 maven-shade-plugin-1.7.1/src/it/settings.xml0000664000175000017500000000317411257425203020331 0ustar ebourgebourg it-repo true local.central @localRepositoryUrl@ true true local.central @localRepositoryUrl@ true true maven-shade-plugin-1.7.1/src/it/implicit-inclusion-of-project-artifact/0000775000175000017500000000000012236137667025432 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/implicit-inclusion-of-project-artifact/src/0000775000175000017500000000000012236137667026221 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/implicit-inclusion-of-project-artifact/src/main/0000775000175000017500000000000012236137667027145 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/implicit-inclusion-of-project-artifact/src/main/java/0000775000175000017500000000000012236137667030066 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/implicit-inclusion-of-project-artifact/src/main/java/Passed.java0000664000175000017500000000003011324611032032115 0ustar ebourgebourgpublic class Passed { } maven-shade-plugin-1.7.1/src/it/implicit-inclusion-of-project-artifact/verify.bsh0000664000175000017500000000220611727627314027431 0ustar ebourgebourg/* * 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.*; import java.util.jar.*; String[] wanted = { "Passed.class", }; JarFile jarFile = new JarFile( new File( basedir, "target/test-1.0.jar" ) ); for ( String path : wanted ) { if ( jarFile.getEntry( path ) == null ) { throw new IllegalStateException( "wanted path is missing: " + path ); } } jarFile.close(); maven-shade-plugin-1.7.1/src/it/implicit-inclusion-of-project-artifact/pom.xml0000664000175000017500000000412611324611032026726 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.iiopa test 1.0 jar MSHADE-72 Test that the project artifact is included in the output JAR even if it is not explicitly given by the non-empty includes for the artifact set. junit junit 3.8.2 org.apache.maven.plugins maven-shade-plugin @project.version@ attach-shade package shade false junit:junit maven-shade-plugin-1.7.1/src/it/component-descriptor-relocation/0000775000175000017500000000000012236137667024271 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/component-descriptor-relocation/src/0000775000175000017500000000000012236137667025060 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/component-descriptor-relocation/src/main/0000775000175000017500000000000012236137667026004 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/component-descriptor-relocation/src/main/java/0000775000175000017500000000000012236137667026725 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/component-descriptor-relocation/src/main/java/Main.java0000664000175000017500000000260311316677641030454 0ustar ebourgebourg/* * 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 org.apache.maven.component.api.*; import org.codehaus.plexus.*; public class Main { public static void main( String[] args ) throws Exception { DefaultPlexusContainer container = new DefaultPlexusContainer(); container.initialize(); container.start(); Component comp = (Component) container.lookup( Component.class.getName(), "test" ); System.out.println( comp.getId() ); if ( !"test-default".equals( comp.getId() ) ) { throw new IllegalStateException( "bad component " + comp ); } } } maven-shade-plugin-1.7.1/src/it/component-descriptor-relocation/src/main/java/org/0000775000175000017500000000000012236137667027514 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/component-descriptor-relocation/src/main/java/org/apache/0000775000175000017500000000000012236137667030735 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/component-descriptor-relocation/src/main/java/org/apache/maven/0000775000175000017500000000000012236137667032043 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/component-descriptor-relocation/src/main/java/org/apache/maven/test/0000775000175000017500000000000012236137667033022 5ustar ebourgebourg././@LongLink0000644000000000000000000000016712236137670011655 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/component-descriptor-relocation/src/main/java/org/apache/maven/test/TestComponent.javamaven-shade-plugin-1.7.1/src/it/component-descriptor-relocation/src/main/java/org/apache/maven/test/0000664000175000017500000000036411316677641033026 0ustar ebourgebourgpackage org.apache.maven.test; import org.apache.maven.component.api.*; public class TestComponent implements Component { private Component component; public String getId() { return "test-" + component.getId(); } } maven-shade-plugin-1.7.1/src/it/component-descriptor-relocation/src/main/resources/0000775000175000017500000000000012236137667030016 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/component-descriptor-relocation/src/main/resources/META-INF/0000775000175000017500000000000012236137667031156 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/component-descriptor-relocation/src/main/resources/META-INF/plexus/0000775000175000017500000000000012236137667032476 5ustar ebourgebourg././@LongLink0000644000000000000000000000016212236137670011650 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/component-descriptor-relocation/src/main/resources/META-INF/plexus/components.xmlmaven-shade-plugin-1.7.1/src/it/component-descriptor-relocation/src/main/resources/META-INF/plexus/c0000664000175000017500000000107211316677641032642 0ustar ebourgebourg org.apache.maven.component.api.Component test org.apache.maven.test.TestComponent per-lookup org.apache.maven.component.api.Component default component maven-shade-plugin-1.7.1/src/it/component-descriptor-relocation/pom.xml0000664000175000017500000001166511316677641025616 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.cdr test 1.0 jar MSHADE-71 Test that Plexus component descriptors get adjusted to account for relocation of role/impl classes. shade-it file:///${basedir}/repo ignore false org.apache.maven.its.shade.cdr comp 0.1 org.codehaus.plexus plexus-container-default 1.0-alpha-9-stable-1 junit junit org.apache.maven.plugins maven-compiler-plugin 2.0.2 1.4 1.4 org.apache.maven.plugins maven-jar-plugin 2.1 org.apache.maven.plugins maven-resources-plugin 2.2 org.apache.maven.plugins maven-shade-plugin @project.version@ shade package shade false org.apache.maven.component.api hidden.api org.apache.maven.component.impl hidden.impl org.apache.maven.test hidden.impl org.codehaus.mojo exec-maven-plugin 1.1.1 run verify exec java -classpath ${project.build.directory}/test-1.0.jar Main org.apache.maven.plugins maven-surefire-plugin 2.3.1 maven-shade-plugin-1.7.1/src/it/component-descriptor-relocation/repo/0000775000175000017500000000000012236137667025236 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/component-descriptor-relocation/repo/org/0000775000175000017500000000000012236137667026025 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/component-descriptor-relocation/repo/org/apache/0000775000175000017500000000000012236137667027246 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/component-descriptor-relocation/repo/org/apache/maven/0000775000175000017500000000000012236137667030354 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/component-descriptor-relocation/repo/org/apache/maven/its/0000775000175000017500000000000012236137667031153 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/component-descriptor-relocation/repo/org/apache/maven/its/shade/0000775000175000017500000000000012236137667032237 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/component-descriptor-relocation/repo/org/apache/maven/its/shade/cdr/0000775000175000017500000000000012236137667033007 5ustar ebourgebourg././@LongLink0000644000000000000000000000015212236137670011647 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/component-descriptor-relocation/repo/org/apache/maven/its/shade/cdr/comp/maven-shade-plugin-1.7.1/src/it/component-descriptor-relocation/repo/org/apache/maven/its/shade/cdr/0000775000175000017500000000000012236137667033007 5ustar ebourgebourg././@LongLink0000644000000000000000000000017412236137670011653 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/component-descriptor-relocation/repo/org/apache/maven/its/shade/cdr/comp/maven-metadata.xmlmaven-shade-plugin-1.7.1/src/it/component-descriptor-relocation/repo/org/apache/maven/its/shade/cdr/0000664000175000017500000000046411316677641033014 0ustar ebourgebourg org.apache.maven.its.shade.cdr comp 0.1 0.1 20091230143912 ././@LongLink0000644000000000000000000000015612236137670011653 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/component-descriptor-relocation/repo/org/apache/maven/its/shade/cdr/comp/0.1/maven-shade-plugin-1.7.1/src/it/component-descriptor-relocation/repo/org/apache/maven/its/shade/cdr/0000775000175000017500000000000012236137667033007 5ustar ebourgebourg././@LongLink0000644000000000000000000000017212236137670011651 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/component-descriptor-relocation/repo/org/apache/maven/its/shade/cdr/comp/0.1/comp-0.1.jarmaven-shade-plugin-1.7.1/src/it/component-descriptor-relocation/repo/org/apache/maven/its/shade/cdr/0000664000175000017500000001613611316677641033017 0ustar ebourgebourgPK ç|ž; META-INF/PK æ|ž;ÍÚfe{META-INF/MANIFEST.MFóMÌËLK-.Ñ K-*ÎÌϳR0Ô3àår,JÎÈ,K-Bä¤V”+À$x¹œ‹RKRSt*­ “3R|ËRóx¹œJ3sJÀâN®N®~Š®WJ6Èp3=ƒxs^.^.PK æ|ž;META-INF/plexus/PK æ|ž;org/PK æ|ž; org/apache/PK æ|ž;org/apache/maven/PK æ|ž;org/apache/maven/component/PK æ|ž;org/apache/maven/component/api/PK æ|ž; org/apache/maven/component/impl/PK æ|ž;src/PK æ|ž; src/main/PK æ|ž;src/main/java/PK æ|ž;src/main/java/org/PK æ|ž;src/main/java/org/apache/PK æ|ž;src/main/java/org/apache/maven/PK æ|ž;)src/main/java/org/apache/maven/component/PK æ|ž;-src/main/java/org/apache/maven/component/api/PK æ|ž;.src/main/java/org/apache/maven/component/impl/PK æ|ž;src/main/resources/PK æ|ž;src/main/resources/META-INF/PK æ|ž;#src/main/resources/META-INF/plexus/PK æ|ž;X»PÏ—fMETA-INF/plexus/components.xml}A E÷&Þ¡€^ a£™Ô±%C`jâí¥”"5Æåyó'ùÃHÖ“CÇ""«ó©ë†ŠbÎ-) ¡@…I‚‡qFiá‰NV1a-/{ú¬ŽÅ¬Sß ï°˜"l¨ZÚzƒ6krÿž­¦¼nUÍÓ¯‚O±‹ ŽuÆ"rÆé¥<aˆ‹O§¿•²G¤ÉëdM,£¾PK æ|ž;]IÜQŒ©.org/apache/maven/component/api/Component.class;õo×>f]NvvvFÖôÔÏF MŸ¬Ä²DýœÄ¼týà’¢Ì¼tkF®àüÒ¢äT·ÌœTF>çüÜ‚ü¼Ô¼=RFü¢týÄ‚ÄäŒTýÜIJÔ<ýd˜  p¦>\=#ƒÂpÿ¤¬Ôä6FF&`da:ŠÄb`’L lPK æ|ž;õ¸Wè6org/apache/maven/component/impl/DefaultComponent.class•ÁNƒ@†ÿ-*V[±õîšÔ5^5^jLLˆjz_`¥ÛÀBú\z2ñàøPÆ¡Åjz0ñ2ÿÌ?ûíÌîÇçÛ; ŒqäÀÄA®CCëRiU^1ÞhÆ`N²H2ô|¥å]•²xABŽëg¡Hf¢Puݘf9WO ç~VÄ\ä"œKžŠ¥Ô<ÌÒ<ÓR—\¥y¯壨’ròí^0´cYÞF oä/ÄRðDè˜OËBé˜ÚÎ4«ŠPÞ¨zÎp›?­‰.,Ø v´n2œýw †þÏèû`!C²¼?n¹âÇô«&è)Z¤´ÅUœ”‘¶O^Á^VíŠÖÚ„C±Ûä»”ò=ì7𸠷õ¼…:¿PcƒöV§ú_PK æ|ž;Cw)òþpom.xml…TQo›0~Gâ?Ü¢=´UÀé´‡i£TYÛhh]"•tUì·`3Û”FÓþûζvÚòùî»ïûîLtþ\ðĵJžNÃɸÌ2?Ý.gÁ‡Ñyì{¾½ ß»—†3° ì†Ã´¢~Rµ¶ Õfª–ŒZƒ£i:;OÓ$Ã]²ü²¸]ÂÝôæf:_&W),nàb1¿L–ÉbާLç÷¾÷5™_Ž£I؆?WÚÑGŽÂ9ÈÙ`oúþn/Ú©˜Šgb-2”%óšær…;/ÝZT\—¸1¤ÇpJaÛå1¾÷BSè{A°{•V<³±³>*ãE·ñûpN"òGl7¢(ת®ãdú!•ô‰ËPàæ› e<̘ŽHŸ×QmÅšfÏn_"2´ Ýû'áiDžöñ[<ÒuÆaÇŽÏ~>XñJ´Æ=¶o5¯”øN·]c‚Å-ã ÷Á·µ.b·â¸‡äíÏÅ_…пˆŠˆ»ìÉ_Ðù'“özU‹‚hU댛Cß>´´Ú4ÎÇu|d™5à £q¥ÊÿŽ(° ¼šetFNN^KÚÇ<É ¢ÿ¡îàK|ûûBóš–¸‡€éüíÄ%Ø/îoPK æ|ž;•£‚'Zf;src/main/java/org/apache/maven/component/api/Component.java+HLÎNLOUÈ/J×K,HLÎHÕËM,KÍÓKÎÏ-ÈÏKÍ+ gZórñr”&åd&+d敤¥%&§*8ÔðrUƒ(ApIQf^ºBzj‰gІ&X_-/PK æ|ž;HE54†ÚCsrc/main/java/org/apache/maven/component/impl/DefaultComponent.java}L;!íI¸Ãd+µà[jcí FvD"¿À°ÍÆ» ¢–¾bæåýꂘ„úNÊãJAéèS XYŸÜ,…ÄÌÿ¢˜¬:¼³©^Õ –'ºau|üæ O’o¬ÀO”bëEhø”/œm0`ˆÏËn?¬m¼ŽL\s€iëÓ<¬g_içPK æ|ž;X»PÏ—f1src/main/resources/META-INF/plexus/components.xml}A E÷&Þ¡€^ a£™Ô±%C`jâí¥”"5Æåyó'ùÃHÖ“CÇ""«ó©ë†ŠbÎ-) ¡@…I‚‡qFiá‰NV1a-/{ú¬ŽÅ¬Sß ï°˜"l¨ZÚzƒ6krÿž­¦¼nUÍÓ¯‚O±‹ ŽuÆ"rÆé¥<aˆ‹O§¿•²G¤ÉëdM,£¾PK ç|ž;META-INF/maven/PK ç|ž;.META-INF/maven/org.apache.maven.its.shade.cdr/PK ç|ž;3META-INF/maven/org.apache.maven.its.shade.cdr/comp/PK ð{ž;Cw)òþ:META-INF/maven/org.apache.maven.its.shade.cdr/comp/pom.xml…TQo›0~Gâ?Ü¢=´UÀé´‡i£TYÛhh]"•tUì·`3Û”FÓþûζvÚòùî»ïûîLtþ\ðĵJžNÃɸÌ2?Ý.gÁ‡Ñyì{¾½ ß»—†3° ì†Ã´¢~Rµ¶ Õfª–ŒZƒ£i:;OÓ$Ã]²ü²¸]ÂÝôæf:_&W),nàb1¿L–ÉbާLç÷¾÷5™_Ž£I؆?WÚÑGŽÂ9ÈÙ`oúþn/Ú©˜Šgb-2”%óšær…;/ÝZT\—¸1¤ÇpJaÛå1¾÷BSè{A°{•V<³±³>*ãE·ñûpN"òGl7¢(ת®ãdú!•ô‰ËPàæ› e<̘ŽHŸ×QmÅšfÏn_"2´ Ýû'áiDžöñ[<ÒuÆaÇŽÏ~>XñJ´Æ=¶o5¯”øN·]c‚Å-ã ÷Á·µ.b·â¸‡äíÏÅ_…пˆŠˆ»ìÉ_Ðù'“özU‹‚hU댛Cß>´´Ú4ÎÇu|d™5à £q¥ÊÿŽ(° ¼šetFNN^KÚÇ<É ¢ÿ¡îàK|ûûBóš–¸‡€éüíÄ%Ø/îoPK ç|ž;ÜG/uzAMETA-INF/maven/org.apache.maven.its.shade.cdr/comp/pom.properties̱ ƒ0€á=w8p?¥ƒ‚S+¥C·BçkrÕ &á’ ¾½vüáãoîY¨²‡ÏOÚ8jռϼ±ƒÎ€½ ]?Ø®Ó Zcz­6–R Z­fI¿üðc’)“[×ÿC-XòŒÎ‹V$5|ÉÕ“º´f­PK ç|ž; íAMETA-INF/PK æ|ž;ÍÚfe{¤'META-INF/MANIFEST.MFPK æ|ž;íA¾META-INF/plexus/PK æ|ž;íAìorg/PK æ|ž; íAorg/apache/PK æ|ž;íA7org/apache/maven/PK æ|ž;íAforg/apache/maven/component/PK æ|ž;íAŸorg/apache/maven/component/api/PK æ|ž; íAÜorg/apache/maven/component/impl/PK æ|ž;íAsrc/PK æ|ž; íA<src/main/PK æ|ž;íAcsrc/main/java/PK æ|ž;íAsrc/main/java/org/PK æ|ž;íA¿src/main/java/org/apache/PK æ|ž;íAösrc/main/java/org/apache/maven/PK æ|ž;)íA3src/main/java/org/apache/maven/component/PK æ|ž;-íAzsrc/main/java/org/apache/maven/component/api/PK æ|ž;.íAÅsrc/main/java/org/apache/maven/component/impl/PK æ|ž;íAsrc/main/resources/PK æ|ž;íABsrc/main/resources/META-INF/PK æ|ž;#íA|src/main/resources/META-INF/plexus/PK æ|ž;X»PÏ—f¤½META-INF/plexus/components.xmlPK æ|ž;]IÜQŒ©.¤org/apache/maven/component/api/Component.classPK æ|ž;õ¸Wè6¤horg/apache/maven/component/impl/DefaultComponent.classPK æ|ž;Cw)òþ¤Öpom.xmlPK æ|ž;•£‚'Zf;¤í src/main/java/org/apache/maven/component/api/Component.javaPK æ|ž;HE54†ÚC¤  src/main/java/org/apache/maven/component/impl/DefaultComponent.javaPK æ|ž;X»PÏ—f1¤‡ src/main/resources/META-INF/plexus/components.xmlPK ç|ž;íAm META-INF/maven/PK ç|ž;.íAš META-INF/maven/org.apache.maven.its.shade.cdr/PK ç|ž;3íAæ META-INF/maven/org.apache.maven.its.shade.cdr/comp/PK ð{ž;Cw)òþ:¤7META-INF/maven/org.apache.maven.its.shade.cdr/comp/pom.xmlPK ç|ž;ÜG/uzA¤META-INF/maven/org.apache.maven.its.shade.cdr/comp/pom.propertiesPK!!ó U././@LongLink0000644000000000000000000000017212236137670011651 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/component-descriptor-relocation/repo/org/apache/maven/its/shade/cdr/comp/0.1/comp-0.1.pommaven-shade-plugin-1.7.1/src/it/component-descriptor-relocation/repo/org/apache/maven/its/shade/cdr/0000664000175000017500000000277611316677641033024 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.cdr comp 0.1 jar maven-core-it file:///${basedir}/repo . pom.xml src/** src/main/resources maven-shade-plugin-1.7.1/src/it/no-signature-files/0000775000175000017500000000000012236137667021471 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/xml-transformer-ignores-dtd/0000775000175000017500000000000012236137667023333 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/xml-transformer-ignores-dtd/src/0000775000175000017500000000000012236137667024122 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/xml-transformer-ignores-dtd/src/main/0000775000175000017500000000000012236137667025046 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/xml-transformer-ignores-dtd/src/main/resources/0000775000175000017500000000000012236137667027060 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/xml-transformer-ignores-dtd/src/main/resources/test.xml0000664000175000017500000000043111324724710030543 0ustar ebourgebourg maven-shade-plugin-1.7.1/src/it/xml-transformer-ignores-dtd/verify.bsh0000664000175000017500000000220211727627314025326 0ustar ebourgebourg/* * 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.*; import java.util.jar.*; String[] wanted = { "test.xml", }; JarFile jarFile = new JarFile( new File( basedir, "target/test-1.0.jar" ) ); for ( String path : wanted ) { if ( jarFile.getEntry( path ) == null ) { throw new IllegalStateException( "wanted path is missing: " + path ); } } jarFile.close(); maven-shade-plugin-1.7.1/src/it/xml-transformer-ignores-dtd/pom.xml0000664000175000017500000000374111324724710024641 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.xartid test 1.0 jar MSHADE-59 Test that XmlAppendingResourceTransformer ignores DTD by default to avoid potential problematic network access. org.apache.maven.plugins maven-shade-plugin @project.version@ attach-shade package shade false test.xml maven-shade-plugin-1.7.1/src/it/reloc-includes-excludes/0000775000175000017500000000000012236137667022500 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/reloc-includes-excludes/verify.bsh0000664000175000017500000000307211727627314024501 0ustar ebourgebourg/* * 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.*; import java.util.jar.*; String[] wanted = { "a/ResultPrinter.class", "junit/textui/TestRunner.class", "b/Test.class", "b/TestCase.class", "junit/framework/Assert.class", }; String[] unwanted = { "junit/textui/ResultPrinter.class", "junit/framework/Test.class", "junit/framework/TestCase.class", }; JarFile jarFile = new JarFile( new File( basedir, "target/test-1.0.jar" ) ); for ( String path : wanted ) { if ( jarFile.getEntry( path ) == null ) { throw new IllegalStateException( "wanted path is missing: " + path ); } } for ( String path : unwanted ) { if ( jarFile.getEntry( path ) != null ) { throw new IllegalStateException( "unwanted path is present: " + path ); } } jarFile.close(); maven-shade-plugin-1.7.1/src/it/reloc-includes-excludes/pom.xml0000664000175000017500000000470511427274340024012 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.rie test 1.0 jar MSHADE-74 Test handling of inclusions/exclusions for relocations. junit junit 3.8.2 org.apache.maven.plugins maven-shade-plugin @project.version@ attach-shade package shade false junit.textui a junit.textui.TestRunner junit.framework b junit.framework.Test* maven-shade-plugin-1.7.1/src/it/manifest-retained/0000775000175000017500000000000012236137667021355 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/manifest-retained/verify.bsh0000664000175000017500000000244211727627314023356 0ustar ebourgebourg/* * 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.*; import java.util.jar.*; JarFile jarFile = new JarFile( new File( basedir, "target/test-1.0-shaded.jar" ) ); Manifest mf = jarFile.getManifest(); jarFile.close(); if ( !"PASSED".equals( mf.getMainAttributes().getValue( "Test-Entry" ) ) ) { throw new IllegalStateException( "MANIFEST.MF is incomplete" ); } if ( !"org.apache.maven.Main".equals( mf.getMainAttributes().getValue( "Main-Class" ) ) ) { throw new IllegalStateException( "MANIFEST.MF is incomplete" ); } return true; maven-shade-plugin-1.7.1/src/it/manifest-retained/pom.xml0000664000175000017500000000651711316176737022702 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.mr test 1.0 jar MSHADE-20 Test that existing manifest entries are retained upon shading. org.apache.maven.plugins maven-shade-plugin @project.version@ org.apache.maven.plugins maven-compiler-plugin 2.0.2 org.apache.maven.plugins maven-install-plugin 2.2 org.apache.maven.plugins maven-jar-plugin 2.2 org.apache.maven.Main PASSED org.apache.maven.plugins maven-resources-plugin 2.2 org.apache.maven.plugins maven-shade-plugin @project.version@ attach-shade package shade true shaded org.apache.maven.plugins maven-surefire-plugin 2.3.1 maven-shade-plugin-1.7.1/src/it/rerun-without-reloc/0000775000175000017500000000000012236137667021714 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/rerun-without-reloc/src/0000775000175000017500000000000012236137667022503 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/rerun-without-reloc/src/main/0000775000175000017500000000000012236137667023427 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/rerun-without-reloc/src/main/java/0000775000175000017500000000000012236137667024350 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/rerun-without-reloc/src/main/java/org/0000775000175000017500000000000012236137667025137 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/rerun-without-reloc/src/main/java/org/MyInterface.java0000664000175000017500000000015611131476146030201 0ustar ebourgebourgpackage org; /* * NOTE: The project's main artifact must not be empty! */ public interface MyInterface { } maven-shade-plugin-1.7.1/src/it/rerun-without-reloc/src/main/resources/0000775000175000017500000000000012236137667025441 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/rerun-without-reloc/src/main/resources/some-ordinary-resource.txt0000664000175000017500000000000011131476146032574 0ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/rerun-without-reloc/invoker.properties0000664000175000017500000000015611131476146025500 0ustar ebourgebourg# NOTE: It's the essential part of the test to re-run the package phase invoker.goals = clean package package maven-shade-plugin-1.7.1/src/it/rerun-without-reloc/pom.xml0000664000175000017500000000700711131476146023224 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.rrwor test 0.1 jar MSHADE-30 Test that re-running the package phase without any code changes in between doesn't cause shading to crash. The potential issue was that the first run produced the shaded artifact and that this artifact survived unchanged until shading got executed the second time, thereby re-shading all classes that were included during the first run. org.apache.maven.plugins maven-compiler-plugin 2.0.2 org.apache.maven.plugins maven-compiler-plugin 2.0.2 5000 org.apache.maven.plugins maven-install-plugin 2.2 org.apache.maven.plugins maven-jar-plugin 2.1 false org.apache.maven.plugins maven-resources-plugin 2.2 org.apache.maven.plugins maven-shade-plugin @project.version@ shade package shade false org.apache.maven.plugins maven-surefire-plugin 2.3.1 maven-shade-plugin-1.7.1/src/it/dep-reduced-pom-relocated-result/0000775000175000017500000000000012236137667024204 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/dep-reduced-pom-relocated-result/child/0000775000175000017500000000000012236137667025267 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/dep-reduced-pom-relocated-result/child/pom.xml0000664000175000017500000000504311756543474026611 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.drpwlp parent 1.0 org.apache.maven.its.shade.drpwlp child 1.0 jar MSHADE-66 Test that creation of the dependency reduced POM succeeds if the POM inherits from a parent that is only locally available. In other words, the parent can only be resolved by following the relativePath in the POM which demands for the dependency reduced POM to reside in the original project directory. junit junit 3.8.2 org.apache.maven.plugins maven-shade-plugin attach-shade package shade false true target/drp.xml maven-shade-plugin-1.7.1/src/it/dep-reduced-pom-relocated-result/invoker.properties0000664000175000017500000000006611272041562027764 0ustar ebourgebourginvoker.goals = clean package invoker.project = child maven-shade-plugin-1.7.1/src/it/dep-reduced-pom-relocated-result/pom.xml0000664000175000017500000000537411272041562025515 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.drpwlp parent 1.0 pom MSHADE-66 Test that creation of the dependency reduced POM succeeds if the POM inherits from a parent that is only locally available. In other words, the parent can only be resolved by following the relativePath in the POM which demands for the dependency reduced POM to reside in the original project directory. child org.apache.maven.plugins maven-compiler-plugin 2.0.2 org.apache.maven.plugins maven-install-plugin 2.2 org.apache.maven.plugins maven-jar-plugin 2.1 org.apache.maven.plugins maven-resources-plugin 2.2 org.apache.maven.plugins maven-shade-plugin @project.version@ org.apache.maven.plugins maven-surefire-plugin 2.3.1 maven-shade-plugin-1.7.1/src/it/project-with-reactors-included/0000775000175000017500000000000012236137667024002 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/two/0000775000175000017500000000000012236137667024613 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/two/src/0000775000175000017500000000000012236137667025402 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/two/src/test/0000775000175000017500000000000012236137667026361 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/two/src/test/java/0000775000175000017500000000000012236137667027302 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/two/src/test/java/org/0000775000175000017500000000000012236137667030071 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/two/src/test/java/org/apache/0000775000175000017500000000000012236137667031312 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/two/src/test/java/org/apache/maven/0000775000175000017500000000000012236137667032420 5ustar ebourgebourg././@LongLink0000644000000000000000000000015312236137670011650 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/two/src/test/java/org/apache/maven/plugins/maven-shade-plugin-1.7.1/src/it/project-with-reactors-included/two/src/test/java/org/apache/maven/pl0000775000175000017500000000000012236137667032754 5ustar ebourgebourg././@LongLink0000644000000000000000000000016112236137670011647 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/two/src/test/java/org/apache/maven/plugins/shade/maven-shade-plugin-1.7.1/src/it/project-with-reactors-included/two/src/test/java/org/apache/maven/pl0000775000175000017500000000000012236137667032754 5ustar ebourgebourg././@LongLink0000644000000000000000000000016512236137670011653 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/two/src/test/java/org/apache/maven/plugins/shade/its/maven-shade-plugin-1.7.1/src/it/project-with-reactors-included/two/src/test/java/org/apache/maven/pl0000775000175000017500000000000012236137667032754 5ustar ebourgebourg././@LongLink0000644000000000000000000000017112236137670011650 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/two/src/test/java/org/apache/maven/plugins/shade/its/two/maven-shade-plugin-1.7.1/src/it/project-with-reactors-included/two/src/test/java/org/apache/maven/pl0000775000175000017500000000000012236137667032754 5ustar ebourgebourg././@LongLink0000644000000000000000000000020512236137670011646 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/two/src/test/java/org/apache/maven/plugins/shade/its/two/AppTest.javamaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/two/src/test/java/org/apache/maven/pl0000664000175000017500000000123211727627254032754 0ustar ebourgebourgpackage org.apache.maven.plugins.shade.its.two; import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; /** * Unit test for simple App. */ public class AppTest extends TestCase { /** * Create the test case * * @param testName name of the test case */ public AppTest( String testName ) { super( testName ); } /** * @return the suite of tests being tested */ public static Test suite() { return new TestSuite( AppTest.class ); } /** * Rigourous Test :-) */ public void testApp() { assertTrue( true ); } } maven-shade-plugin-1.7.1/src/it/project-with-reactors-included/two/src/main/0000775000175000017500000000000012236137667026326 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/two/src/main/java/0000775000175000017500000000000012236137667027247 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/two/src/main/java/org/0000775000175000017500000000000012236137667030036 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/two/src/main/java/org/apache/0000775000175000017500000000000012236137667031257 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/two/src/main/java/org/apache/maven/0000775000175000017500000000000012236137667032365 5ustar ebourgebourg././@LongLink0000644000000000000000000000015312236137670011650 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/two/src/main/java/org/apache/maven/plugins/maven-shade-plugin-1.7.1/src/it/project-with-reactors-included/two/src/main/java/org/apache/maven/pl0000775000175000017500000000000012236137667032721 5ustar ebourgebourg././@LongLink0000644000000000000000000000016112236137670011647 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/two/src/main/java/org/apache/maven/plugins/shade/maven-shade-plugin-1.7.1/src/it/project-with-reactors-included/two/src/main/java/org/apache/maven/pl0000775000175000017500000000000012236137667032721 5ustar ebourgebourg././@LongLink0000644000000000000000000000016512236137670011653 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/two/src/main/java/org/apache/maven/plugins/shade/its/maven-shade-plugin-1.7.1/src/it/project-with-reactors-included/two/src/main/java/org/apache/maven/pl0000775000175000017500000000000012236137667032721 5ustar ebourgebourg././@LongLink0000644000000000000000000000017112236137670011650 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/two/src/main/java/org/apache/maven/plugins/shade/its/two/maven-shade-plugin-1.7.1/src/it/project-with-reactors-included/two/src/main/java/org/apache/maven/pl0000775000175000017500000000000012236137667032721 5ustar ebourgebourg././@LongLink0000644000000000000000000000020112236137670011642 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/two/src/main/java/org/apache/maven/plugins/shade/its/two/App.javamaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/two/src/main/java/org/apache/maven/pl0000664000175000017500000000031111727627254032716 0ustar ebourgebourgpackage org.apache.maven.plugins.shade.its.two; /** * Hello world! * */ public class App { public static void main( String[] args ) { System.out.println( "Hello World!" ); } } maven-shade-plugin-1.7.1/src/it/project-with-reactors-included/two/pom.xml0000664000175000017500000000443011727627314026126 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.pp reactors-included 1.0-SNAPSHOT two two org.apache.maven.its.shade.pp one junit junit test org.apache.maven.plugins maven-shade-plugin @project.version@ attach-shade package shade false org.apache.maven.its.shade.pp:one maven-shade-plugin-1.7.1/src/it/project-with-reactors-included/invoker.properties0000664000175000017500000000003411727627254027572 0ustar ebourgebourginvoker.goals=clean package maven-shade-plugin-1.7.1/src/it/project-with-reactors-included/verify.bsh0000664000175000017500000000245311727627314026005 0ustar ebourgebourg/* * 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.*; import java.util.jar.*; String[] wanted = { "org/apache/maven/plugins/shade/its/one/AppOne.class", "org/apache/maven/plugins/shade/its/one/App.class", "org/apache/maven/plugins/shade/its/two/App.class" }; JarFile jarFile = new JarFile( new File( basedir, "two/target/two-1.0-SNAPSHOT.jar" ) ); for ( String path : wanted ) { if ( jarFile.getEntry( path ) == null ) { throw new IllegalStateException( "wanted path is missing: " + path ); } } jarFile.close();maven-shade-plugin-1.7.1/src/it/project-with-reactors-included/pom.xml0000664000175000017500000000371611727627254025326 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.pp reactors-included 1.0-SNAPSHOT pom UTF-8 MSHADE-75 junit junit 4.10 test org.apache.maven.its.shade.pp one ${project.version} one two maven-compiler-plugin 1.5 1.5 maven-shade-plugin-1.7.1/src/it/project-with-reactors-included/one/0000775000175000017500000000000012236137667024563 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/one/src/0000775000175000017500000000000012236137667025352 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/one/src/test/0000775000175000017500000000000012236137667026331 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/one/src/test/java/0000775000175000017500000000000012236137667027252 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/one/src/test/java/org/0000775000175000017500000000000012236137667030041 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/one/src/test/java/org/apache/0000775000175000017500000000000012236137667031262 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/one/src/test/java/org/apache/maven/0000775000175000017500000000000012236137667032370 5ustar ebourgebourg././@LongLink0000644000000000000000000000015312236137670011650 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/one/src/test/java/org/apache/maven/plugins/maven-shade-plugin-1.7.1/src/it/project-with-reactors-included/one/src/test/java/org/apache/maven/pl0000775000175000017500000000000012236137667032724 5ustar ebourgebourg././@LongLink0000644000000000000000000000016112236137670011647 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/one/src/test/java/org/apache/maven/plugins/shade/maven-shade-plugin-1.7.1/src/it/project-with-reactors-included/one/src/test/java/org/apache/maven/pl0000775000175000017500000000000012236137667032724 5ustar ebourgebourg././@LongLink0000644000000000000000000000016512236137670011653 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/one/src/test/java/org/apache/maven/plugins/shade/its/maven-shade-plugin-1.7.1/src/it/project-with-reactors-included/one/src/test/java/org/apache/maven/pl0000775000175000017500000000000012236137667032724 5ustar ebourgebourg././@LongLink0000644000000000000000000000017112236137670011650 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/one/src/test/java/org/apache/maven/plugins/shade/its/one/maven-shade-plugin-1.7.1/src/it/project-with-reactors-included/one/src/test/java/org/apache/maven/pl0000775000175000017500000000000012236137667032724 5ustar ebourgebourg././@LongLink0000644000000000000000000000020512236137670011646 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/one/src/test/java/org/apache/maven/plugins/shade/its/one/AppTest.javamaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/one/src/test/java/org/apache/maven/pl0000664000175000017500000000123211727627254032724 0ustar ebourgebourgpackage org.apache.maven.plugins.shade.its.one; import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; /** * Unit test for simple App. */ public class AppTest extends TestCase { /** * Create the test case * * @param testName name of the test case */ public AppTest( String testName ) { super( testName ); } /** * @return the suite of tests being tested */ public static Test suite() { return new TestSuite( AppTest.class ); } /** * Rigourous Test :-) */ public void testApp() { assertTrue( true ); } } maven-shade-plugin-1.7.1/src/it/project-with-reactors-included/one/src/main/0000775000175000017500000000000012236137667026276 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/one/src/main/java/0000775000175000017500000000000012236137667027217 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/one/src/main/java/org/0000775000175000017500000000000012236137667030006 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/one/src/main/java/org/apache/0000775000175000017500000000000012236137667031227 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/one/src/main/java/org/apache/maven/0000775000175000017500000000000012236137667032335 5ustar ebourgebourg././@LongLink0000644000000000000000000000015312236137670011650 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/one/src/main/java/org/apache/maven/plugins/maven-shade-plugin-1.7.1/src/it/project-with-reactors-included/one/src/main/java/org/apache/maven/pl0000775000175000017500000000000012236137667032671 5ustar ebourgebourg././@LongLink0000644000000000000000000000016112236137670011647 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/one/src/main/java/org/apache/maven/plugins/shade/maven-shade-plugin-1.7.1/src/it/project-with-reactors-included/one/src/main/java/org/apache/maven/pl0000775000175000017500000000000012236137667032671 5ustar ebourgebourg././@LongLink0000644000000000000000000000016512236137670011653 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/one/src/main/java/org/apache/maven/plugins/shade/its/maven-shade-plugin-1.7.1/src/it/project-with-reactors-included/one/src/main/java/org/apache/maven/pl0000775000175000017500000000000012236137667032671 5ustar ebourgebourg././@LongLink0000644000000000000000000000017112236137670011650 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/one/src/main/java/org/apache/maven/plugins/shade/its/one/maven-shade-plugin-1.7.1/src/it/project-with-reactors-included/one/src/main/java/org/apache/maven/pl0000775000175000017500000000000012236137667032671 5ustar ebourgebourg././@LongLink0000644000000000000000000000020112236137670011642 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/one/src/main/java/org/apache/maven/plugins/shade/its/one/App.javamaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/one/src/main/java/org/apache/maven/pl0000664000175000017500000000031111727627254032666 0ustar ebourgebourgpackage org.apache.maven.plugins.shade.its.one; /** * Hello world! * */ public class App { public static void main( String[] args ) { System.out.println( "Hello World!" ); } } ././@LongLink0000644000000000000000000000020412236137670011645 Lustar rootrootmaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/one/src/main/java/org/apache/maven/plugins/shade/its/one/AppOne.javamaven-shade-plugin-1.7.1/src/it/project-with-reactors-included/one/src/main/java/org/apache/maven/pl0000664000175000017500000000031311727627254032670 0ustar ebourgebourgpackage org.apache.maven.plugins.shade.its.one; /** * Hello world! * */ public class AppOne { public static void main( String[] args ) { System.out.println( "Hello World!" ); } } maven-shade-plugin-1.7.1/src/it/project-with-reactors-included/one/pom.xml0000664000175000017500000000263211727627314026100 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.pp reactors-included 1.0-SNAPSHOT one one junit junit test maven-shade-plugin-1.7.1/src/it/finalNameBuild-attached/0000775000175000017500000000000012236137667022403 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/finalNameBuild-attached/src/0000775000175000017500000000000012236137667023172 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/finalNameBuild-attached/src/main/0000775000175000017500000000000012236137667024116 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/finalNameBuild-attached/src/main/resources/0000775000175000017500000000000012236137667026130 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/finalNameBuild-attached/src/main/resources/META-INF/0000775000175000017500000000000012236137667027270 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/finalNameBuild-attached/src/main/resources/META-INF/ejb-jar.xml0000664000175000017500000000004711251463631031312 0ustar ebourgebourg maven-shade-plugin-1.7.1/src/it/finalNameBuild-attached/verify.bsh0000664000175000017500000000463711727627314024414 0ustar ebourgebourg/* * 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.*; import java.util.*; import java.util.regex.*; try { // check for primary artifact, which is the unshaded one! File file = new File( basedir, "target/MyFinalName.jar" ); System.out.println( "file with finalName : " + file ); if ( !file.exists() ) { System.out.println( "file with finalName does not exist: " + file ); return false; } // check for the shaded jar File shaded = new File( basedir, "target/finalNameBuildAttached-1.0-shaded.jar" ); System.out.println( "shaded file with name : " + shaded ); if ( !shaded.exists() ) { System.out.println( "shaded file does not exist: " + shaded ); return false; } // check for the artifact in the repo (unshaded) File rfile = new File( localRepositoryPath , "org/apache/maven/its/shade/fnba/finalNameBuildAttached/1.0/finalNameBuildAttached-1.0.jar" ); System.out.println( "Checking for existence in repo: " + rfile ); if ( !rfile.isFile() ) { throw new FileNotFoundException( "Missing: " + rfile.getAbsolutePath() ); } // check for the shaded artifact in the repo (shaded as attached artifact) File afile = new File( localRepositoryPath , "org/apache/maven/its/shade/fnba/finalNameBuildAttached/1.0/finalNameBuildAttached-1.0-shaded.jar" ); System.out.println( "Checking for existence in repo: " + afile ); if ( !afile.isFile() ) { throw new FileNotFoundException( "Missing: " + afile.getAbsolutePath() ); } } catch( Throwable t ) { t.printStackTrace(); return false; } return true; maven-shade-plugin-1.7.1/src/it/finalNameBuild-attached/pom.xml0000664000175000017500000000422711251463631023712 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.fnba finalNameBuildAttached 1.0 MSHADE-54 :: Shaded Artifact Producer Test that attached artifact has the correct finalName if the finalName is set in the build section and artifact attaching is activated. MyFinalName org.apache.maven.plugins maven-shade-plugin @project.version@ attach-shaded-artifact package shade true shaded false maven-shade-plugin-1.7.1/src/it/finalNameBuild-attached/setup.bsh0000664000175000017500000000203711727627314024240 0ustar ebourgebourg/* * 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.*; import java.util.*; import org.codehaus.plexus.util.*; File file = new File( localRepositoryPath, "org/apache/maven/its/shade/fnba" ); System.out.println( "Deleting " + file ); FileUtils.deleteDirectory( file ); return true; maven-shade-plugin-1.7.1/src/it/empty-apache-notice-transform/0000775000175000017500000000000012236137667023623 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/it/empty-apache-notice-transform/pom.xml0000664000175000017500000000457711603600377025143 0ustar ebourgebourg 4.0.0 org.apache.maven.its.shade.eant empty-apache-notice-transform 0.1 jar MSHADE-101 Test that NullPointerException is not thrown when projectName parameter is unset. org.apache.velocity velocity 1.7 junit junit 3.8.1 test org.apache.maven.plugins maven-shade-plugin @project.version@ package shade maven-shade-plugin-1.7.1/src/site/0000775000175000017500000000000012236137667016306 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/site/site.xml0000664000175000017500000000352511727670773020005 0ustar ebourgebourg maven-shade-plugin-1.7.1/src/site/fml/0000775000175000017500000000000012236137667017064 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/site/fml/faq.fml0000664000175000017500000000327711604200175020323 0ustar ebourgebourg Why Does My Second Shade Include The Results Of The First Execution?

By default, shade replaces with original jar with the result of shading. So, when a pom.xml includes two shades, the second shade execution will (by default) start from the result of the first shade execution.

If you're looking for two independent shades then read in shade:shade about ways choose a different name for your first shade.

maven-shade-plugin-1.7.1/src/site/apt/0000775000175000017500000000000012236137667017072 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/site/apt/usage.apt.vm0000664000175000017500000000647011603404253021315 0ustar ebourgebourg ------ Usage ------ Mauro Talevi ------ 2008-07-21 ------ ~~ 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. Usage * Creating a Shaded JAR The goals for the Shade Plugin are bound to the <<>> phase in the build lifecycle. +----- mvn package +----- * Configuring Your Shade Plugin +----- ... org.apache.maven.plugins maven-shade-plugin ${currentVersion} package shade ... +----- * Resource Transformers *-----------------------------------------+--------------------------------------+ | ApacheLicenseResourceTransformer | Prevents license duplication | *-----------------------------------------+--------------------------------------+ | ApacheNoticeResourceTransformer | Prepares merged NOTICE | *-----------------------------------------+--------------------------------------+ | AppendingTransformer | Adds content to a resource | *-----------------------------------------+--------------------------------------+ | ComponentsXmlResourceTransformer | Aggregates Plexus <<>>| *-----------------------------------------+--------------------------------------+ | DontIncludeResourceTransformer | Prevents inclusion of matching resources | *-----------------------------------------+--------------------------------------+ | IncludeResourceTransformer | Adds files from the project | *-----------------------------------------+--------------------------------------+ | ManifestResourceTransformer | Sets entries in the <<>> | *-----------------------------------------+--------------------------------------+ | ServicesResourceTransformer | Merges <<>> resources | *-----------------------------------------+--------------------------------------+ | XmlAppendingTransformer | Adds XML content to an XML resource | *-----------------------------------------+--------------------------------------+ Transformers in <<>> For more information, see {{{./examples/resource-transformers.html}samples}}. maven-shade-plugin-1.7.1/src/site/apt/examples/0000775000175000017500000000000012236137667020710 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/site/apt/examples/attached-artifact.apt.vm0000664000175000017500000000372311170677577025421 0ustar ebourgebourg ------ Attaching the Shaded Artifact ------ Mauro Talevi ------ 2008-07-21 ------ ~~ 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. Attaching the Shaded Artifact By default, the plugin will replace the project's main artifact with the shaded artifact. If both the original and the shaded artifact should be installed/deployed to the repository, one can configure the plugin to attach the shaded artifact as a secondary artifact: +----- ... org.apache.maven.plugins maven-shade-plugin ${project.version} package shade true jackofall ... +----- The shaded artifact is distinguished from the main artifact by means of the additional classifier. maven-shade-plugin-1.7.1/src/site/apt/examples/executable-jar.apt.vm0000664000175000017500000000571711170677577024751 0ustar ebourgebourg ------ Executable JAR ------ Mauro Talevi ------ 2008-07-21 ------ ~~ 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. Executable JAR To create an executable uber JAR, one simply needs to set the main class that serves as the application entry point: +----- ... org.apache.maven.plugins maven-shade-plugin ${project.version} package shade org.sonatype.haven.HavenCli ... +----- This snippet configures a special resource transformer which sets the <<>> entry in the <<>> of the shaded JAR. Other entries can be added to the <<>> as well via key-value pairs in the <<<\>>> section: +----- ... org.apache.maven.plugins maven-shade-plugin ${project.version} package shade org.sonatype.haven.ExodusCli 123 ... +----- maven-shade-plugin-1.7.1/src/site/apt/examples/class-relocation.apt.vm0000664000175000017500000000504211170677577025307 0ustar ebourgebourg ------ Relocating Classes ------ Mauro Talevi ------ 2008-07-21 ------ ~~ 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. Relocating Classes If the uber JAR is reused as a dependency of some other project, directly including classes from the artifact's dependencies in the uber JAR can cause class loading conflicts due to duplicate classes on the class path. To address this issue, one can relocate the classes which get included in the shaded artifact in order to create a private copy of their bytecode: +----- ... org.apache.maven.plugins maven-shade-plugin ${project.version} package shade org.codehaus.plexus.util org.shaded.plexus.util org.codehaus.plexus.util.xml.Xpp3Dom org.codehaus.plexus.util.xml.pull.* ... +----- This instructs the plugin to move classes from the package <<>> and its subpackages into the package <<>> by moving the corresponding JAR file entries and rewritting the affected bytecode. The class <<>> and some others will remain in their original package. maven-shade-plugin-1.7.1/src/site/apt/examples/resource-transformers.apt.vm0000664000175000017500000003474411604200574026407 0ustar ebourgebourg ------ Resource Transformers ------ Mauro Talevi ------ 2008-07-21 ------ ~~ 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. Resource Transformers Aggregating classes/resources from several artifacts into one uber JAR is straight forward as long as there is no overlap. Otherwise, some kind of logic to merge resources from several JARs is required. This is where resource transformers kick in. *-----------------------------------------+--------------------------------------+ | {{ApacheLicenseResourceTransformer}} | Prevents license duplication | *-----------------------------------------+--------------------------------------+ | {{ApacheNoticeResourceTransformer}} | Prepares merged NOTICE | *-----------------------------------------+--------------------------------------+ | {{AppendingTransformer}} | Adds content to a resource | *-----------------------------------------+--------------------------------------+ | {{ComponentsXmlResourceTransformer}} | Aggregates Plexus <<>>| *-----------------------------------------+--------------------------------------+ | {{DontIncludeResourceTransformer}} | Prevents inclusion of matching resources | *-----------------------------------------+--------------------------------------+ | {{IncludeResourceTransformer}} | Adds files from the project | *-----------------------------------------+--------------------------------------+ | {{ManifestResourceTransformer}} | Sets entries in the <<>> | *-----------------------------------------+--------------------------------------+ | {{ServicesResourceTransformer}} | Merges <<>> resources | *-----------------------------------------+--------------------------------------+ | {{XmlAppendingTransformer}} | Adds XML content to an XML resource | *-----------------------------------------+--------------------------------------+ Transformers in <<>> * Merging Plexus Component Descriptors with the {ComponentsXmlResourceTransformer} JARs for components targeting the Plexus IoC container contain a <<>> entry that declares the component and its requirements. If the uber JAR aggregates multiple Plexus components, a <<>> needs to be used to merge the XML descriptors: +----- ... org.apache.maven.plugins maven-shade-plugin ${project.version} package shade ... +----- Since plugin version 1.3, this resource transformer will also update the descriptor to account for relocation of component interfaces/implementations (if any). * Concatenating Service Entries with the {ServicesResourceTransformer} JAR files providing implementations of some interfaces often ship with a <<>> directory that maps interfaces to their implementation classes for lookup by the service locator. To merge multiple implementations of the same interface into one service entry, the <<>> can be used: +----- ... org.apache.maven.plugins maven-shade-plugin ${project.version} package shade ... +----- * Merging Content of Specific Files with {AppendingTransformer} and XmlAppendingTransformer Some jars contain additional resources (such as properties files) that have the same file name. To avoid overwriting, you can opt to merge them by appending their content into one file. One good example for this is when aggregating both the spring-context and plexus-spring jars. Both of them have the <<>> file which is used by Spring to handle XML schema namespaces. You can merge the contents of all the files with that specific name using the <<>> as shown below: +----- ... org.apache.maven.plugins maven-shade-plugin ${project.version} package shade META-INF/spring.handlers META-INF/spring.schemas ... +----- For XML files, you can use the <<<{XmlAppendingTransformer}>>> instead: +----- ... org.apache.maven.plugins maven-shade-plugin ${project.version} package shade META-INF/magic.xml ... +----- Since plugin version 1.3.1, the <<>> will by default not load DTDs, thereby avoiding network access. The potential downside of this mode is that external entities cannot be resolved which could fail the transformation, e.g. when using the Crimson XML parser as used in some JRE 1.4. If the transformed resource uses external entities, DTD resolution can either be turned back on or a plugin dependency on <<>> is added to the POM. * Excluding Resources with the {DontIncludeResourceTransformer} The <<>> allows resources to be excluded when their name ends in a given value. For example, the following sample excludes all resources ending in <<<.txt>>>. +----- ... org.apache.maven.plugins maven-shade-plugin ${project.version} package shade .txt ... +----- * Adding New Resources with the {IncludeResourceTransformer} The <<>> allows project files to be included in the package under a given name. For example, the following sample includes <<>> in the package as <<>> in the <<>> directory. +----- ... org.apache.maven.plugins maven-shade-plugin ${project.version} package shade META-INF/README README.txt ... +----- * Setting Manifest Entries with the {ManifestResourceTransformer} The <<>> allows existing entries in the <<>> to be replaced and new entries added. For example, the following sample sets * the <<>> entry to the value of the <<>> property, * the <<>> entry to the value of the <<>> property and * the <<>> entry to the value of the <<>> property. +----- ... org.apache.maven.plugins maven-shade-plugin ${project.version} package shade ${app.main.class} ${maven.compile.source} ${maven.compile.target} ... +----- * Licensing ** Preventing License Duplication with the {ApacheLicenseResourceTransformer} Some open source producers (including the {{{http://www.apache.org} Apache Software Foundation}}) include a copy of their license in the META-INF directory. These are conventionally named either <<>> or <<>>. When merging these dependencies, adding these resources may cause confusion. The <<>> ensures that duplicate licenses (named according to this convention) are not merged. For example, the following prevents the license from a <<>> dependency being merged in +----- ... org.apache.maven.plugins maven-shade-plugin ${project.version} package shade ... +----- ** Aggregating Notices with the {ApacheNoticeResourceTransformer} Some licenses (including the {{{http://www.apache.org/licenses/LICENSE-2.0.html} Apache License, Version 2}}) require that notices are preserved by downstream distributors. <<>> automates the assembly of an appropriate <<>>. For example, to simply merge in dependent notices: +----- ... org.apache.maven.plugins maven-shade-plugin ${project.version} package shade false ... +----- maven-shade-plugin-1.7.1/src/site/apt/examples/includes-excludes.apt.vm0000664000175000017500000001416311727616317025462 0ustar ebourgebourg ------ Selecting Contents for Uber JAR ------ Mauro Talevi ------ 2008-07-21 ------ ~~ 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. Selecting Contents for Uber JAR The POM snippet below shows how to control which project dependencies should be included/excluded in the uber JAR: +----- ... org.apache.maven.plugins maven-shade-plugin ${project.version} package shade classworlds:classworlds junit:junit jmock:* *:xml-apis org.apache.maven:lib:tests log4j:log4j:jar: ... +----- Of course, <<<\>>> can be used as well to specify a white list of artifacts. Artifacts are denoted by a composite idenitifer of the form :[[:]:]. Since plugin version 1.3, the wildcard characters '*' and '?' can be used to do glob-like pattern matching. For fine-grained control of which classes from the selected dependencies are included, artifact filters can be used: +----- ... org.apache.maven.plugins maven-shade-plugin ${project.version} package shade junit:junit junit/framework/** org/junit/** org/junit/experimental/** org/junit/runners/** *:* META-INF/*.SF META-INF/*.DSA META-INF/*.RSA ... +----- Here, Ant-like patterns are used to specify that from the dependency <<>> only certain classes/resources should be included in the uber JAR. The second filter demonstrates the use of wildcards for the artifact identity which was introduced in plugin version 1.3. It excludes all signature related files from every artifact, regardless of its group or artifact id. Besides user-specified filters, the plugin can also be configured to automatically remove all classes of dependencies that are not used by the project, thereby minimizing the resulting uber JAR: +----- ... org.apache.maven.plugins maven-shade-plugin ${project.version} package shade true ... +----- As of version 1.6, minimizeJar will respect classes that were specifically marked for inclusion in a filter. Note that specifying an include filter for classes in an artifact implicitly excludes all non-specified classes in that artifact. +----- ... org.apache.maven.plugins maven-shade-plugin ${project.version} package shade true log4j:log4j ** commons-logging:commons-logging ** ... +----- maven-shade-plugin-1.7.1/src/site/apt/examples/use-shader-other-impl.apt.vm0000664000175000017500000000550111727671022026146 0ustar ebourgebourg ------ Using an other Shader Implementation ------ Olivier Lamy ------ 2012-03-13 ------ ~~ 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. Using your own Shader implementation By default, the plugin provide a DefaultShader implementation but with version 1.6 you can use your own implementation. Create a standard Maven project with your implementation. +----- Dependency to Plexus annotations org.codehaus.plexus plexus-component-annotations 1.5.5 Create your Shader @Component( role = Shader.class, hint = "mock" ) public class MockShader implements Shader { // implement the interface here } // Use the plexus component metadata plugin in your job to generate Plexus metadata org.codehaus.plexus plexus-component-metadata 1.5.5 generate-metadata +----- Assuming your project has coordinate org.foo.bar:wine:1.0, you must add it as a dependency of the shade plugin. +----- ... org.apache.maven.plugins maven-shade-plugin ${project.version} org.foo.bar wine 1.0 package shade mock ... +----- Now the mojo will use your own implementation. maven-shade-plugin-1.7.1/src/site/apt/index.apt0000664000175000017500000000621111237275551020702 0ustar ebourgebourg ------ Introduction ------ Mauro Talevi ------ 2008-07-21 ------ ~~ 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. Maven Shade Plugin This plugin provides the capability to package the artifact in an uber-jar, including its dependencies and to - i.e. rename - the packages of some of the dependencies. * Goals Overview The Shade Plugin has a single goal: * {{{./shade-mojo.html}shade:shade}} is bound to the <<>> phase and is used to create a shaded jar. * Usage General instructions on how to use the Shade Plugin can be found on the {{{./usage.html}usage page}}. Some more specific use cases are described in the examples given below. Last but not least, users occasionally contribute additional examples, tips or errata to the {{{http://docs.codehaus.org/display/MAVENUSER/Shade+Plugin}plugin's wiki page}}. In case you still have questions regarding the plugin's usage, please feel free to contact the {{{./mail-lists.html}user mailing list}}. The posts to the mailing list are archived and could already contain the answer to your question as part of an older thread. Hence, it is also worth browsing/searching the {{{./mail-lists.html}mail archive}}. If you feel like the plugin is missing a feature or has a defect, you can fill a feature request or bug report in our {{{./issue-tracking.html}issue tracker}}. When creating a new issue, please provide a comprehensive description of your concern. Especially for fixing bugs it is crucial that the developers can reproduce your problem. For this reason, entire debug logs, POMs or most preferably little demo projects attached to the issue are very much appreciated. Of course, patches are welcome, too. Contributors can check out the project from our {{{./source-repository.html}source repository}} and will find supplementary information in the {{{http://maven.apache.org/guides/development/guide-helping.html}guide to helping with Maven}}. * Examples To provide you with better understanding on some usages of the Shade Plugin, you can take a look into the following examples: * {{{./examples/includes-excludes.html}Selecting Contents for Uber JAR}} * {{{./examples/class-relocation.html}Relocating Classes}} * {{{./examples/attached-artifact.html}Attaching the Shaded Artifact}} * {{{./examples/executable-jar.html}Executable JAR}} * {{{./examples/resource-transformers.html}Resource Transformers}} [] maven-shade-plugin-1.7.1/src/test/0000775000175000017500000000000012236137667016321 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/test/jars/0000775000175000017500000000000012236137667017260 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/test/jars/plexus-utils-1.4.1.jar0000664000175000017500000056035010671114213023063 0ustar ebourgebourgPK ­Nj6 META-INF/PK ¬Nj6(õÛh~META-INF/MANIFEST.MFóMÌËLK-.Ñ K-*ÎÌϳR0Ô3àår,JÎÈ,K-Bä¤V”+À$x¹œ‹RKRSt*­ “3R|ËRóx¹œJ3sJÀâYe‰yU•9¡]¯”lù¦zñæ¼\¼\PK ¥Nj6 licenses/PK ¦Nj6org/PK ¦Nj6 org/codehaus/PK ¦Nj6org/codehaus/plexus/PK ¦Nj6org/codehaus/plexus/util/PK ¦Nj6org/codehaus/plexus/util/cli/PK ¦Nj6#org/codehaus/plexus/util/cli/shell/PK ¦Nj6org/codehaus/plexus/util/dag/PK ¦Nj6'org/codehaus/plexus/util/interpolation/PK ¦Nj6'org/codehaus/plexus/util/introspection/PK ¦Nj6$org/codehaus/plexus/util/reflection/PK ¦Nj6org/codehaus/plexus/util/xml/PK ¦Nj6"org/codehaus/plexus/util/xml/pull/PK ¥Nj6ޱUA(licenses/extreme.indiana.edu.license.TXT”Qoâ8…ßó+îòÔJ:ÓÝ}™}J–BÂÆN;} Ä´Ö†9¡,ÿ~ÎMJ -«‘VUÛÛ÷œóÝkd]Ú¢.(¯í‹q­í$þíœÙ˜ß(.–¤šu·/œ¡Ø®LÝÏ»çmMM߯øñ¼°Ùœ}zîèjuM·_¿ÞžðI~RSPUÔjəָSŽ=/3¥m;g—»ŽŠº¤]kÈÖÔ6;·2ý›¥­ w uã6­O{Û=SãúÿÍ®#oÓ”vmWWð‰oÛØ®3%m]óbKµ1ÝwÏû6¦sS-5룛USbß®í¡+à’+Ëæ…—ŽPê¦8Ÿ<"¬Û–*Tã"'‚ëÜ $WUa7ÆËíg;áp4|åÆ.ù`ý£—ÿãƒ%‡ †ÊfµÛ˜º+ŽmºA¬8Úq¶¨ÚwØ}‹úc'ë÷1i¼5uù]vªÚzUíÎŽ»3>Ù5¤ÙÀ둊Õ?u³¯LùÄÅÑS¢‘f­·c-Úú:ê¥y1U³…øòÐWû<¬zvO®ž»nûýæf¿ßͰ0¶Ã±±)w7×ã‘çèÔ@T^»pîøTl·¦èy³ô›)Ûµ¦Z#nŸ\€>µ»²®ü²-¬×lÑv·)ªêXèÿÐ×űGçéÀø0ê.,œeá¶1wŒ- _UŒOà m®-fˆ7Mgލ[u(UÒ ï-àñ oå íøÎÖÃímù gL“‹ïd[™¢åiÇô £¿hü9¦Å{z³Äíàtü-t“Çp¿õ2ÉÓvZ×C÷?„õ>§â«yyô`_Ϥ"•NôC Âó"Kïe$" ŸG$~IüXdB)¬¤Éù"–"òp* -…·sÆy$“©Ow¹¦$Õ˹Ô8¡SŸôLÑû1J'Þ\dá ƒ;KýØ+N¤N Fˆ´2-Ã<2ZäÙ"U‚Øn$Ur.¢±'(’¸‰&5 ⸠r=K3˜ ÓÅc&§3M³4ŽD¦úZa!Ñ™„alóî,w±t‘:’™5‡{ ÁncŸÔB„’ÄhAö裮‡šJüc) æÁI¯~äÃ<sN**¿SZê\ š¦iÔV"»—¡PQœ*fG¹>tÀÂ\à° w¹’=B™h‘eùBË4¹Fü@Ê( rî%³N“>*x¥Ù#e}+|ïa&ð¨’TÀˆ…údk >ÉH‰˜Ær*’P°›”«Sk"(à¹|ÅRšÂtjA!áÅF°ùBÁ‚g)Hžâm®›–ŠãÅ"qò‹/D$ß},•¸¶,2†`ˆ.H®•1°<ÉÊ”åór® cK¦°Mñ8^Æ¢÷9à3XR‘,ð/™²Œ©MP2c*÷d3d#P¡XRfD@QŠ‚K ÞW”2™d„-i:A~亢¹¹ YöÉ'_çTxñLN)ª$ÓŒ¦à3e‚&Êz?%˜ ÌbM˜?ÐGŠvˆØÄgPI–Ø„EHÉ’ÌÑ\4úG*¸–¤téEc²œJÅT©(Ì9OCÖ’ŠK¨üQÆe¬”4FE5b`ZXÇó´”,äÆrE…( Åx>Ư1TIp4 ó<˜ÅŒ¸ØxPCÈ?†õ‚â½ð‘†°ˆAbh‰ºnC>ÌP]»„œÎ36§yB}™{˜5“tŒûbÒ7 ¦ç]$-ƒi¿&”õvħ]Þm¶ l$]1/üÜ@²óc ©%‹sä“è7PK ¥Nj6ÆŽŽžlicenses/thoughtworks.TXT­TÁnÛ8½è? zjºjâ´hÝ-Ñ6Yò’T\‰Ž‰Úb@R ò÷R¶£&‡bò ÓäÌ›÷ÞŒôþÝÕ§¿¼Þ¿ƒOÚ^;•šÎ[³O †°Õ]oz¬óêÞÖ^›¤1ûŸÚ9æáÙêû‡Í|™L®?ããkrgz<^ûÓ%˜Þ\Æø›o×°†uívº»÷FÕ%ˆ^{ß&“s§›úÞ`V7“››k¨‰7d¿‡XÍUNÙGÕFØxÉU«·ú®,ë®…Þ)Ð8ÓÛFÅ“;ÝÕö¶ÆÖ“ö;06þš~Pt0­Þ"‚&XÊ´÷ª…ku‹¿«=>í÷æ µ@cºV‡$aBâAùïgzaýóФ³=±kL‹½ó(Í×È:À×wæ1\M>tÆëF%¥ì3@½pˆb'ˆ…›}­Ê^þùt"…âÛ‰žyØœþ^#”†pÔßš¦?¨Î×§–^a· ÞX8Ô^Y]ïݹ+#¤ØØ0öZv¡tD q]}PéÛ±M^¿‰)ã^`rl¥ÆÁlB\¨h¬C’Ïp§Â¢jªkñT…‘CÒãÇ(ƒ¿ˆÐ¢.œlØbÈà£3[ÿ&ê8¨àT¦“´±cá6Lj7̬s¿©– &@”3¹&œîW¼¼eÍ`ºÁK i¹Úp6_HX”yF¹RdxZHΦ•,¹ˆ8ˆÀìñ’ ?Vœ %¶\å ±'…dT ‰EšW+æ ¥Œ(9[2‰¡²Lbñ·©PÎ`IyºÀ¿dÊr&7±æŒÉ"Ô›•|ø*ÀŠpÉÒ*'V_•‚B˜1‘æ„-iv‰,°2Ð[ZH ’ç±(§s<Ô‡/ÏH*L)r$Óœ†BQhÆ8MePô²KÑ@¤—' V4e¸‰HôE=„o’` â ú_…Y’9ÊûøÖ™±+[”Vœ.m´CTS!™¬$…yYfÑsAù-K©øòRDÓ*A¬"Ir†0è†`ü´,úÇ I9¯V’•Ŷ|î W‚éY4º,¢l4ªä>öíØ‹Ö Šw6@ Ï $1 "!Ádù°æewÍ.,»éîD¾Œ´-"Õ :A›–âTp,ŒÅ´£S§ÓjgÔi§ÓñŸÖZǶN-¶ŽVÓsß{YCGÿèdòÎ×=÷Üsνû‹Ï^Pƒ>hèõ"ˆ¤?)ñÙ&>ÛÅ'-;”¦Ç2È ²Ï‡¯"'¤y >ôc§w¹1@ð5¯^߾掮ÖÍ-j%”4g3ù‚™)l0Óý ™=¶‚Ϊ–uÑŽN‚´¥‰•›»ZÚZÚWEW‹…£„@[GÇšõë.ón&xZZW­Ž6µFía­®ÖÛ¢--íG#”E7¶´G7­ìXßÉÌUë× ÉdÖµx›¢-‚VJWëªvytttA^׸‚cn¢:Bi™O‹Ó}I³'Q ”§³Ùíëûš®b«ËS™T¡žõçÌÝÀ›³ñï°-•I´÷ïèIä¢fOš9emÙ˜™Þ`æR‚v˜J!™Êf´es½51ÖLšýùš¾tb€A!•®±Ý-ãÐSyg­9Ms7³çl¬ˆq¡T¾1—3› ‰±5®9[¬E”"øM!ípV«éD¦·ää&2Â嘆*4¬cèIeÌÜà ³`&Œ_ÔœìÏlOÄym<³ö©öYž nÖÞl©+;ÍôB,²A„àMå‹ÊÄa•ÚAM©§ xgâ.ÎUÒÌ,ZÜcqJ3vúr)·`øíPâv`¡qT›³#o¦'g¹áÕ´ÿÓ\Y= Åg‘øDЛ޷fâ ®WoœÕ¼,“(t%úÌœYÈæ¦?fÙëÊ®4s¬mï{,ež´™/Øáøìr±‰ ú­ýf<×ß'Úo+:±K=¬ìÞaæ¶'rµEŒã ÅSù˜™‹oL¦ ‰|Ÿ5·tü½¹lvǘŸu¾9Û—õñÊíc"ͱўÍÖÞ4¼<–vÊ•¶‰ÖÉöçb‰•)+D{õ‚mæN3€0ª˜ƒ‰lÅÒbQ7¡!€¨ uLtc0€]¸;€¹‚ØÀ=Ø€‰¥¼¿Ÿ{؇ý„ë>§¶9bá²&mfzk:z¶YEZz™µÖG«Ä©´(ýsW\¡Ñ5˜/$vðIZEËöq1†ç´]mrYë5X­¢cÇÛ*äR™^NSo¢ š)/rQcÏ:çB“B¸/˜’PÎ4çB LÇŸÌãèJ¦§Œ£§2]5ŽžÆôuãèéLÏG_Ïô ãè™L ³ŠôlÎs¬8|â8¬HIœ!çYSžœ¡+|tÖR™Ï_Õb^‡Ž/ॵ–>qG¹‹W YE¥Vw.åLå㜃T‘˜”Ï(gŠ'²à$>žæÜ<Ãyç Žðb1–8²¶˜ºs ¯ ,Ÿr\¸‘ë¦N9‰òðÔÈ(Ç…§!‰†G?çoÛ^`¯çÙßöñc”â%ö;Â9ý çñ%^ó²å:ûÐ8Bƒó( o¸ÑÊ”‡%_¶rëå _êÄTëlZ Ëàz½>nG*–Yv¼X~ måÚ¿½†6¡®¨}C¡«úÔ«•ÿh)O´8§%°zæÙ[h°Í(§YCgåGÃ#š'Y7U›ÜWÏŸ´¡ÐR—l¨²á®:†R]QºÝIC†WW2åfŸƒ{ä8Üò0ËÕƒežÌƒàý¦áÖUÝ-dÉnCÕÕ‹aÈ#^ÙðɆ_6²Q"¥²ÔÚ M6BŒéA]9IЃjÒ( ë¥ÃÇ_¥;bøºt¿ÜsÄðê>•G÷iûö‡_÷¹vF@À~zàˆQÆ+m‘ßm‹†ð!‹&èK`¨ Y‰…„ð–W¸ô’sðée‘¨@•nALÐ=î}6Çeq¼®½Üá¨' 5ì‰D‡JN‹¡—èÚ ÔpdÛ {äüC!ÒÚôÒÔCNr4[Øm” iø³Q{óUšç6Û)øü­^3dx,^­Î “‘a©Ò8´CWæ÷ÿ’×/žºÈå€8[Óôî>‰IN¶T‘¸“²ŠËMA>41þw®ÖKðã#°ÿàÁúOÿâÁùon义?áÁö)jHF„\XCnldÍÛ)€4•"KAäHC?…0HeØM:ÒD<@“ð0MÆqªÀIªÂiš†³4¯Ñõxf’B³)HÕ4ƒæS„j¨™ÒJZL·A·ÒÔMu£z*P#ÝC:ÝK«è~~׿Ðz‚Úé<­£—yõÔI¿£.z‡¢ôWÚ@—h#}L·Im’¼´EšI·K Ô-ÝB¦´•bÒvŠKê•(%í¥mÒQÊ[½}‰‡ûk8‹›y×ex¢‘± ¤`35 åtžûÛ’J3±ÎÁxœZëDÇ;CE`ÍXÁó@•B‹5øüÒ!¬dLFHº«SP.ÀjkxO’ö¢•y**¥Ý¸…17º%kز1)‚6kèÞ)Õb-c>¤¤ùhgÌ´Fcd¥ÙWJãoe¬ýÒ kô1(U¡“1 »¥J¾]ÊøÄ½â]aÏ-©ƒãp]Ìåë ÀטC=Ï…GÜéå´V®— E6œVœ>á1MüJ<".©àT÷ýP(êþ)ñ‹žµ²h¾PÞâÒNŠñ‰Ñãf¨2ôð…Æh$Ro#Ü>CÑÝZÝ“èÐ=¬f‰îŽ.=C§{«x^(î]ûŽD™Pºu…ûÍ= »\»±¹®nÝ¥©ºÊä0ڄɘp…î0–'°`ÌÅ0=䕇ü|ΟwùŠø¿@{à¢ýðÑ”Ò}\8¡Ó×0‹a.=€ytµtËèa4ÓQ¬¢GÑNǸŽs;=Ž=ôì¤'q€žÂCt ÑÓ8Aßų4ŒWèûx“Nãm:ƒ÷éY|D?Ä't–yY%sN"(^¯RtœµÍË*µÆ§0A0‹ska”ß™Ú.˜Oa¢-0ãZe·#û³vËj‹²Ú¸¶¸(c–V­ÕG¬Ñ¢ìU«8%ìûؼmC¼cµÊeòòJ-rJXa‘9Å  ‹-iݘ´ö )³´z­:*`ƒV½ü¦ßÉ?,Ä™xä {ߢwsÑîæ½›s´‡Og/¿÷p‘íçÖ:Àm³ŸËgÛp¯â_q_gì~<ˆCxàI†Ïà0žÃCx‘á+8Š_á[üˆ=ŠßãÛxñÝ}Ì:£­\|‰J?:&:ØjæÚX¼ˆ.J¿Ç?lì4KãÖ0xµÈûy‘GHX»¼ó¿PK ¦Nj69l­ ÛÁ(org/codehaus/plexus/util/CachedMap.classVis×=o4‹f¦%a!Bc"`4RÀ86°"Œ‚„Œ‘b[i©ÑhFÌ¢HØÛ`gñ›8 ÎŽ“(‹SEª I™ì$媬•?/þíC¾ä[ȹ¯[­Ñ¨)§¦ê¾×¯ï;ïÜsï}=ïü÷Ç×ôà[dcP˜Š!œÌò1„1Át”+§ÄÄŔĔÅÌÄÑOˆ™c§ãxOˆyR0ÎÆY1O îÓ²öL✘óòø¬ìÕæŒ<>'3m>)æSb>-æ3ð¼Ì^ˆáE¼$³—eöY™½Á«\Ph53“vnüY, šÓ ›ò…ñžL~Ìš0ËÅžé¬5Ë¡\²³=®Ï½ ñÅmzKÃÀIsÆt|œ÷µ#“Ö\Q¿ L™ÅIÕ/sYVXýˆ³#kæÆ{=ieJÜ™1³e‹ïÃ{íœ]J)Ô$:†‚½d#ÇØ9ëhyjÔ*1Ù*@­ ú =†:Œh¤5Ž·‹$³½$¬4æ>Sí'½0ß]H. Lµµ^B¬-8›š¿ùŸdÛÛ_AÄk“mÁ±+ˆvýê"Z“]?ƒº‚X2ùbWOòÁ˜Ç`R/vɊ캆:2å[Î뮡AaO°%x «;®UfÔfOˆHFK¨%tÃó7ÿºØ5&I5G²yÄ1MNQñÖ£ŒÍ˜a¦æÜiþ8à ôáIöà â,Å} <Í·Ïà/ã<^ÅsZ¤ÏQôöSÞibÀAžDI<á.¸ÂÉì>Ö@€{^D/×j¸úAžå$È3’Èõ7=þa½úREzÃ^zá~¯RœÝ«EÑ‘Ã<å ñËUP+ V{P‡½¢û)‰ÕpL×ìmÕ\.a­Œ­*Í¡–Ãy¥æo¾+Šß@±”›N73k;ubÅ««ËÉÊ»KYI²àÀ«-ŽKÌÄháüv|[ñªù]ªò=<€ïSýhºIª@õú¸[4t›Ö\‚I{Áðvuƒ±Ý`¶u^ÕÚDÏìë”`6켊¦‹0$¢ ;çMvnX@ó’VN?¼Íñº&°ÉñÒºMà·ˆŽT€?^ông€Þ!z:éØ!¬9ºý6ëó·_ÃZ…4‡uRÑšGK0ݼ¬.‹fônï;o‘>NIת=Æ)–5ð DðK¬Â¯Ð„_“õ ^F¿!¿ßò‚y‡rýŽ~¿g!þ"ý‘_ª?ñ³óg|ÑQæî“rÒÛ«°…IH3–cÞZ íxˆ3QcÔScÔUCfŽJ¾‚n^§·4EÊKBJ'¡ÍIBÄÓÖ•žG“SSuZ€N)6{¿µK‘®×·Îߨýß±ÿÀFü“¬ÿÅ ôß^±ˆ‹ìR»”Ž"À»4OiÁa¯Xžw‹e·±Äô\wIn–6 »©i TST5ˆ© óÂFU‹-*ŠneT”Ónân¯œz<ùÏÀ%–s‰µû ßt9l `éæhÔ:rh!‡õhQ*În÷În÷Î^ï}Ü»—v¹7KÌit^ÈUw“JT\(1¯ù—Æáö•;|õâß¯Û ü,8an ¬€8XñÕŠ{¡9U+Çó• vÄkpÁî y›—î¦zÑG£nC¼×†+€<à¶Ìv lzç7Îz'Î÷)_\Q5J31×{1óO¥‹v·‹Vç]°?B{Õ]®² uÿ,úƒl­Õ e_·b²Í—ÉY_q/…û\Õ£Zu–mu_¨Ð9êéÅ„›@Û«È.ŸZbCT#½VA¥ÖE श“ü¢H)<ȯþ‡ÃÑÿPK ¦Nj6ƒ¹º&org/codehaus/plexus/util/cli/Arg.classe½ Â0…ÏÕÚÖ_tpw´‹y'§‚‚àâkˆ)¡•4ŸÍÁð¡ÄÔ ÞážÃåã»Ï×ý€aaaHˆ+a÷\;A˜ÎÓœ_9Ó¼lg*ä2Ù"¤ªM[+íÛä˪’Õ‡Ka·ÜتV%‡¡·+ÉDãˆWF.jˆ0+dYygî*vÑâæÃY¥Y¦óaüÓm޹ÈlH ´POÚ|!t¾"údŒ®'ük¿[è¿PK ¦Nj6ug§ÆÛ²7org/codehaus/plexus/util/cli/Commandline$Argument.class•SKoÓ@þl'qœæÑh€ ÐY´žÆ;Hgz´&ýa§÷+¬ù—¶è #EkH夳ÖtÀÐ.á FZÁ‹d•iOÞ!ž¼üP),¿€òh ?! FBþâîoµÅ)C¾ŽÃèMò¡H¤ ïØÊ^!@¸O ->C(¥n#¼EžAÊ)á‹\£P‰ë+q}CPþŽ˜ü‹8 )ÿĈ¼ãsg5‰0Ž·P‘î¨HãhKE†êÖTq»•`¢Ü6"½ùEŽD\ uå–è &÷¸zc»jþÊÓÞš+±>5—qÒ_O¼ ¤éÇ9 #òPK ¦Nj6©šïcv5org/codehaus/plexus/util/cli/Commandline$Marker.class•TÛNÔP]»­t:tdÄ/ƒ ˆÚ)—‚☓1ƒ@HŒ/–r2;-i;ßýcbxñÅ0ú@|3ñü¯û‚DÅ—½ÏÙÝ{­uÖIÏÇïïv8¸•G;ú äq^†.äq— VØ:Û‘ÃŽa#„ÜZ”ø©…ªôX¸Á\”ÚÒ?%Øõ(n8^´,VÜVâ¬bS+õÇ |§5›n¸ø¡¸M0柆éŠH}&üÐOïF¬ÃCÔ*‹­Ê­„Ž:Wî·šK"^p—®tÖ#Ï ÝØ—û½¢&•2ÝŒ?1Á¬…¡ˆ«›$‚ëc‡&ØEàc´7D:·oŒjUØÕ„þ¿£MÆ 'ŸŸZ±'îúRbñËȪûÄ5Ñ ÇDŠ&Ž¢`ÂDAǨ‰1\6qã:®š¸†ë„Þš¸›ç?ɪ¤'pÆ3»´*¼4;*ûoŠP`§¦×…×Jw/£dUê¿`çÓØ¥#›×jŠ0Mä%f Þ"³FÒñâï5ž#“¬«ËªÄÝ•Ëc9yQn,a»¬ÊÃ?©ÑùW*i2¯é8çNi?Ç€¬*+Çy_âÕïUÎ%û ÈÜ‚b+[Píž-h¯³î®¬_ãø>3æWžþ†n®tgh%œÀé »”1+Œ]FÏÃKÆ— ³ö&Tå9¦m^(Û8òººMc:u¢ÌEí,ùmmåmèï‘›±ðÐÐ[„GÜøŒhãÇ'‰ôj_ÜYèéÈ‘2ñK@&Æ©€)^ߣb&´—%Œ³ g¸[á8Œs,”¤¬=ñ ÷ÈØ‡SœóüM>('A?PK ¦Nj6ø æ{&.org/codehaus/plexus/util/cli/Commandline.classY |TÕ™ÿ7“Ìd¸ I @Ç$B3 ª¼”— &áµ:$ÌÄ™ Dk¥­o[[Åêªkk}5­]­@*ÒÕ‚ºµÝu_]«µ»m·ÖÚ×>Ú]·[÷ÿÝ{çæf2J´?sæœsÏùÞßÿû}ùOÏÐ*_ #·‚øEÞ*Ǽ­Ã/Kßsÿ§«wtøU¿ã7øm¿+Ç¿ã?BøÏ0þ ¿óãtøï0ñ?:{7ÌÿF ãÿð§Þ㎠$ÂM1BR’@HJƒRÆ4¼ÅK J(ŒzJ#åaœêl†ƒ2FÉraˆ©C…nWê06ŒNü²IgR”š0Zõh«Œ Éxý­Õ+(·L Ë$©#“å”12E¦ê0M÷ ´¦ë J}HÂX*§ê½:Ì âVýبCµª1KgM:ÌV¾Ñ1“™z´Y‡Š+stÖªGæ*ïy:;-(óõüéAY ë…*ùÇtv†nŸ©WeqÛd‰î, ʲ0.”³tq¶ËõôଔU:¬Ö¯ç„ä\ý=/$kTò³t±6$燤Mµ¥#$ëTŒõAÙ”ôÃòÌ®¾+•˜kR)+³2Ïf­¬ ¬=ž¹ÌÊ‚ë:/îXÞ¾ZPÓvi|O¼5OíjíÌe©]‹+Ó©l.žÊm‰'û,ߺ¦cÕº­‚ò¸K;ë]íË%’­[¬®\:ëA+µgK<ÃÏ%½‰n¬”fw[ɤ Ú–ÎìjíJw[»ã}ÙÖÞ¤ÕÏû~W2ÑjŸjíÔ‘„ÂV¿ÕÕ—‹ïHR€ð*«7cuÅsI†÷¦3—QÐU jRé‘H·ž“HZ¼W¶$‘Jä– Îj©Ú蘽EXÉ“‚±m‰”ÕÑ׳ÃÊlrÄ©iKwÅ“T3¡kwSøWëc¹º¿ËêÍ%Ò) % þ­!ÅÜîDö¤†X™î鉧º“dË»å¹ôúLºËʪMs=½‚qsZKÓ‡Ó®¶ˆ}t¿¤IDz]Vn½:Kº°,ë.MkõóX®WY;ã}É\§ã\#Mù*»24€ šfZ×ùkTfaÓöv±"‘ÊZ™Üò\g.ž¡² ÷ä™ÿ‘ˆ–{j fœL#žâ•™'UÀ9×0šCeñîn›ùÌ“øX«{Gqn»¬ Wû­b×ðõxj[$Öšœ„G®< Lh*˜v"©A<¾:µ'‘I§oÌ*–¢Å)¤â=¤PºÇ¤ñ¤ÔyE6gõ £Wr™u?úpiMÎÊÄdšàÛfBõ2JVV‘ÆËTê0Q 0D3ŸãYÍ—ÙEó®’7|qCYn ¶+Ëô`ºò€$ÃN™ÜõÙN.¥øqõ±hžg”c(—v¸f6q¥e'#Q¤´+™Npκ—„lºì#V<£‘«¿ËmL'Šó5`þ‡IMç‰cÀlõð×F}š<ÐÏíT7 Gcõ\ÕÞ§Õ #iTåµÂò Þµa>èTËvƒOiõlo$ÇýnXý>“Úu~|cùèj•Iì¼ÂöaD¹V©óçÔ·IyAFFT(kåa1´Ë›6ŸÌàà àø\&žÊ&É~XÜË™âYqy_ÚÅÅn»8«h;îL÷eº,umä“sŽ6q nç~a›`¢W˜¸R‡Oâ*ŸÂÕùc>úAé4ñ/øWz´HU Ê&S6 #lÚêL&‰äÍÅ›¿$AÙjÊDZßÄ×u¸nÊ6Ý…ÛMÙŽ;L¹@. ÊE¦|B.f ¥³smL¹?ÕÞ'‘êNïÍš— £3èp‡vêÜ: ‡ºÂØ~5ñ#Ü&ˆæZO·8sFqz‘²\÷à^Á¼]éL"G·É>f§‰ûñ ‰‡1`búL|A =´¢oçN+cÊ.aòËRÏ㓽Υ&^ÇA¹Ì”¤ô%eJZzƒr¹)¡%s8aâ/ñ„‰§4@F%©6ažóMŽÓ™h¶Ãûz#¾Ž'#{òÀÍ *ð¾cÊÙkâ(›Ò/Œ½2ð&~lÊ•òÉ \¥G?eÊղϔOë©ÏÈgM<Ëû™‰gp˜ŒGkVÇqâdç})¯Ùr›‰Ï€<Ãã¦\£ñy­胣l$N«"×™xû‰ú~LUûõÃ÷Mü-^5q‡ƒr½)7È&•›L¹YëÏ8ž#Ýy|Ž4˜ò9 ‚ê†HwÚÊFRé\ÄêOdsõ¦|^ï”­g ˆ4¦ûNd{­.Bi$>DiŽ2º%ŸÔáØKæ½»)mÄ}•Ã÷9¦|A“²ª°ì È•Zþ¥e´¡µ™{Ùá dÃ=k®•Éø+ÇzF>»KÖÒžÅ>-|Ûv1â*™rJûŠªîêËd›=V{"™Ô—@ÐnhÖíÔº¶¶(ÄVíµ¥µ(ïeù±œyÑžíúíÞŠÄÊ$‚Yý“"çÙQŒuºæÕIKÓgyN{¹‘­Å­çamâœsôÜSöë!ÞÛk¥ºµæ¦’88²X; îî÷¡Ê>~|±rKfìú:­œ¶þŠÌ--‚Ã6è„ÛªŠ³‹wŠ5#wiÄÝñl‡ÕŸ³›°íÚ‘Ú‹è·°›vgÒ{5m³séå™Lœ.iVbó:Ù³ŸÜ¼Ò•î½¢€[Þ+E¶lOömvÿ0óŠ»­rsÚ‹;oG_~6Õrk(Hj¹ULdmzÖóù¥=¬ ¾&•K>|ÑR™oRóÍpuÆêIï±–'“n¤qoÎIž4þG³-hõ¯}©\Bßa æ-†w’î6¥_\ÌB'鈆úÌ25µm#h[<&‘õõ¹kFI¾ •.ʬÔnñP HCЋ¦ ‡>Î÷00‘ë½¾uÚ|qÐþËÞc fÿ² ³÷÷Ùç? Ø»¬GÞjg×àZŽ×RŽ”r7=‰±í J 04-ŽGÙ„¢ÍP^ò,±CÓ1€ŠEo¢¢¦rc[Ž#Úrô+˜m)9mU…Ú@ËÑ0>:ˆê–Ú7k® ÈÀ{¿|’Œc˜‹ù0)Øõd½Uï¶…KQ'S¼z¶?¸—'ïãÙ‡xú~,ÀƒXÊvæ  }àV<‚üÝÇq),CÏ„p#n"­õ˜„›ñ9Ψ>[låø‚m©© rX†/âVšAÍr›c:¢„ßh¬“›%F³ŽYÍôHC´ÙñȲ©ÍôÇ8õGóTÛ%tǯÔQ´â´wâS=âwâÏ\âËxZÏ—E§“Ò¸a;$~As½í ‘2ÏHevró­¢—Ö#n|n©™x“Úb5uƒ˜l<„¥±šStö &Æj¦8³ŠXÍTçk5-7–›>ˆÈ¦pUÏUƒ½ªäêT®fp5$[#Ê©Ä)(“i¨’æHΔS±Dq®4a­Ä°YZ|roqå.cÞm;Wô¹Æo*÷\ÛÅjƒ’AÌ|ÂãS¦»²ÄgÁ¼þh){]9׎ GÐHgµŸr7ÆÒ1fÒlÀ{>ˆÙÍCôíó’6˜ÒZY‡I²ÙdóŒ8=›7àËø ¹†xó>|•TòrÜ\ Ó%Z¨KW]ôöƒîí®ÅåÔ"}€ÕJµè§WŽB‹‡lyÆ×\ Îrc(‘e¬ å::ýzŸcƒÙ MLlb.±]®:uS\5b>5bTcˆü-8r+²r;ãêNjq—Oƒ:UËJgª‹jðu(×r­¢U’I9™4+· q²óS¾JN÷û”©ô8Tº¥RôyìÒí´³ DKÒÄœ¶Ø ;õ[ÚbCΨQŒ–‡Iœ¸+ß@µ<æc0Îe"8<ê2àƒÐeЕ·VÉÒ)±<,Ǧذl8°<œÍ“dójø;Ix–2\P5 lö„ReÈ×¹Ëp‡Ë0B-J •7—›WC–óeó1§o- ‚g1]Žú<ñ¸Dð¤[I#ø&gê™§ˆONŽjÝÕÖz ÚÈháa|LÐÞ|gaa2'g ‹J¸#ÚkÄ¢A,xï'.Ç$/b¢¼Œzù.bò è{¶8Q’¯§O“u ¡!؆huE °´_ɪ+8h¯ÄNF¾•]÷rOÏÇhû%ÛvK·Õ,‹ÄYÏ©•ôog³ºbù1¬àOØú˜æ°XþÅ|Ay^zãäM/ÔýZõ^Ì,/ÎRþ=CqĵX©m±Yge‡UíÍ'P{"v4p‰v]-%ͱ’–@ìè!¬nŠÃ2ü¥òÂò6*å¦Ô¯(¿Áù-fÊï<‹ u¥¼wÄ“0‹Õ>Û“X-¿å¶BÏz‚µ»07EöÊu® 8ˆó´ï8Œ5ò¶9ïÒ&ôaàtz¤O‘´TwkAW  ½KwÄÚ6æ…»~‹tÆZvþ14v0VÚêÇ1µdaimi]€éS« Ô–2”g_[ÊìyÇΡoÇïµÇßí>ÕVF)ª2L3Bˆå˜k„±À0q¶QI•L¬ã·ÍÆ8\dŒÇ£ÖÖã<úý 6ãÏÙ¾Š²8ÆÊPÂ:0­ñŒI¿ÂËÇ|“SM4ù›tasÄ_¹MÎóÖœfg*‚fí8„uuĘì³aÈ³á øŽW…Ä­BƒXô±‚ÛÓ‹V¡ã8áÞîuk@ólØæ ÝÆcè<ˆMm1<©þn>€Í1Çï[|hG¿15ÆLöh0fÑšM>lvyÖ0¡_äLe}Éëb.vC«>JPkÑa³Ê Šä¶,[ øx.sQjÌCØ8¬ç£Î8cOÕzOÕ—=f =CÒ´ÖX‚ ±´¨±ÿš®Cc‘ÛVÁ¶mQ7Bb{¡ÓÎóÑ©òè¼â® .öÔº…ë6_n#ô\DÔ/c=BÆŒ76úìZëáp-¾ç–—WØ€¯‹ŸÐº8‚î6ÒÝŽ ã‚÷©‹c?Eÿ±x]¼8_7¨‹ÆÅ$‡it1Ív¾O]ü;—ÁßãL–ÓyW_£w¹XsI»Ë©£åj!®IÂtÞÑ6€nBA_‰ ÛnE«éf%ã¶¥•m§SÕb×sÜÚ]p2á;yéÐÉ< ~ºŒ<ªìªÐSвÓPMIoDÒÕv1F/Æ”ýÔö*ÔW£Þ؇Æg3®E‡qÁä&ô·à:ãvÜhÜŠ›ý¸Ó¸Ã{¸ÖÓ%ÿˆ"ý›7?°_/´ƒk­ëh7çk9ßI¯Ù RÍ»ú®/ñCÿ9Ü­o–›\1ׄ'œpPwiD8ÍÐ&5n.èÑŒ/3Åî£:`:_Qãk¾°Žôç¯ã —ñ7Ѭý…‰ñ¨B  êî¼ø27†Ë ØN²¾Ïk)ÿ ~?viµºiM//é˜O¤R—L¹þ_V´ìðË|c^~iØe}ÌúõqlSŽŸðm8’XªØ«ÃˆÝ7ŒØRØóø™kh?±uãµaÄ´#„÷ÏAÿf?GÆNWƒ¯¼ ¸œ¤·ñ7 ùPK ¦Nj6Ÿ;ÜøBH7org/codehaus/plexus/util/cli/CommandLineException.class•‘MOÂ@†ßå£UDPŒ7M4‘blŒG £‰IãÂ})›²¦í’~(ˉ€?Ê8»4ÊÅfvÞÎ<ónöãó퀋à Jhêp`£e£Í`ÝÈXf}†Ö¹÷ÄŸ¹ò8pY"ã ×1”nÕD0Ô=‹Ç<‹dÈÇ!) Où<ñDêz%–²©L®=•®O“Sž§î,sJy&C×¥{«¢ˆÇ¼›ûb–I÷ìH¤) ûgƒÃÊpš¨íÂØ.û´˜H­ •Ê_ÜKíúh“¡K=XE–5†«߉¡ù½}­âEzýÀôŠ6U}ª ”-§»{5ÿ·(VŒzJgئS{ÙEúŽ¡X¨b—šU[±hG‘²ít/(ü†uhÈ1°ãeÛf¯`úTÇž±¸o¦_PK ¦Nj6+b‡æ­5org/codehaus/plexus/util/cli/CommandLineUtils$1.class•TKSÓPþnÁ¦¤AiDpµqKt½ŒÃHÄé>Ãò$n'Î" Vþ*âx* iØÏîê?Q‚*äK¡£· Iþéùh’iZsd§û"y‘´çJ.7ŽÀß ½;Bîz£tî ò0>©Ð9’Óä l@Ç3‚ÚD™4kŒ ý ý\÷È[£u±ñú·yˆ©-‡(’|{‚n*ïXÀ–B®Œ¢ÇÈrwÊgô-Ð~”cMéP :!~ðcŽ@„¤L<úãÕŸr²Ÿ!† õ™…bšR¡£Ÿ"Ê(C,Š/•xWF›2Æ/ceœ)½;Þ*CªM™àG›œeÈD?Ú•I›õçlS&)ÝdSÎ1¥F™Ž'…|Hg!SÎU=_Ð)ú3•Ë4SÎ3eºRÔšRgÊ Ý­7¤A%˜iJ£]2Ë&?ºù–Ì–9†Ì5å|?bÊì¹Ày†4r¡ ª#“Š%zøk‡ûZ“‰t¶ÏN ¬¶DÂNµÆÃé´Tô§’ÛißÞnÊfbñ¦Uáþ…ߢX"–¹Hà©›±IàmMFm¥‹%ìÕÙ¾.;µ!ÜçN = Ç7…S1]ç6½™Þ¹6µ'S=MÞì gÓMýq{7ç‘H<ÖÔšìë '¢Êr#÷Ò|5`ï¶#ÙŒ]t$øDÝiñ‰“xá©)GZä̈g´ Ê"qAýéKC#§÷¤3vßšlFÐxFïåï.OÑwþå»#v&ÆSÁgbDZ±dS[¢?›qßø¶Ò¨”ɦ›Âñ,½'j7{· äŠ'z(LÆN¥²ý;šWŒ›®Æm AuIÁÉ®_0¾ˆÓZ7ˆy2*¦„+l;ªÁÞp:b»Ä¼k%³^^›íë?íË.±>LU’©á»c{ìL‡ë¸ÄNæý5±nFQ~Qbfbvz¡!óÁº-'9fòÅ¢´\e$œ¶;ìD:–‰íT“nö0÷ '»,©‘¦ZŸMdb}•eÉ´fnáÈ =é⥉yÛ_œíî¶Svt½v å;)iD2+í=¹]M3ìˆÅã9w°îrÅ O,JI.'a,½,GÔ *“ 'Òñp>Û]Öµu'Ê5ck)Y„½;³!¹ƒ™’Iæö%’©>•Lj%Öe“²¬Œ%.If‰L¹uy:ÖÑ“ÑË“Šìçò&O;»ÎQXvæ-åPl²#™¤‘l*e'2ys çšMÍNõP¦ñ%å/¿Ögz)K]0ÉY¦o–²Ò–’—»Ráþå»cé ׎(ÐŒR×·œ„Ž„ûí®rLç7‹ÌÊM3“to©|%T.É^ì|²;Åx 1ú3e§³qªìGÔÃÓfÏž-7"¥Ü’Uѱ'‘éµ3±EYÄDu ˜¿#™MEì1­LÕÇYÊÅB i d-|7 ¦AU¢3>å÷!¸ÂXrƒZj¢™ÊQ#r˜U …ºQ•WÐô²pº—`cÈG-ù˜|œ-îu¸ÓøM2±¨Úéf(Ý›Í0<)ÍM²—]âqáÁ5]Ûé ÁÅg&T鯅ñùh^S”ÅÕ¥jë|Ýé6¤Ú¹¸=¾2›Q²“ó±…Z«}¿=Ø9TŽzí)´›ž_,‰«ùÂwfœ¸Å¯ò_ã4|®ÒEõ->!ñ¬ºÒ-tIr5Åhr/¢œUÄ|d3»ü$¼Ï¨ãÎ=éñð“Úá¤2 }áXfE2嘒¸/–¾$©Nà’-˜WÛ—Üy|'r* –GâÉ4/Ô—‡¢ ½©ä.ý$t¤,«\+ÊâLÉó‹‘ñPhW‹AÊé¬Ùljˆ¸%€˜2*“lOîâ·mX…ªª+Ùh°ŒÚ»×tŸ$ˆi¯FæI:Ð’:±´ÿTÙñ…£\ó¬»&Ïs_µÞº6}³"íJçwB][[IÑ©ßÆþþaýªëNB•.¶ÉüS»¦„^yïúÂ|,Áü›yZi¾Ûõôh•4¢6JRORµð%·–Ô…à_b›·ûu'Ôøâv¢'ÓKl9-M¶¨}+{ÃéUÉ”í”,ýGîÁV~öµÙ°"fu©(ߢ f4º#´d¶2:)§÷\ô!@ÿƒÆÎ˜³Ñœ³=æïN®ÎçÈÒŠòúA”=ÆIvñ×Ïh€—`7´ô:D؃ë8V°µ¾žÊ`i<Ízi˜yž‡ó<|ÎNç~È¥ÁGpàÌnÄGs㬠çܡûM.÷²¯òÍÑ”þ¢úo£rÞÎ@ù |Gê`´x‡ Áìä¢bþ ÷0Fy°YZÊŽ"0«³!è@å F·”aL§®ÆÎĸßð2ШK#X~f°|ヾT ýáqu³©GÓ‚å-ßT‚ û]³‚ÏÀ¨?Ç ÿHÐçðòD%ðF)Á¨#AÃ!0rFÀRëÈHe#X†ÍÕfsE^´³•ë$½9©ºâáS)áœ!Ôt>4:ÒRYŠ:Xy„6݋۱6Þ‡;ñïñ âxO:ãQ¼ŒW8¾‚cΘÂ{2“ñ—#ç8‘Îüñ¹l,$È@þÒœK·»—äU>áçɯ¥}S:1uÕ!L[8裂¶Åôê0£ìÌç´^§÷"Èiƒ;ÍéL— ²1Ð8€YíPÕhrgþÆÀl aNçævòÖØAœ?ˆ ZÊ¥…_¾NÍëlñÅö oìâ47WTWxïGSÐç©®À…-ÆÙû™yŒ²ùL"¯À‚sfКhÙ|œEíRƒEº¹8p4<ÉqI1í·Í<˜°cx–«£4ÃweÏa"¾‡©ø>1é‡X‰°/a#~„+ðcÆâ«Œ·×iºŸÑÓ?§§ß¤—Þ¢Qßfìü _Â;Œwñ5üÿˆßããéYü¯1¦ÞŸðKü%)·b+ãïfºƒæÇß:ùRF Ò7ðEÆeez ûJöóê.º1ÍH¿›‘ZÎȉã^îù(Ó.¾ãc¡÷>ÎÌNç—xŽoã=EÊe98¨q°`ibÙª™G1•½øq´.Àò4Š„=[Á³”OqÂÜdû1Q,LfÒL“ј'c0Ÿ©°TªÅ'8¿ŒiøÇ*¦²ª[FñÐp®x­O©‚Ç‹w†÷¼Ç£¿L,ªÁë üñÃÅ÷mdH+Ë…õô2CøR‚£çI\vгȻ¸ü"O³wmõ˽ƒX©(ÞÎ0Z¥øíÄ“"÷VßGt\ÓbV{¿âdÚ:G8ïNÊÍ›k5ÐÖÝ ò=€nà-¦ÙvÖ8ÚZ8Z[¸åÕ£¥Òr]ÏtäÖ5štôélÉ6 Ï6Ñ-y~¬ËQU¨ª½Þ{PQí-¿5 ç9å›y£ÞM“A\qDS¦“¶abú”Û– YH¥£$„±„Á€L§Çk1AꔘNk’z¼‘oÂ¥2Q9 ™‡k •Y€ë —7ÊbÜ"KðiYŠÏJ+öÉrì—K ­m8 —ZWâë² ƒ²šßâkð¬¬Ãw¥/ËüD6â5éÄ/ä*¼-Ûð[ ãÏSºeªÄ¤Q¶Ë²#Ÿf—2=¾â$sÊ}‹ÀÍt\•LÅW9+£çâQÎ<Ô¤†€~3g:aø1–Šrje2©¿Î€›XÔØPG?YÖ iÖÅ0;Œ'r€<×ÙÓ¦Åã!&o=x\Ø^W¶&†ÉŠ¡ý0!Äå´ˆ{e9N“Jpº¥(·†9éìI‚ŠÇó©òwSS/OŽÕÖ+~ßuõµî¬Ò©÷WjÄMòî”Gð€<Êx| ÏÈ7{‡K×»–Ë[ú~ŸãÇcÄÐ}ŽŽ9Ö÷Œ°þÓøfã^ÉYÿ*B’YÿÔ~ø× «ÑîY<¹þ©û°dòÝð7Œ Q—Í õ“çBØE‹ÐêÇ6F”{,»¶k ‚òÞ29ðÁÓ ª>«eÎc`ºF˜Ëpƒ°S“§aÉ·hˆ£„êï $Ï¡VžÇ\y‘ý4Ë Xϳ+䥼Âͬ•ϰšyhã[NÒP¦×!ÊÛˆÏ|ÑÄ·YIÝÀœëI´‹>¾%iÀ?çÂô¹ü‡ÂbÇ(І³›ÚõBï× ìH†ë lÄŽÄË3í”±FT²œL¡Êð/Ž¿¿ËÆYÎY’ a?-sŸú?PK ¦Nj6úµ£gv2org/codehaus/plexus/util/cli/DefaultConsumer.class•QÉNA}Í60  ›û Å0^ô‚1&ODM0Ü›±…&Í fŒ~–4ñàøQÆš%&¦“ªîWõêUu}~½°P3‘D9ƒ ª&V±f`ÝÀ†M†Ô©t¤Æ¯ï÷m÷N0ä;ÒWÁ¸/¼[ÞW„;®ÍU{2|ÏÀ„?”S†fÇõ–MÌ!¦ÖD‰Gr/•e+i]ˆ{(¿í:Ó`,¼CÖŽî¡ C¥Þñn)î ¬®ïIgÐÒ½(.þŽ2˜]7ðlq)Ã6Ê?š!!i[9lcÇÀn{È3þ§U†Â\ûº?¶ÏÐø³u(øxaîÓÔcúi7 2•h,éZ74“ñh²Ò˜Á˜„/å †í’öF‹‘§!Éfôš yðö¬Ã&Ù”%›‹È/‘gXF~F>§ìùô bWÄç|SãÇ$t¢kT£¼YðVÀŠ–.jNéPK ¦Nj6ÏâVˆ:org/codehaus/plexus/util/cli/EnhancedStringTokenizer.classSKoUþÆ3~vœW“@šBxÄ»1”6¥4 I¤Mq’¶fƒ&“i<ítÜŽ'%B!Ä¢+B, ,²ë&ª ÂŽKü(Äwï N«¦bgι÷<¾ósÿúû·?”p#…ó b:ƒp!MmFˆ÷„˜Mb.ƒ$¦…qQˆróXÚ¢Ð. í²pYâŠHô~ ñ_bIx­$±šÄUªÕ Wn™÷ÍÒNลjà;ÞöZý¶í9ŸÚþy kËv; úB7×ô¶#7Þö„·UZ®]®™¾eCA&<ŽÊ ²–o;¾7/Ž Ò®ÙdêÒ·b ,‰iÇs‚¹gËå×håú–­ »âxöÊÎMÛ_37][À«[¦»núް£C-¨9¬6U©ûÛ%‹‘5s§QºëÚ»üɆ-×)-x5Ó³ì­g›W˜8ËÑèâW¹ÿ±!Bô§‰ÉÖÌÆrÝ·% Új.O>{/°}ÏtWìÝiëÏ嚈æJ"ãAD®w‘tó!¾#Ùe˜Uãðªõß²ÁàÈsÈ™ñ,3–Îdu¯â¤×t¼ˆ!¯`XÇ8F =w·tœ^cM⺎*ÖtŒ`TÇX×ñ^ÖùÞÔq§tLá¬èxKâ#§ÿÏH¹°‡}¯nÞ²­@R¼þÔEÄetmo;¨I%ñ¸Îs ÐrKù² ÓÛ²wWo†KÄ6È' ¾»˜`âc‹”=¢1ùg[ò|LÚDÉÿ¸´“PHâk”¯ÓšƒÆL@Ú(ô)êb?Óˆá ÊŒ¼¸„.c‚Ú`èˆò2]+2]!Jw…éTþSF¡xT¶ Ë/Ëlc¡_'[*Ê&´"µ˜Ì{2Êû Ì ,P ¥Mˆ¸¡µ0~GòF¡¨ %΋-63ÚBÆ(¶qLÛCR{MmA7ŠjÙºQÄ\eî³ìg](ã8®‘²ë¼¯²¯5LsY°.Q!ŠêÅêŵÐ&I´ÊS®V„ÿ”äIðò+´6º÷;ò|Cf×£þÃì1±ˆQü#Z"÷,ãã¢[ü*’‚Âã0eOÅ( ·‰!Ú‰&ŽÞöõ=–ÑK•¿NÝ)d)?æî3vè˜v!Ó„i­Ô ÎE¢Ï뉖n’¯L8S¶ñ¦Žè?ó¼›4 ;F®âÕ«0p(ï8¬íM^AOýÄt’‹¦e0ªfX‡œ!;ên)Ê„5Œ`LÌ>0™5ídVw·4¬cCÃs9úAÌ Œ‘ÜÒð#X²þæëSå²¾+%ÐC<€Ÿ4¼i³ÈIFNC†Æ ¼ÁÛOŠÖ° #®[05lã•‚Á“ ¹Êæ¦Qæ¼äò#,°58˜bSGFGûSJ˜øs¡ òÐÛhæ¼S,êv^úyº 2d—Ée<©8ž‘go+EÃöÜœ^2˜8rÐlîd˜S‡¶Xvéùüá\±åÇg‘ódº Å’·[û±]„§ä C‘–¹w,ËÈy¦cÏÈGЉ'=ÎnP;í0^WtË=ÞÃ]×3Šœ]f ç”xaìŒü¥3BKR§~ÎõšS~ÅJÜ3ËŒ;eRôNws†;ôRÉŠ'Ϊø©P}b˜§µò°ƒ¼/•u«â+º·¥ è9õ\áWì2ä×Eþ´W¹›B= #æÛ‡òŽ^®Ñª\ÁŒvb¯ÓÓê(|†Q®Â0Ö`ðˆìõØ>Úba_þ˜¿Šv1d­"pþWtÆÂÁ*:›üW¤½?ÙU²†È;@Î!DqqžŒ×î¬s7î/B¿lòwl(ø…×ñP×÷Ñ•¦m9ñ‰÷èV°‡®8½ž6¬Åá÷èçí‘”a> øœ‚&ÑÍ‚ ã+ÒÞ&ýLMÂH¼!!È5Á?[<™ 'äÿ¿!f%ü,Eô¥ã!èû“ûøÁoˆÅãþüd8TEÿ.pó’GËq_Â?øjãáP&‘nÑ6ŠNÚ»äLÑ›GÙºû,Áª}ˆ[XÆ4VŽtFÑÇ—LÖŠ6ÛPÜŽ›T ZÅ«¦>/Û}\àRÅÅ·â6õ…Ù@àïX£¾uÖáEKÛ¦Ž$ñ%«* nÖroý PK ¦Nj6bišÓrK1org/codehaus/plexus/util/cli/shell/CmdShell.class•QÛJÃ@=Û¦MÑj´Uëµ^ Vì~€"Hѧ"HD¬ú’&K»’‹¤‰ô·|© èøQâl±/âƒîÂÙ™Ù3g‡³Ÿ¯ï8v X,¡b` UK:–KX)¡¦²Uk:ÖŠÇ2’é CÞÞ¿fÐZ±/Êm‰‹,ìŠäÊíT±Ú±ç×n"Uþ]ÔÒ¾0¶ã¤Ç=êì»Ù€?bHG–Ê€{䃾Þ }GG †g‰'Î¥Ò˜™\4Ü'×Ä4LÝ ý¦ Ø4±…:ܺçõ¸“&2ê1äø‚–‰mì0üc ûìojy ÒqØŠÃÐ|†ŠÝþ9Αò¯FÌË,N…6^–*ŸÎ"…Ô¤Ù·ŠcNÔN“¹Wµï~ÓB¾É€ZŒ6ÙB8CÙ= Û°†•!ßÐFÐ…7:y«èt4KwF(=+‡YÂ*õ€52ÊÀÊØ¥lNŒuI s˜¿e»¾PK ¦Nj6í¹5B5org/codehaus/plexus/util/cli/shell/CommandShell.class•QËJÃ@=Ó¦&¶Ñ¶Ñ>|bu»èàº"HÁUè&RWÓ4¤#ÓDòËMA?ÀoÚ ".tÎ}œ{.wî¼¼¼à8,Àe`« Û:š¹ÛÒÑֱðv.C™^0íÓƒ6ˆ&>CÕ‘¡?Ìfc?¾cEˉ<¡F"–y¼JjéT& gNÜ#åTd ¿Wþ#™,•Š{Jòdê+ÅÑl&‰›}†²e±ç_ɼOý;Ù»ÂÄ:Ê oIôÈšØÅC-§¹aÀÝ4–aÀPàû8`àÿ„ÁþƒbUZMütá®:04lçç4ý|‹æWåeÐ~šöíouèÐGÈ£K&¬P4D‰< Ý}ëZ…9Š]íÚMÑ*¹s¬=W€IhA#<"ìú-œ`ƒ2æRMTÝk EýPK ¦Nj6ñDêFà6.org/codehaus/plexus/util/cli/shell/Shell.class•W[xTWþw23g29äJB†kH/LfS R ˜š&Ã¥& „‚¤ žL“C'3Ã\¸©­Z,µZ[­i-Ôbkh›šBë µÞkµúä‹>èƒ/úà“ºÖ9'gf{òá÷eÖÞgïµþ½î{ç­ÿ¼v @ `N)x,€*œªÁZ|†ÉãL>ËäsLž`òy&O2yª_À龈3<û“/3yZÁWxW°'@ŒÏ(x6€œâ¯2ù“³|ßà瘜óãáæœê”P…´bØz@Ø,Y'éD™tK¨SÊVGl¶"ì»$j˾1£j´Ù\h$Ø]ÚÑ2daÐo›@UnX íÈ{ êYÂÄ»vnß—àÆŽÅõLÞH§H²6^zÞ#×7WRj ™\ƒseâ²rI®-+Gp4»Bnéw›4 7úµ¡4’¼Fi’ðÕj##³|dÆ4H9´³B¡{BCœ>mF®ÇBGZRÞÁY9ÉÞ<Œ•´y‰òïfÚßët=žOg“B-?J¹*ï1fŽ'd ³n(¶£ºxRײ=ÅLôÆ“iövy‘í>D Äï5˘êƒØ‘5FJK–jÚZ²^½¥dœéÕîbäcÌ™|í. F`0]ÈÆu6Ÿ?ØšUl§Šm¸WL“žlV;ι¢â½èVqÞ§¢IŒÉf&[˜ler76)¸¦â ܧàMßÇTü?Rñcè*®ã'äwúªø)~¦b?¨°Zå®"Çò£Lм¥âçø…Š_âW*~Ͱ¢]ÅaÞ?Èd„Éo0¨â·x[`õÿÝ(‹ªì*¤òÆXqSÅïzvªØÅ³½ø Š‘TQàÏ}Rñ~¯âxWE6Qk-Í9÷¢W t³w…Š<Ÿu'TÁ1»q™'­Ôœœ¹ÔË)låc]yÙ›ùM ?‹P 4¥¾O³ÛEy§±s_ÒA|ÔAz¸‚¡’ÍÞt2IÜb¹a*F.6–És½æŒºÙG©«+ù´y.¹BzšdM`åÍó~Zãb6’KjhhHzú´LFçk¶Kv!W¾†|I=•à~äϧ­-nª#î›}Ö>~5Q¯Ðs9-¡›-0£e5jT½£AI¢dõLR‹s[ õöJ´Årzåm€ÀFðC—j^¿U\®æHkŽ=ö:ež9öÙë1{Ül[ìq«9.#\ê DßO_yTÓ Xž†Ï jß4ª'á {&áeâ Ó§ÂÄϤ†Ià’‰×O´~¢ð`êéñ:ëÄz,%Ýo!ýB¤óq¨Ö)ØŽ4 |;m º ©ŠF_82‰Ú"rÀ\Ý/éÍ­—À3ö y” ÖÆŠšß Í_Eí„å3w–(âu¡º³…wÛŠ´‘°ç TzúÑ$ró® ® {‹ªÕ‘Ó@í­°*Q¯ÍQ¯ÂµÇT‡Z‰}BœxøôÕ |õÖAõãðŠ þ²V®¢ñ šªð&šéoÂutÍ0蟎±“V;&Q³²Œ7ó+áH×4æ»=rÂo·XÍ3±„9{€l`¯ìŸ…Èw>Ú;oçÊö´ÐغѹŽá),G0è‰Ð¬~ÁêËX8…E{/ @«<«^çmñv];‡Þ g ‹Ï¢6èiZÂ;Ä¿t‹ƒž®ïúXF¿ö"À^»m·¿±r‚TöãIœ¦L´ÌÞEù ŒPMœÁ»Ç¨fk±ìq·¼¿ -é)ª£˜Š”ÝòÒ”–îö¹ˆ:¶ëo¤Åß+´O¾Fë°4r^wäþ!5-+WÄçVäŸ$ó¯ Šôي䤊øÜŠü[ªHÞñ1—ÑA )@IÑõ <—‘†èËX9…U û­qÑ¢’M\¢X+ª¨ñ{°\xK”íp”í°KWð³P¢lÔ•¢FªìGÙ[ÙÆß3¸c_d«'±ÆuÛˆFxD3Ý -%z5:z5⨭=&eëW@Äbºr–T?(‹^§׸m\.µñ£Îc½-p.V·2·£F¬(A 8(£¾k¡´Íé˜ÁZê wöóCïáqÝîâ14…õ‘¢~­¤D~ÑE®[‰6± í"* ­Ÿ:ÃC4cM¾¹ÐÞ)5û7yùŠ 7yùzðIy)n/vSHï©Ò˜Ycº÷¤X5n¬^Âê«€µÅÆzDŽåwcm%¬m°6ÛX'åX7Öam¯€µÕî#Ÿ6eýPK ¦Nj6ö‚ZV—¸1org/codehaus/plexus/util/cli/StreamConsumer.class;õo×>}NvvvFîäü¼âÒÜTŸÌ¼TFQ Ÿ¬Ä²DýœÄ¼týà’¢Ì¼tkÍ0F®àüÒ¢äT·Ì "a Djb®3Dc‘H#ƒv~Qº~r~JjFbi±~ANj*-ÉÌÑOÎÉÔGÕÂÈ €°Æ?)+5¹„‘‘‰Y˜X@,V ÉÄÀPK ¦Nj6<3.°Ð«/org/codehaus/plexus/util/cli/StreamFeeder.classUÏoUþÖÞõ&®Û´i“âÒ’”Ô±l m¨4Ô„¦Duj…„ˆR„ØØg£7²×4€8pF!~HåÂ1.‘H8‰H=på¯á|óÖqÉdíÌ{3ó¾™÷ÍìúÏ~û€…¹8zéÆ9dEŒÇ)&DX²ŒãU¼fâF7a™¸Ç,Ù¼.«Û&r&ò ·¶Ý 4ô7ímËõ­1,uÇÞšÖó› èo””¥¡Wüš£A{ŸÁ3nÍ f5L¤:Âu†[%Èœ_!HOÑ­9›[kN}Å^óhé-úeÛ[µë®ì[F=Øp2E¿^µÊ<¹a7Ö¶çìP5׳ʞk…ðóŽSqê¬3ZoÖ(S’.âì´¯ìÙµªµ²Q÷Ÿ8²ç7œS””îí”íÀõkB‰ÛxK]™X¼´¾Î BƒؤaAC¼Í"ãË~³^væ])üÂÉš&>~ %pèÅÅ^‘íË".¡ÏÄt3Òp±C­&î;Nib67p7ÞÔ0ö¿iÒpþTÇ®œ2•Ö62‡¡»æîú'Ï;YÀóNk¸Ô©Õd)„$säÉxRwigjal•w>Ç¢ˆ\E„¥IµŽ!.S¾ÀÝ#Ú£Ô=é_¡¥3ûˆ¤³ûˆî©IÊ^è”·(§ÐÛ„Ïa€–«á1 âE@­$¦V’0ÂõK ÓhÓÜ›ôU™FOÀHëûˆ¥ÿàÆÌí¢k1s”=ÜÅýbg÷ÃÌÑ8Ý©üÉãyC$ FœÉǨ“±Ã¤~¸‡8‹¹¬ `ªDÃèÂ$/’ã.ǑȵìÊaŒ(½„÷ð˜ú1>Rº€9eéXUÎñÌb-â,JÌ´Dë;¸‚e¢Ü#Î\§/Kß$}7雥¯@û}Ú‹´/ñ÷.íeÚ×±¢*ìgŽê+$Wˆ¬¶ÈÕd’[ýú›1õrúDžáš(¡‰êÝ»ÐÓ›øœ2z¢Ï0**Œ‹àÌq\Tâây=s¤H‹±»}L#ß¿«ª”Œ*=…;¸ ùæ½ÍK€OIé”Y5r°Ãòä1ªD©Ðç²ðM¤°ÅO­ÏÓ âì©I2>Å<>#Ÿ·ç)©.?LÔB{Å«¶iÁµ µPdðB±ŸÛ…Ä”ñ ˜Z‡#òI ”ÃO©e¨s!k‰ùÙÁÈO¸®ˆZTD àìqHVš•ü÷¯= bœÍŸJ‡È€_R~Å×íkF}ê¿EßñúžïÏíVˆÅuñ_f”#£‘)G~ïøŒ)ÔôPK ¦Nj69Km¤Ç /org/codehaus/plexus/util/cli/StreamPumper.class•U[O\UþöÜ™9å–zi«Va:ÞZ* ìÈpi¡T¨·a80‡ÌÏÌ‘š˜úP5}hÔã¥Ñ>4F¼%†(­‘(‘ÿFýöžãa C,/{í³ÖÚß·öúÖìùóïŸÅ+A4àé Ô£K.Ïøñ¬ÝAxÑ„½Òy:ÈE}öÉ]ÏáŒ\bA<™bC~ KÏHgÑïÇ9?F\FVà`|.ñz"jä¢=ÖÌŒnêÓçôÄ´nv ’¹lÞÊè¦@[Çå1 ÷#ªá š4ÂÝåçZ ©LÊ1‰ñ€\Æ44â. ç1®á)´ûqAà h×ð¢~Lh8I GpÔ‹^DT ®L dÞK~¼,ÐrÇÓ&P½‰• ÔoËlÿGùx5ð%ôÂ%ÅàÎ%ÕU–ÓÂ=¸—ÏÅ}Êw˜+áZA…äú ¿ øŽ…× Âb.¹¸Ã·à™¸ïDd ¾Öà_A`YAãÚHb Ç÷h†€)Tbžp¯á!S€xÍ€Ú5¢…t’6lÓžeŸ3„Â$¨·’w¼R…,R, ˆK ôH1Ý Ù r'ïíRð‘=áÝ»áß$üe¿õ¿ð­lg¾Í†Ÿæ·‡¶z>ܶ㠵*~…o“ãTá]Å.žsxªžj›Gîä…ÜôçbŸ0âgìFøGVŒG¶Ð"ÙCt¸·P+Mdš´«8ð_ÚÒ?Éí:*ÞT…'⿇WQÙ\B`0²Ùº±„ÁøžC‘Í6fD:<;S:¼*§ÉˤP‡¶É·ÑäÙXæ]{p¬tCÊa5ìÙ2üÊpR2¶ßâ:Š1e¯â},Ò.âce-Šo9ý49ÌÀ5ð4|@¼EvéCêö{ù)ûtx7ÑŽ/Ð…/YÅWèÇ×Á7døŒ7q‘±W›f,ŘɘEÿeú¯Ð•þkô_§ÿs|ëÌE€ª=‚G©Ä˜ªúq¥× [C!={.ºÕ”ƒ-R¢m1vÞ÷”r™û…V<âÀpàNÚp‰³ŽÚmœ þ(±^‚p0NâI#jcx‰QõàSÎ_J{íÃ.ù¢Û‡‡ø%‰ät¹¶ÔT¹"?¡Î…ÝWú¥lR•?J^€ZgÊkÑ¡ú'ЩÎúPK ¦Nj6'ëW•é7org/codehaus/plexus/util/cli/WriterStreamConsumer.class•RÛJÃ@=Û¦ÑÆj½_Úz¡0ˆŠ/‚OñŠâcc»e›Hš¨¿%x?ÀgÓ RE°³³3gΜÙÍÛûó+k†0«bNC ó9¨XÞ¢4K*J*Ê** Ù›€‡nÀP´:öµmrß< ¸žÅá-ls‡; ãÕOD’¬2(»þ…Ë·¸çDݦœØMA‘‚å;¶8µ.ÏIP ۼǰiùAËt¨²mG=óJ¸·´E!¦#xB®ÝÝõ½^Ô•ƒý†~Zv§…ÂöZ&•s¯Õ×(âtág–A;ö£Àq÷¸”7ó[çuY¥CÇ2ÝÁ/w$S#:4 ëXAQǪDnü{BðKßa³ã:!CãOšA‚tUŽ«^IqÂcÈ\Ѝ×F™^ 9Z))”þù¤›ì(ö¡P«?Õ_:oˆÝøB_ÄŒŠ/©ø²Š¯(¨{À,˜Îƒ ¼‘ž1¾“ö¤¡`[Â,©r>mGõ´Å“–„Ñ­1½hŠ}õÐçäÌ’‚hÂ.fû3ÔÌéåRÿ´eÌp*;¦ÕÒ¶,#ã˜váInKƒ êóF1k$õi*öGSú%½"Ê£ÁšmOÍž^^0f…3òÜÒ ÙþÇÓS¼€SA›KaØ1Šºcù(4içÍ‚^phD€«µªŒQ*™— )PW4JeË¡¤Kï1c¶´^wÄ×6¹u+BáŒ]pŠfšR…ìéÕÇ•gÛ]îC;{"Oݽ2LÎ󒺦Zi¢0 „\ªXTðHdó«6?íÙÊ/%OÖíôW:ÿÒôÀ2K$§Ý¥q¢XÔg<¬8¨W&!lXÝõ˜Ô”Êi§¨g¸lÎÎI½8Iv-Ó™•´ØÂáMxÈ(huåÀ0g ioƶø3v¹à¬ÉHÍGõR®¢ÝhV3cÔNH$÷E6K÷µUhMT9U4.*ØÙ˜•µeü›¬n—tªlYOØ2|C3cºJý^—zÊ)grC–‘7 Ž[H=ÏÛ%Á»\̧LQšm5•×'Li¸HþVT\ÑpÏjx'4$ÄðU<§ây /àk*^Ôð¾®áø¦†oáe ߯w4ô¢,o’’Hm¸‰#\ø®Šïiø>~ aŸTñІWñC ¯áu ?Âë«zîØ ½74\Û ºþ7sì¦ÓÑ ÛéNÝÊô ýë*Þ"ñw#UAäÿígL‰Ú˜+hXt¶ö,"'ªHφöQ7]vNXÌÙ–Ú^(ÚqÛfÁBZÍ`ö“u6]=¯eã)“%§—RÆŒ#ÛýVgAnÚV¬ï¨Þ¬áª÷³ÍÅ EÁÑ-Ëà®Â[5€±u¤J.ëôÉIÉÛ–J„×xç’¤îäè"Û9ÛCdxX”¢—6ØÇ6ÃwF¾òö%ñ–‹ ̲1Ý*’¼áÅ6üBVºÚ¸¾I`ßÖû!~PDrŒÈÏvÎþ蔟páAÇ:yØ‚(G­"€âœëE½U”•ðÑp9úêcÀ¯ÜˆÞ¬¬¢7äÙMøc7–á™X€7]‚OA*&§_Ø×ö-¿ˆºœUÂþ%ø°.\·„z¯ [¬‚Î=‚1ÒsO2&;Õ[e¤9Þ+™G˜yü/Ô2×Þ ¹kÌè7·X»o3ß‘p¢Ãk÷T®gP+7QG¸äå߀U—þD»~Îg«å˜ˆJ’ñªGCqéP*Ö;¿>%ìû1Úb½Ëè˜ð- s»Æç°£röÍ£Ëwnõøö¢+1ûâøSÒø3lÃÏq‘îÆ[È"={ɵLòWŽ÷q¿”ÈÓ¿Ý$UÅKÉg} ´gY£ƒ²w²"Gˆh‘ ŒbeV0>C=‘ÎÙ|–±{¢¥{{~QM[XBmE%Ö%ìõˆ6rËåx—̇›¼ö×ügæ·¬¢ßÑ©ßÓ?0Ö”Žn¯\"»?FvŠO‰ª+¯QF”y—¸‹-+¿‰Pœ¤’³wçHÎÁ—ô¾+-µbïs«µâÇ^ÙYÿÂñ¯¬è¿1koQêï$ò¥þÁ¶öÏ5Ò”˜ i>é|Š«N¹:+íwIJ!WOËêVX)ñ§ÿ PK ¦Nj6§k°J9org/codehaus/plexus/util/dag/CycleDetectedException.classSÛNQ]§f˜‡‹( E¹”¶0*‚"X•j2` ”hÌ´=”!¥m¦Sƒÿá‹_à«&Z‚&~€ß೟!î3JKë‹/ûvö^g­Ùg~þùö€ŽUݘhG"&ø !†xS˜Fµ2n K˜1r[ƬBSsîH¸ËL¿Kç8C·±o¾5õ²cåtÃ*9 m‹VÞr c‘êaÎÌgõ ǶòÙ…óí“[ d!CP]†•çë僷7͔׌BÚÌm™¶%r¯pö¬ìQ°³zš&÷ÌrI/æø!98cfõ¤ ·Ìžvxfå0Í‹ŽUÈ;逗JfÖEobÇ g¹“¬JÓ"“Íâ:\Ý›…êCïiÓ9Ëá¶élê¨yêUÅWJ•ww94Í/¹'Ô£™µSºÊF¡l§ùª%¸ ¶Ö7- Tô`^Åh ý­±EË= *ÂX”p_ET<Ä#KHÒzÃSS‰°H–U¬`XÅ(†•†D0óŸ¡çŒM]µ¯Å3϶³q$©a-u_Tk®Òº÷ÌÒ:?t\¸z=y7i\Û³Ô>QK1‹EžÏ0Ä#ÍÇÍ‹®-*ÞJ¿ÛeÇ{?¡ª›þLŸXEŠ{ÐK¶²çT÷“EcG`ÑøWø>SêC?ÙN÷(‰ mHÁc\¤,\mÇ.ntƒ&"qâ+¸êÁëäÅY0ú¾O5à6·h¸€jµÁdbýÞð{[â;ü/0È1‚ kñc´1|ÀHŒ"‰¡yÛ«üŽií(ÛO~Å*Ý:‰ì&dlåÇ|…9¼Æ<ÞÔäi˜ ?BSt·ÇK¦®k¸îÊ­1|âÊ%daô*]­u‰VÐI®AUw¦N÷PM÷˜Û5þPK ¦Nj6¥á–6.š 0org/codehaus/plexus/util/dag/CycleDetector.class•V[sEþ:{™d3I ÷„„k²I*„„„•ÍIØÈEa²;$Ën˜ Á¨ˆxAÄ»¢hY––%/< V…[•òäƒU>ùį{'— +Ä"t÷œ>ç|ß9}úôþùÏÝß´ãËVc/à€†Á<Ø_Š!,E ÃrxQáqXG4  T4â%¹zYÃ19—ƒÀâ¥HÀ”à £%T  –\  §¤jR*œ–Ÿ)é+-wÇ審lkÈhpôèÀбXxp(<´§G *rÒ˜0Ú“Fj´=œrÌQÓÞ.PL…ðP8Ú' ©¥TõwY)ËÙ!àijŽ x»Ó S "b¥Ìhöôˆi#IJ*#鸑Œ¶%¿]¡×³2­‘´=ڧ嘑ʹ'ÍINYÇJ¶'ŒÑöîsñ¤Ùc:fÜI+cFFÉ67=Ú´gWßöæ\0J±2=ø'LÛ1'Ö=Ú<¦ÔhàµÓ¨žç*L‰‘#äµñ1Õ'#P"±­¸e2ð%S+ÏQt Çì7Æe*çt(ñÛ¦3’Y™g+åØéD6nÎd¤÷1qCZà´@Ž|IcÄLʃ›«…AǶR£ÜôŒ§I_„©ÏáÔLÚñSµyîR§Ì„ëTز8†(éV&švbV†§‘X´£…¡’‚/#ÓKÒVFycPLkâDîK ÿ{že<1A÷]ñ¤{Uƒé¬7{-u1òÊ{£4Ö±M²:&pV`éœÃ½FfŒN5Lê8‡W4Léx¯éxçÖ,‚´Ž^ôéØŽ.–s!þ:žÇ>oH‡K½Ž xSÇE¼¥ámïà] —t¼‡Ë:ÞÇ•®ó‡Ž5X«ã©²N®>ÄG:>Æ':>Åg:>ÇYaÉi½ÜýçeøWB‹o yLFNR(Ðð¸ËÈ‚åMš»Ž•MŠ®<_ƒ´Ü›Ï:Ï3˜×*–²i²oEÍIGõJV…7¥>ªgœÌc/o9¹õZ¶D,M'œJ˜“'jšVoæMÔ2Ù‘Ãê¦p¸@$5s’ît2I;+bØšm²édX‹UM ­dO/Ë+hÒ‰§SŽa¥2ûÌsÿA‡ÑyÈ_`}¡ÝBáúÍ3Y#™ÉÅɵžüÌÌ6Ÿb#‘p3S<&ûS–»[ ì.’N)YtYÉ„m¦øe›§Ó¦ êm 7ÇøŽ6òI_òe²Â¹Z&ë[ÍëÕ\ !/2Çfõ€}€³/t âg.ŠâèWÂj´pÔs hEçlTFÒø/jû9‡CÓ(ŠÜƒçÐ-xûE´å|Þ ÷ü×Ð,WšÀ}wú‚¾ÖÛ(¹†¥jˆ¶ýÿuþ=ø»íæ,ü14v5ÊÈ»‚ìɺ»¤ò,5vazð4úðŒ"ºƒdÚPGé“´“óSÜõJ‚ØLD­·~º°ÛˆVNþÛÂŒ•Èþã†ö;í4ÎÛî¡”Qéý¡Ö–Û(ÛñÄ5lhFù}Ttz[ƒÞi,éðµzj|ÞãÓXÚéúo£2è¿)æBYOÇÀ&¾`aTñçÖ 2¨ƒÌä0©"üQÂ^‚®Àr†·ƒÖRw'ž#ívZÌö6 ÔJ†ÀÒã÷nt«`BLLÌ7˜^îq.w(b,9†µ§S±¨Íi»8ÅDÍád—v}ZÔñp^Õºƒª"| Ÿ÷†\Wñ˜kúA-óTwc¤RÄ8Ø,©,Ïç¬kȹ™ j• VGà½LA-³°]ت<¨ú|¨\<XBçATÍBT¹¥ó ø¼ä D#µåÑOµ°¬ƒÓXÖ"Â,÷`˜’Ѷ…å½»Py×}-\•uøkü×dr®£Ní±„Ê[‚¾œoŠÜ•+s-ÓX5ì™ ¥K9^"Ñˤ}õ|¨B|§:øLíä+µWѯ0À8€opßò§õw8ïyD?ÀÁ|’š-.ù_ˆŸ6!¢nJó;sS¦f“4Å‚ëVWʽ)õ,‘uSЉ9ÓAv«ä«ï¡æç~E­\zÕ²^.}j¹R¶¡¢*W6u<€ ‹m9¥QñÀ¿PK ¦Nj6 þ;ÏRL&org/codehaus/plexus/util/dag/DAG.class¥Vësw=«GV–Ö:v‚S\'eYŽIRH§n;©Ke§­S§nIa-­åMd­º’œ¸¥´ZJ ”†G ”¶´…ð(%j<|føÈ0ü |a˜a† çî®V¶¬¤bï{î¹çwwõÇÿüê׆ñó(RȨÈF@¦ƒ0TÌGv'¹`JsVšs*òQİ(“B ŠQžzL[6JÒ”£¨`IÖΫ¸E72,Kÿ¸4OD𩞔á§U<E/ž³g¤ùŒ˜}VFŸøgeôœ4Ÿ¢ÏËè Ò¼ _Œâ‹ø’Š/«xIÅWT¼¬ eÉ°ËÆ…I½¨ =}V_Ò‡+e3?Ì…Qw7m–Ê :ÖmË ÷·1 fyTA010£ 4fe Á1 ÆTeqΰOésy®t¦­ŒžŸÑmSæÞb¨¼`–ô¥-;7œ¡å‚^) óÆvŽ—¬ž?z7i9£[½æÝ ojsš.yTÚ pŸn?Q™¼U µ®jÂ8P'çαìܼ¨â¢‚˜Y³ ά‚îF4È·“î¦+™ŒQ*YvÕctÚªØã„)¢E˜Þ{ÅVÃÜÆ¼­qŸÐK |…«Î‡l­mµm}Y"Ó°ûU|UÃ×p‡†¯ã^Á7ìjâÅá% ß·U¼ªá;b|Žj8Ž´†×ðº†7ðºŠïjxoi8‰´‚mõa«ÌÏ6oF.8>g”ÏF!Þ¯ám|Ošïóúûãz!ïçKï›…²me+T$^¶âNæp-^^0â9[/.h¸Œ(8pÃÆÄlÜ(;êû .ýPÄù¥¹O¢y#~"ÁÍÈhVš‡ñˆ†Gñ®†ŸJsWT\Õð3¼¥ þ~ňu°>%ª·ã,I>¹®ËY5-–¾¼ù¸»¼»îð”Å$)-{}4 Z7c&ñ9c™µŠ¹—± eÝ,”î5–ërÏKQɽ`NÎîi´Û(Ѧ°¼ñb…0·7€i¸mãk$"‹›[o%gN±\%š«KB'æ™pŠ]²Ù4±˜¢íµÜs+ÖÁ&ý6((z±hFêúhÓ+©;Þ@µºã‘²å®Ô×§Ú庵FWtÓjÅYo«M]%cÕÊÊÚH¿Õ s>ìRŽÍRÚÐçù•IÜ#p{o¨Û)«hå­œÉOþ´d5ű–±“?VRüá4„½lRÙø«* eŒ};)‚l?ÂÙýrÜœ\…’\C`vÁ÷â0Ìá–÷ ^uŒ?ʶ!¶Cl{ Ó‡tp+š Ûqˆ½‚Ãñà‡ÙË^8ù ¨W| -Îâ¡uÆaßøîðŒÇÙäC×Q¬aD½;Ùup¶¹g=Ù宸g½õ_e´AöÇ”IÁ¼†–.¡Ë›Dø-b“—±k ±ÙÁUhî±Ô5´qZbà°-€Ó©>DØ>ÀÙƒå4¥yq<‚œ¡ÏOÐûœÃ/îzöøÉèÆœï"Óqö ? 'Ø ÓO‡Ùw'WÐ>•L±=Jõ„VÐQ#9 j¢çÐ…¼ãì6רwÖ»g2šà(@‹vÜC·AÚEð1ŽB¸—û!žêu¨¤=*+\´‰A’¸)E>©_bëÔÐïq0)k]kèf®lëܾ‚p»§s)ÜÌÁ >x8´†ÞÙžÐÐ*nùÍÕ:é#z òë¼ç±O O2 ž"çgühŽðçõ$™K¼~\<3îÄ5Á?±;SLôà†hNRXå}…íªö9Êô<z¾ø+Òþ‹ 8™é>$rÆknÛœ­—èäe*rq]âÄ|—1?昳"aþ¾ccN§êÎ+ôui~‡ßá%f›ó„\üû‰ëâ?ë„ôŠ~;ýv ­ ¯‡ot]„»ÃïÔéøMÞ o²d¼í8uA|§½˜ötìÅ)OÇí¾ŽžŽ;8å; óä ßšKi²ª¨Ci’Œv×Gû.á®\GM7Ú-}È‹vöзÖC_£éZÓÐüQä=«;½ê¦²òîÙ\Ø~G£?¬+lªvnåã4®æ÷þ?ÊBã2>Ã}‘¼ÕgÜ?Ú[»7ÁþDN&¿¿8’®Ï»Õç­z¼cŽÓoÅ'}q.r.– ßUâ¶Ë‡#´Š©¡A·V^F„õ"95T ñ"¥‡¿ÑÛßâ?¸öO~¹þ…=ø·ÿÒ¶Ñó¨ó˜éÅç—ðùõyüö8üö;ütÇËÜPK ¦Nj6³»Åä¡Ò 4org/codehaus/plexus/util/dag/TopologicalSorter.classU[WUþ¹ $ ×U¡`1 UZ‹€X.bC¨% RkË$’¡CB“ Jý¾ôAÛµ¸ÈZ.|òøàQ¿3 „K– /çì³ÏÙßþö7ûœùý¯ŸŶ70åC7¦Ìøà”‚YÌaÞÄüøåW°(÷~,ᑾRð¸žeHJë‰t§|P±"—_KkU¢?•G¾QðLÁ·jb)ù"[NÆ’fZãÚ¶5µB.+XzN/ Ôó@,KÌ (¶)z'Œ‚aM ¸‚¡”€{¦˜Õ®Å‚ž¨l¦õRRK›ô´Ä‹ÍLi%C®§ÛÊeÛñb)Í02¯UÊÑ-SßáT± 3šÕrÑdq«hsã—‹%Ëæâ.Ó¸ü÷ÐÙ©ùñÐQ1¶/n”-F{r%m+/Ðwy´À½Kr¤trÚ©•Æ»mo ܺ.éVJ3+”¦ã \ᥞu@›Ž@—-ÍÒµ-©uõ$<âÊ®SU·A©ÚNmÇèѬ¢°AÂCçÉÀEêªQN­”Q&HöÊœczJ©Ë’(K#'N`ñÕÖCöœØf±&WÌ2‘1~ô-+¥Œ>gÈFë¸ÐCÃNE/nªøAêT _ ¹ê^ÐÊy2Q1†qÏU¼Àš‚¤‘QU¡c]El¬þ+¨âF*6ðR…‰Íãl§ïŠ÷𾊂<ò´Š ƒWXSÑ#—%”UXr·áÿv“øí«—Òz†%÷^v)Ø96jµZ‚5º¿é¬‡ÇpÚßãLÀ©¶l¹èåk“×Ê }Dzö”»`/ÚŽAN±'D㙾ðgŠK3 å‡úwíÁ‹1ÓÅŠjíÖJâÕ_U4“¥»¶*Œ­wE$?Ïä 3[Ò Ôˆ«¸–ÖÍóå-[%£“—[ËòBºƒ±P 7ù¤ßàïÃÅ™mB«[6‰=÷س!{œcŸý›ámáì ïAüD£ý½¶³rTà87à#/ï£îÇsÁýg‚C;Á'8MŽ.·p­îÁ?„‡³w1<Ù‡©âµÀÍ1„zÆ0„&–ؽGñ¤Ü `ئ }3Ú'/²“ï7žör^ï¢>î$]t’&"hsw¹àx>iù~…:æéò í£ñ5|4Iÿ¬ò`]À]V9ŠF>í˜`“Á}ZÓ˜Á,Õs6çIr!CÉÙÃïâêŽ]ß‚£‘‡çïâS²nĸ]QGìŠ\¬ˆO„S‘Á©@O$|€¦:|û´¯Õ‘v`ñ-šwÑòæœò˜&‰ëH²ÇRZ2™à~=>#I)$_8'펩Hø-ZÐæÂ 5mO ]¢aäXÈ£¡è8$Âõ]t®T{0̬À3øñœ‚­1wšrd)À:eÌcНdœälžH;Ì“¶´§¤MT–r*“Öç¶´~)·‹µNž\‹i[ ïU׺ޡYšnÛl•¦Ç6;$_aóm²c:È·“c7½_صÜÿPK ¦Nj6c„°s )org/codehaus/plexus/util/dag/Vertex.classUßSUþn»!YC )µ­Úb‹„@‰?ë(Z((6 µ`j[-É%YÜìÆÍ†¡u|sG}wÊ£/}ѱ0Ȍ㳆ˆzîÝÍ&„E:e&çÞ{î½ß9ß9ß^þúç÷?äðy§0߇$T¼G·xG˜ÅÞÅUaòÂ\»1[Jà:Þ憊å8]æ}aŠð¦ŠâÄ| ·Äx;†;1|(¦©øXÅ'*>eè5õUn2¤òëú†ž3u«’[vêL1ÄJUÃ,;Üb8æí7]ÃÌå†K»j]§-·Á L–áÎ0Ï„+2Dçì2gèÏ/4k«ÜYÑWM.ÂÚ%Ý,êŽ!Ö¾3êV BÉÛN%W¢›U½ÙÈÕM¾IƒÌ ¬WrEî¸|SdYánÞc‘ÎŒ…ñèÓËåùr…¯Ø ™Ì#ÁЬ• 9gÐ^³7x "áÃ-8v!ÙÞô Êg.(\ª•Rgé’­#2oâ5\îPþGÉ£»¶#:Ü-êf“j§›×[uï-Åhä¹¾ÆÐ“»-—7lÛ¥œŒÆœmY¼äò25½dÚï.×Òê:íOí×BàŒÏo–xÝ5l«¡B§œ\Û«/m-ÛM§Ä Ѽ„WÀI¡áY¬jxÏ0 ¶™]vý®¨„†38«agU”4”Á5¬ SAUÜ54¬ã3¦†ÞÐ`4vîÚ§a Y SâÒëÂ\7‡º¥1Û\[eOz·¾ßÂ¥Q 6ê l”~_j˜E–ôß]’#éšõôÄ›–^ÃÎ-sµiÜóÜç»lw¹Y¯Û·TV¶„—Ü/r“⺾.¿1²ËžIE ã— ‹´È, ¬˜áëˆøï“b‡¾R½ôyWõFoRô¨%E¯×¹EyL„}å\^q§¨»IzŽ"8§èñŠ5@üQëå8,Ç~0jø9²çiU“'‘ìX–=D$»‡ž[;ˆ>Do{ªdÇiëW:ÁÙSPÈ>‡(N '‘¦ g0JòC(y22ôˆL†º,äâ‡ÎÉ5(Ìoˆü@+Òù²„Ѽ> Ã8&üËWè´¡ÑåÞñ]¨Ül§—{ÓHÛéhA:.ÐL„Ÿ<1‚8Oˆ G æB•Cr,â҈ϊ–ã !@|/†4¡·» wB›ðRpy‹Ä¥qFèDì¢añ¼·H0\›Ø…Æp§iòßHÆ/l£ß+ǃÿoGõTµ†T šcÒ£R£FZ2“,E›$z‚F)n˜dòŠ$9ãg7@{Iæ‚Ô«¡$•n’wCI¾v(I¥“¤ò¸$¿¢T¿&üoˆÐ·Dò;"ùýc¤7×ÏsÚ'™ ±5úÑžŸºÿÐÁ80ž ERþéÇP¤éiÆGJg·ql qî‚õsV:À¢'tJ`½I+Q•^ªT¾£ žì‰4¶;d¯ú½´º(/¿E«(—é7¼BWi_„Þà ½uéÔñm ‰‰†Ô až$³“ݺÙëÈw8ÈwNžºòPK ¦Nj6©.[þ`"/org/codehaus/plexus/util/DirectoryScanner.class¥8 xTÕ•çÞ÷fæeòò÷B! B23É "jø' 5nÂvR-™L^’ÉL˜™ÂZ¤BÿkYk[´ºekãßv%P¬Ö×Ö®«[ÝZ]·ÛÕmmÕÖnk‹{Î}oæM†`¿~ùrî¹çÞóϽçÍÓg9>¶Ô ×ÃɸNxŒÀ÷<î„'àûž$ð?$pšÀSøçPái'”܈ý؉LÏçOü‹ž¥µ¥]Ïö¼þÍ Óá$Ÿ*ð/ÒÞwÀÏxÉ µ$E…Ÿ+ð2-¾¢À«4?£ÀkxÝ õ†¥ÿAà ÿIàþ‹À/ ü77x‹ ú¿"ðkb›°ßö[ïÐô]RñßÑô÷x_?ÀÿÂð'ø€VþL+?$ð$¿Š³NÜò!®2 ÀÐGÆ&)LV˜Mav…9¦(¬@aN…*LUX‘ŠV¢°R…•)LSX¹Â¦)¬ÂÁ*l:ƒ’¶öµ«7wnjÿhkçæ¶v?ƒòun Ž}‘`tÀçOÆÃÑ¥ ½Á„ÞŽ3(6–Ã1ßÚpDÇ%% EFúô¢ú®ZÔ«‰c©f°$Ãß=”ŒÅ‘µTlêŠ%­}_û®Ô\E¥bJh:…Al°ö—þ6=¡GP QŠiC&¡d08ªû#±õÄH$‰Æ²n¤†­è£_&ÂÉ𨎌ý±îò EÂÑí¸MÓGõøXrCbé·/ GÃÉ ¤†Æ- äÖXò–t†£z×ÈP¯ßìè€X(ÙŒ‡ine†‚=±ø€/„œƒÁ‘„o8¢ïÂAĪ-Ñó‡‚ѨNQ+ &Cƒ×“I=õ'ƒñ$ƒ çfí\J#úé6Ó)™šh)‘Ä$7\”¸n’W²fMàx@zrMêÀTäE‘*k˜z’ˆæÈ`,mhÌ>k¥(8+KrC·†+k³òUˆ´Žôá¬lÈq²‰•…ñ¿ÃØÞž>ÀÓ‰öéÆ,£Ór³æâv}8ŽEéð'H¹ ËTê¨qP£ý©º,¯sE•ŽQ48DÎÑiF¥C‰„áâiþŽõiõK…²NÃmI(²‹œÈýÁ%ªï¥V‡3 *gvÐòPl$ÒwU,ÒgíEF«ÐpâO—Ô¼¼ç%]”Y:ÎGßZÃ–Š†Æœ÷Í´µY2ÊÝä"A)KL’†$«ÈMbe†ÂT!…i¡°/sV5UÉ”•ª¦,̘¢pÊ’ìëkÓûƒx¹Xç©8u7vêÑJL!f$cÃ96Ô‹„C”F+¤ù …Ô>ŒëQÌoq\OÄ"£zß5&ÁžŒmÒEæ—…"æåôÇFâ!}­8TÙWK3iP! † ªBŒÀ0u°*ŒÁn{T¸‘° ÛKØ^؃Wq¦Á*«b3UVÍjHäM*|ö©Ð¨¡¶b³ýQY-›¥²ÙpƒÊ\pCŸ½cÍH¿WÙ6—w»U69 Dâf[›;"} Á›1©§+#Ôs™¯˜ +]eup£“"‘Øùxq»úbzÂ…•ëÒw…¸­ž¶•»Â1èJ±”oš } «ÐO`€ÀvƒÂ¶ˆF_ùoÂ!¾Eànø¶Ê°¾ _SY#C×<Ì«Â?Ðjœ5©¬îQá(L¢)9êŸÁÕ3W(820˜tíÄ<¸Bƒzh;FÏÕ‹»ÄÍèu‰âŽ.Hºð»(û±h_']ş²…ì[¤²K1ul1PáËt.>[Uv[¢²Ë)YW¸’µ`ÁºÝ>7ž;ŽóÜó ¤yžÛ@æ»ç›”­&¥u öâs#±ˆVC£‰ð@4Ç9pîomÅ]NKoM$ðfnN„BƶæÄhÔØF˜Ø¦Ò$ 6…û°ºJ2§bƒàëÝ7ùärš¬ó·®óëqTÒí™ÒÚü[ýIaZãE¿ÖSŽùúÞm¸È >/»q¡Æâ›qB=TBÇò"¡u0ˆ²X+Úׇ#ÁNïYkkc®»SFd°†œ«i¡Ô¯Eû׆é6²‡‡qÆÀ›ëA8‡d”"uɘAA¢`Y" ¯Ï'¢0œh³jʉ—g{D—XE.Iô<&»uñã»­„bÃcÑd,ûÏ`¸ˆÛ”ÄFÂtcf^Mc‰¤ŽÁ”ôx<óí½y’È©‡–f”d™:-šEðhÚà ãÎ-ÆãÁ1²—;‡o9Hd½x­A³Lf«I«{ñÒIêÅ®ï FyÂÖ sð3âzü +…**dÄdºÅØkÎCæˆ÷˜ûÍqÀÍ1lŽÛÌq»9FÌ1ÆÄÈéóbœŒÞ„Iœ]‹ëx#B•û0·tïvù(Hd¶…ˆ„3ÁÀ PÐ{P„bä+gÌÀï¡Q [U‚°KÌðÁ2•´ Ž£Ýí9öÒíÄÁf îJcü-Ü °O Æ„œ=¦œvððñÔG¶ %BËØ’ä0Fá ^Ð\¦)Ù×^À´ó˜V-(p‘¦ГžË4g¶ÄÈLۛǴÂlAû.Ò4†]ÄM¦ÈÍÈKŠkÝ'@ xJ}G hŠK¯3ÆcP2 ¥ÖÉqÒfv Ô°[3¬®5O a=B©ØgªXayʲeÝ 6v×”¤dÙEY‘¬ýð)S–OÌʇ¡ìp–ÿ÷f^›)†Á§á3çR…‘mÈÃhÈÑ<†PÜHñgsË’³eBYå‘5lÊú|Þ”õ,fLƱÇs Ýh„6[ÜžS'¡qiyçÔ!h÷Ô,š„iÙ êj:“P9ÓOÀôÀ1˜Ñ4 UÚL“PÝ…aÒjšüû9›øð„ee3¢•ς̞ƒö<¨ì¨`/B-{ ³—a{6²× €´­ì á‰m\ óŹ’`:\_€/ ïzÒÞõˆ¼»9¿w5ÞÕüµÞÕäõîwèÝûèÝл?¡w wga1¼‚sØÈeôîØÊÿïB¦w_‚9¤-« ¹–ó@þ^Ùœ˜1°²8¸«é4Ÿ†¢PÐfƒÙa\¡žh¦ïÚôÛX™«Í3b`m®;ÏæùS6k§±C“ÓESI›é§PR~$#-xÔ£”G¡ÁB-Ôm¡ õZh“…6[¨Ï­-œ„KÆa¹@DñÚBÃÊKDZÁ|¼´°xê÷™ø Ä›M\E¼IànâÓÊ“p™•û=0Q8ø\(ãuPÍë1ßp÷Àvîƒ8_»9öãü2ø¿ná-p_ |áËá$_Oñ•ð<_¯òÕð&o…wy;|À?ÂÞÁÊøÕl_ÇjùzæâY#ßļüZv°U¼ÛJ8[m&ü‘æZ„_N½Ö¬ UÅ$:ÁÇñ!'a †¿“PÏ$\Nž¤u„z‘$­¨¥rYæöÔb½\qP„\ P$r ®4³/–«DñPâ%ŒÑ~ «äIà¼çðf ðæ@­·â½û àýïAPøv(çŒyêy šùX°Š@ñß ;ù ðI¾îCü0ßGù~³ÅX a¥¨: û›†2ãXŽßq·Šú«Çú b#ˆŸzFDåKPBÚ2‚¡ki‘«äÓP@§¹EFçäƒ0ažÂ›´Ä^a¯’1 7¹=Ur…]]:W§\G—M*¹Þâ/£ `|Z”*‹Í8¬ÍUŽô¡t›xQ•ÍäÆ rkË[”#°‚¸VZKûí̪lF~Ñ\\¡ü.±UØÈ4vxª5¶”5ö”56aƒ´Ö³™î*»¨¬cÁÊJ"B‹XW>ª+"/®‡gÐPS6‘¬×bŽ'à;Ô:ÒmæK1Ü!$^1·žŸ3™âlNqö¦8ççlIq6¥8Rœ³ÏÇY{ö_rE`Õ8\— O{*<+<”É¡y.M™â1 sS·I(Ka¿Mœíz¡Ÿ¼›a™Q¬Zñ0~ìü.(äGð2Bùwa¼ü\É¿øãÐ߀Aþ$ìà?€$ >ÁŸ†½üø<næÏÂþÜÊ ·óàn佟ÿ ‹æ%x”¿§ù8Ã_ƒ·ùëð>>ä¿ÀKê—¬œ¿Éjø[xAýŠ-ã¿f+ù;¬¿ËÖñ÷X7ÿ=åï³1þg¶‡ÿ…}†Ÿe_‘€–{H²³ã’ƒ=.)ì'’“½%±·¥î”Jy‘¤ñ iŸ%UòÒ ¾HšÉ—JÕ|…4‹·J³y§4‡¯—êø&i>¿^ZÀ{$7×%òWxRò‰"ÿÃŒÓmøÈ:ð9­…¯c‡§`Yk0Ž4ŸÕJ8·ãj¶ZtØñ3çv¸?ˆlp†¼vx›í¼x ; Úg£ÒO=Õˆ}CôŽ„Ý‰\`waë%aFbð÷x}Èø÷M8d>äI³·®ÇŽ„E¼ÄX³ÈƒƒtVƒM~@ô¯KÖK_Iš¥¥P(-Çnf%ÌB¼NZ“nÅ9ÌM·õéV¢^øßÊôãÔÅZ°æ|¬G 6 ~´`=Z°å¢-øV> jL j..!´@G ЂZ°í¢-¸¾mZ° G²€ËY½”´3ãㆧepSatèãfî1¥m0›ô *pëqm ÇÕc}=“Pi?šÿ)(—>Ñ·W˜Š ±¯¿×ìýîK‹˜â«Ü“ÐJ‚¥¢1K…F½ôU¥¯A‰tL—¾ž¡&õ¥]’¡æþ¼jÜ–wN5÷ š{QÍ}¨æþ ¨y ¯¥Æ“SÍ Tó(ª9‰jN]@Í?æÌ‰×RáÍ™“aN~Œ9y&ON¾cŠÿ§¼^4Y*šrzñ2zñ zñ*zq&)5‡óªÉnÝÎQóTó[Tóªy÷jÌ«Æg©ñåR#cK$KP"Ë0]¶]@Í‘ôOGO`ýR3Úm|8¤ PDý/«>m§z¨­¾Љ&y¥êãÐŽ}$-‚yÞÚêDke¼ùEÃøs·¿'¬†±žš4¹Ê䨖Ka¶¬[ž‹åJèÂq“\yfú£Ì éV°Ûô¢ :à!¤1¨ÆFñaÑ 2ú]ßø®Â—C¦ šD¯4 kAIáM^ê™djµ>B`í$\uòfǺpÄÙ“= Ê^ cSº?Eé‹§ Ž b·‰FŇê8Òèë±¾‹˜œîý—áÓöH:Ü7‹`Œ”–cd’ÖáÈÚÕþ€MûÀ®uúm? h]þ@©][С]ƒPÑ6 ,Ð6"tj~„…Ú&„ª¶a‘¶a±v-Âí£KµÂ2­¡¦}Ìÿ´Q&˜u¯âËÊà„pýÑÿPK ¦Nj6°zöÔ©P<org/codehaus/plexus/util/DirectoryWalker$DirStackEntry.classUÿrUþn~í6݆š–"¶(b$D‚?@”¶M ‘ÐR[D7››dé²ÛÙlœÖà?ßÀ7pF™±ÁÑ€‡r<çîÚ´ÉàtèLî=÷Üs¾sÎw¿¤¯þùë%€ÚiœÂÂfð%/×y¹ÁËM^y)§±„e ·ÒÁ‚ŽÛ¼WÒø wtTùpWÇŠŽU6×tÜÓq?My5ë¼­cƒ÷MßpÈ 5<HZ^× DE Þ°}Lõ‰ù£Y²½Ò²íÈkb» ¹#0¾-}KºÙ’«ÍfGrV™âûîšý“Hm»3{I PõüVÉò²mv;¥mGîÐÖ l§T¶}iž¿»i:[Ò§*#µ]7hËÀ¶aÎví`A`.wtˆÃmWò‰EJ8Vµ]¹Ò}Z—þºYwÈ“­z–él˜¾ÍçÈ™à¾Æ¸˜ÖÖ’ø»FÅu¥¿è˜Ž¤ë«Gîhö(4š#ÝVÐ8Ñ’ÁŠÜ Ö†HçòDëñ¡ûÝ1ò÷}*šžn¢ÿ›6Íá–ù)õÀ«¾í¶&sù Çt[¥ÐK-¥k^—™2Šà"'Èã;çpÞÀi¼oà]¼gàÌ8ÃÖYÌjxlà{ü 05Xâf·Ù”ÔIöIhóLÔ5X N´¢R¢rK>*ÕÍSjqPw*¦I‚,–g¸ry ü W¦‹¯![…|ŠË'‡CR\áA$|kˆÌ+o&ê¸ÏÏjý Eª÷#¥fúwM–G²éx—È•Y )s{[º¤Ÿbnø‡_6¤X5~)è›@CÞ¨w<§È5Ug:WùŸôiªþúÛÜQi áÌÐO‚`ý%XLj?IRj?«ö,+ŽN9ð_’¬< ´^ ÓcÄ }²ð¢pa±Bqñ©=$ž“?†¢Bà˜2ýØ-!ƒeLà>$ÏiÄ9ñ‘žÄÇÔILYŸP/qªB’ˆj]‡N0UøIú¤žÑ¢Ñ'ñÌÛ²~Û¯–RQ÷T#̈*ÖO„v™zâ»Ñ>È Ä££û$ãbâx€™ÿš!ŒÛÜÜyÆÜ²þ„þó¯û˜i5X‹ðÚ wJg"\ãøœè&u³¶£ ¿( €ÎßyðéìhÇ{#+› ‰ŽeÇC;Åö[¡ì!›míI¶{8Î1S¡}‚ýo‡öI¶ß!»‡éßÈxz€ŒNÔt sjÇ%5  q¾¥ÿ¢øPK ¦Nj6gZæô X.org/codehaus/plexus/util/DirectoryWalker.classX |[Uÿy7½ëÚ¬ÝÖ=XöÎÒtå9 ƒ ´Úmб± ´¹mï–&1±Mä%* o("ï1hK7O " ˆ  *ŠŠ‚2¿ïäæ&M3öמ{î9ßùŸÿùžçöéO·ïÐ@ó½8[ʰ ·Ks‡wzáÈŽÜ%ÍÝÒÜSŽ{±Õ˽ûʰ ÷Kï™ðâP º1äÅX<(RÃåØŽÒüЕ£;¥yH¤–Þ#Ò#s?ÀgÝx΃Ÿz1?“éŸ{ð¼<áÁ 2ÿ¢/ Æ/Ýø•õØâÁËòüµ¯xð^õà5~+c¯‹àÒüÎ7…ûyyKšß èÛrŽwdâÅ2î½ë:bÔ¼ýA&ÿ(Í{"ñ¾ŒýI–þYš¿xð<ÿ*ÍßDàC9Ãß…ã?Üø§Æ4ÉŽt¸k]K,ÜHÐZc1=Ù §RzŠàî §t!T´­ ¯7ñ†ÅFT_È+Í©¥ÝÝ)=M V‚'b¢ª²ò™´mPC¼Ä£oèŠf"\Y0Ýf¤Ò2kÄr³cT£wè±”‘6Ö댾šPeA鱄Ñ;3=-±pgT\‡1#½ˆ`Ì[Ap4Å#¼hl›Ó—dú:õär$øÚâ]áèŠpÒwsБî52ØOö4tñÊÞp&Õˆêø¡ò1õ®t<¹qe8ºNO2Ù‰áHdÄh›Ép@`/rK eOÔØ÷‹®'x™NKV¹„š@V¹Ñp¬‡uŸ4b=j ·ž“ðÈb´ÆL ·‘ëUðpGS{‹e:2å©®¾¼1Ç­)…çéf²i=ÁÎé=ÊF݆(ßI™®wÈ^ëÖ§ê =Ù¥ÇÒáF´ìÕþÕšÖ“a^Í‚•ÂI@³¿¤zÅu¬!FL¦™º9Ô,Ö®§R ÔÝ—ëy» ËÂiÆŒæ”Ru)e¸¹%ZWTÇ,ƒ'»•rYG`µ(ÇÛ£§Ê…^e`^qð•ó|Þ"¾œ@a8‰H«Q^#eÊGöà `ŽX¸OW²æÂˆ8Bª=œîê%ÌoRÅc•w­JêѰðò¸ušžPJ]““z_|½¾‡s¤ºÂ¬:{¤“5qÔú£2ÝÝ**Ü"§6õ%’úz#žIæ:»Ù ("ào”̳fTžëÊŒÈÞTiÊS…v7JCٰㅆ̋tI:âöÚÅ* ª‹\|¾i£S×qІÓp o‡?2™ o”=4œŒ5VKs*Ö¸ñ/ ÿÆÇÎÁ¹n|¢á?Èhˆ¢OÃIX¥á¿ø”°àÿ 5 »Ùc‰Èæ&»Frjä¼ù_,ciä&Ferºå8Q#/Nר}nÒ4C¥J —árvÿbûº©J#Ó¨šj4¬ÀJÆÓ&âc´¼xk4ª÷„£Ì?­³•ôDÚˆ³ßÌî`·ð/ÑLRŸï÷›ÖôÇâi*¡w݆™/ÊïÓ¨–œæ{X‰ë)µLßÀ'›¯Ñ$‘îAÚÈʆý‘œNxÅdYa 5$ÐG_Ú™G;ˆ_6Ñh Meõf7ñ³L£?ûžó3y÷ð»ß_ïŸÁÉ{Fv:ç´~ö-ž-r:9Š ·†ëØ:ø‹¦‘ŸõBÓ5Æ™©Ñ,ifÓæJ yÙ¸Wi¸—ðfrl³TˆR/Å%Ö‹¹ëð©F!ñ§zÙ6°·.9Â#–v®å9®R#ÚËVQ¦Ëʪ5ïó7ýªl3¶¹eñ‘'¶-o9©©íÄæ–Î? ]ç+Nu`Þht>1'Þeõˆ¯$r52Ì*Ä6‘® ª“oô(§Þpj‰¾!­€T’V/U‘B­dˬ/Ð:ºÎÖŒÌ×½š"€\ñsª››¥‰O•ÒaE©©7Ì´¨‰©%õD4ܥˑššJ&ò9{Tt‡UÛŸÈ/œ Ëú¤ÊpYäJ(QŸF¬mŒeeÙ™ŠG3i=»x¤U,"e©LgJ½ˆW´–”qe«wTÍÙ`#61n%æã«|;£ÍÄ8“Ïb“kža#?Ess-Îmu&ãñu9Âí¡aŒ'&ûNžì$uôØ\¬°!þÞ7Æl·T9•e„¤¨r®IRþ3 4D•gY4Îä7¡Q7šÆ¤<;amLåÍb*;ú!¦òoð(o÷‚x¼€Š×¢RgQ™nQ9ÛòÐóøÍÁÏ€EEޝ¨Lå¨,©gVµÂãíbO1î.æñŒü‡£÷YæòœâdÜ©åÂC°ìÀוO{9 œ¡”a“[µÉh“éݺöm˜TÙp#Æ„*¸;ˆÉjäd5r²9ÚZÄèy~{±_B5^ƼÂFzÍÒÌHç)6–8Ÿ{6î_À9(Ëc‘™c\Áɜڊ#öMöÅ· "Öe¡ºTÆ”ˆ½óX«A½N1iž°K ¾WìœV²û¾]b±»xñ‡%_Tr±«xñ'%Ûä~i© ›¾¼AÙšÓ×”»F"ðo^^K^|ÇT쥥±\¥°œŸƒÅ_-&V?cI*h¨S»¤ÞôX½é±S%IüØÄ>ýp:îÚ¼ûU{~CU}øëÈÍG•4“©ªD|¨§jEä@Þb2çeñ‡ÒdŽRW€5Ji ŠœÑÊ“åˆ|G7ie¹¢nÓ˜ŒßqÚ ¦j Ž]aíQaæ6ÂÕ{¬z3FWš‰ršõ9Uïš\"¢§™!Ÿâ—ObÌÌ\å›5„ÙÉÀ æ\gŽÍÍrcóÌ1×0ëµ_ôñAEëö~ôï@=ýùí!_à ö]òíÇ,´ìÀþòÈ®/Ì€þ\œº$ä;€eêùÏw ³C¾ƒÌeî/²,È•jÁæûÊ!|9”©5`Œøâ„!,äáÃòšÜÄþþŽróTíËÞ±?fÓAh ƒq(5¢…ÇqtN &¬¦fþpkA’c#sé\DÇâj:·Qn§vl¥%ØNKñgé¼Jx–ã]Z‰÷é$|D«°›V“ÖXžwµYùíœQ³7 ;gHÝÌà«9¬®åC‹ÅVà^—«Õt#H.ÜÅ9¼=ô$÷íÀØUÁºÐÎ!,Z’­à_ꇯ¾bGÔWãÈ4mÆô|iotÔ×:Ñ,ÓÒia™e­.^i_à¨q„øÖÑU_׿£ƒ¡ÇþC8¦Ñ¬u¡µûMû×:Å Çr“5ÀfÌav£~T˜ënFµZx\?Êͱ¶ó|‘¹>K¨½ÀÍ×rš '…QF]ðR7WëøÉ`#­EˆÖ±¡bXHq4Sí” Êà4:Ý´ ÚĆ:—Ñ™¸’ÎÆ tê\6ÔØF²¡2x˜.ÆS”½<ÃÁ½>|—ÝÂÁW»cUÈ;ùò܃ëùª!©a—d»ð=¶N.Æ7ðµËÆax?_¹6© óMÖeªÝ åª`Ý&ëTP,€?Ð ©Vt”}®)ˆé*k»*u«—˜¾?0¡oÈÆ4³1²”P÷D.SZµ}ZÈŠuá­·®¦›w¿VtG£XÑ\sé&TÓ͘J·`.ÝŠtGëÖÏ5s¥ëîl³®3 ‹k#ß:×(®·–äêÚ;®®Ïæz/sÝÊ\·1×û™ëseÏ£!æ:ü…¹Úp›Âߌ•aùØ¿¨NþPK ¦Nj6=Š?iÔG4org/codehaus/plexus/util/DirectoryWalkListener.classmNÍNÂ@þ D.iûœíƒ) Â4Ùô‹VÆ©µ±¼º{”Ý. ³dóŸxnº6¥©öœºIsí弫%bþauY¨4xÉmÕ£ÔÕ>ãÆ°¸ÿmµ5Uà’ý²–Î*s9ïu]©£å“@ŒUU„ÉOàÃî Œ>ÐASQ$"’A^D¿Åƒ‡ ƒp%½ƒñPK ¦Nj6 ÕÌH™U$-org/codehaus/plexus/util/ExceptionUtils.class•X x\ÅuþÏݧV×¶¼²,É–ld#íêe"Yø¥–-ÉÆ’mdcÌZZIk¯vÅî ?ò(¡"@))!MƒCÊÃ%QKÄ@# \ ¤‰y„&äѦiÍ‹”6&$´iâþ3÷jµ’W˜ú“ïܹsfÎ9ÿœùÏ™}ñOžP+I¾ƒñà»ü«¾çƒß÷¡¯ø0¯zðo9À|ø!~äƒ?ÎÅOðšzüÔƒWíëD}”ù™z¼¡?÷â?TûŸêñ Þô¡oyðKŠñ_jñ_)µ¿öàm~£Öÿ­ï(áÿöáð;5ø¿ü^uþàÁyÀ#¯bxÄ᧸Ôíìyч8S<ñz$LJ•xÅ+>¶’«¦zÌñáråՀ̥v™§Þò|2_üꑟ# ¤@}[èC;¿ñ‘¯º…êQäà µ€¯y¥˜Ë"ÕyðÈ<Õ]ì‘¶Ð)US—¨ KùEÊÔüeêq‰z\ê•rU-÷È vÊe©ða·Bz§TªGÀ‹—ÔºAõ¨Rj/>à•¯Ôzår¯¬ôâV¯Ôye•G®Ìݽcãöí-Íû;6îØÚ²Cào?º)T Åj»R‰Hl`­`NS<–L…b©]¡èH˜BMwvµìïhéÞ¼­yçÆŽ–.AþÞlS‹{£¡d²\”«‘òîÁDüpè@”ËÌϘФÄ(ŸÓu4– §"½wc$I­8**w œMñ>Κ׉…;G†„ÝÖ:þöxo(º+”ˆ¨¾ýÑ™Œ$•íñÄ@m/g†F’µÃÑð6#©H´¶åHox8‰Çv²§tûC}}M” w„Sƒñ¾ÎÐ×)¨¸Ð-mM4’L ò¬Q½`;¿pßPÆtï@8¥×Te®”†ameÖ¯D"5…TÁ,2ë³/™e'fÓ"þoäNMÔ\½–É&­ßOz°xÒ™I®¹;nÅǺ«I…ÓF31\—ÝÌ÷n¥'2‹'Â}‚eñ®‘ÞAKQz3)]š¹p¸w$IÍ¿$c¼- „¢{{ÃÉd¦Py¡ÄÀÈP8–Ê«ÎK„û£áÞTm[ì&¤è%J¦¼ÛÂY°(ËDËJ-œek$µ‘,»À}=˜©!§JÜ¥ßy ³(Ó)?ŸºÒX7ÅGbŒê¢YBµM…†%2'sw¿z–){gÙÒ¼H¬/|d[T^4L,–Pf8S :Aà=NiSsrúñ¡6¥–‡4•aûÂÙŒ,fXN€®T¨÷Pw"ÔžÕ_ëc$^»]ÍdX‡CCš/„˜¹“ºŸ>Ï3ÄnÊZ|6üw½G½»òá„–wÖïè´E¬XËêá,ØVfåy9HUý ‹> 2Hqc":j3cN,|$e¯îO„‡â71à††â±V{â¥3étf_¹äÓì¤ç¢'BÃÃá„ÝÍãzs2ÙŸ75jÇÁüL û› íL f‰ËÊl8ÉÄ4 µõ=µ1|Ø:p­#Ñh¦ #EëæG’ád*Ü—q&f‹„=JÕ1&ðI[']¼,[¾Êºe¾d†9QfÕ ÃC¤ù Ð-éîø¡p,rLû0šÆv/{W„2“£+¥–¢ñ!N3u¸s±DJq»Ð)·U/–gó#KÁ`Y9Ñõ@g<ÕJžšFŒÆ‘Ë™{£vUáëŠ$zí…sþôj F­ç‘÷™R—I»[^°$“˜µPs¸ßJ$â SVËÃ8¢7šr¥4Pk–sbâ¢YkJ£\EaYç‘õ¦l¦lR“òfâbJ“4›øn6ñ|ÐÄm¸Hö…S¡HÔÄÇp»ü Ï¥ž™¼‘ÛzM{ÚvSj¤Eü$2Sj¥Õ”«e³Éâa‹`éE²2ƒê]r²‰!Äl4j”HM:†L|/{d«)íJY‡tN`Ûƒ4Ô”m²}Íé18mï²'{†ÏÅS½)×ÈŽ»|aúõH—)ÝÊвËÄ}¸Ÿœ–±¸Ny#©mý›T`dš°pæ¦néïW´½$íJ™Î˜eñ‘TY¼¿,AÑpC™)»åZõè1y|aÇñ)Sö2XpŸóÈu¦ìcÌÉõ¸Ñ#ûM¹Ÿ5qeâ¼hâ1 rH¢¦ Ñ[‰IÜ”aáyJÈFƒ´“9&X¿ªS¦G¯U×Î±È ãã‚ɬoÓÑŒÏ9ZERÖeïñnÁÄ3ƒ@XÒöÇV‘æãŠ ÈÐ; *²¦w4H ê«PÛä ˜â ®ç%-.^^‘ÉöÖÉÆÄÅ™¹¶)U'^¥Ê°s§KS-¯F3îB“+“´Iî]Jŵ5‚Ь6dù¦Ì°m›IK+¬˜íB ¯UùÙÒBŽÕ*µ7dI%{/˜“¹ÊyÑlcVµ°#œIè{*l““I^X”©­¬8Õ¦^¨Måºùõ§\™×Ù7q:~ ‰V«Ê¯¾HÊœYùÎ2ÄT‡F{ãà›`E¶Ïf[ÑH¬oÆe7‹-™$Çy‹+ÚÞeÔ›Š[_¨ |ãHH¨é,ÔeÖ]°GcêêINÏ–Gyl)ä'T=<]å” Va:µkÔap{ÔÙ˜7l)œªŠ¦gVß* '™|Q–£v1—‚ÛqV¢©£3ðž½µÙ«½ì¿WÌ %;x‡Ö›ÔD²g²"·J2}#›å7uJŽHÚ±°¢-Ë–­U7³DdË0€ra²g º¾á»W%}~Cý+†SÕEì'Ø[ÅVغ§á~TOLò©~_';95Å7ÓÂnb›ƒÃ8b/ð!*V² sX‡ç~¬<oÏcÈ™€ï4rÛƒ'`Ø >9‚§0÷ Ì3ð òø÷8r¦´.¤pí\¥™ÇèÚûq%>¨-XH™b”q䘶¥cm .Û–:ʨ1o@kŸ*½²[ÿË _¼´üìù7Ûó /NJ`þŽªçt¬+ ž=¢@°´nùUçàCΨCÆÎ¿N_À¿`USªø[ºr’‹óqІ?ŠRmÛ±Öf]O è˜@픓šèä`ÆBž4†`Ì^è~{¡W¹ãꀖ|KÎàòž3XIÇêü«ÆqEÉ8Þ7ŽúÓXý4}[ÓYR}ö¡w•*©w8«I˜‹ª œuV<^yîçÉQ')ó5cÊRÍ“r3œr –Ê(ÊåVä6ž¤;xìïÄ>¹ 7ð½_îÖÞ\A;73OªˆLû5hû¥Þà¨Á|ØŒñAÊQW0Û×÷Û¤²”Î4tÚ«hi^°ª”–®Õ”þím|tÆN=—<È =Áz‹äa,‘Ϥ©ÛÈ™¤î¥xØ6i)>ƒÏjê^„1’¸¡ ùkÛúŒ&Í Î’zרë|ë>-v6¸ \ÇQ,pM»‹ØTàâ„á¯æhGóî1,«žŒµÆZzè FœpÔ{ <Ån}àN °ºØ]ày­Ôਇ0üxìü­ÕÌsÇqµUsLÅ-d8ÈWˆ s¦¤qU'íWCDÅ(‹nZ~¯ŽÛ<ÍX/8ˆôݬŽ[ŸúéÀÞôoR†»ˆÎ€vØÙwUÐ~YWrJïC} D»ÿ æ68ƒ¥éwW±³Ø5ŽÍ*IS¢t5jœuœ;ÿüTŒÔó!?#5¾A&ÿ9±x+ä-ÔÉ/Ñ(¿"‹¿«å7Ø"¿e†{Gû¼Ž­à‰û;ò³“´U„/òMyÚÉM8¦#¨“5Ea-˜ÐžúÑÈè}BŸÄÛ?µ‚޽3ØÂ=ßÚ~í=Açitt˜´:ÑÛ¸ñSèWgÀ`.ø 7 6ªlZ{QÈbë)*ñcÎ2˜U?V;n“`sµŠ÷“´¶DÑš2DµØ~ܪµýðÛVP ?m˧m h[–…¨4аÊX„zöÒ4¹-Â%irkN[Þ˜¶¼Î¶¼ÕÜR‹ÜžÅ—ìc¸ËæƒÏÁå8iÕg.çI«2ã KⳎ«JŸÀrU*°_R§êªÎêsj|²j5èÍ÷•„ª&ª&GYW8;'©¥œEÒZµjד’[±=$ÕîcßòÿCFœFn£sŒZ¦Ã•Xh¬B‘QRc5ʵ¨3‰Å:¬1Z±ÖØHLZ±ÞhÆŽ·[±ÝhG·Ñ‰]Æ.ô×`Û}F7®7®ÕØ]Gꄪ8r¯ÉbkCº¸XÊòåÃ:ì¶SÎ*öØEˆëm9•,o°“J)K°³ÿ—'©ŽZÄæí \33îF8 g{ÕÏröüû‰Ú£uþ® t3Êvö‚§±«ã v3î®ídhõ°*«f»Çª)ÆÎÿB“WÆ•iFUoĉî0òŒ‰jKƪ›Ò´®é9}[rc žÓ…TûðŒ‚µ7K¹‚Õö4œ⣲œ1ðž×ð‚ñ®Ùa߯wäÞËöá¬è5ð]ܧ`åÕy]êG´AÚ>7ÎÛêÒÞ뺎Û11Fó:‚âi‡ïáûÎ8— ¼"ËF\Ðð?Ä«~$¶üXLû ^3ðSœe;-VS~fàçxÝ@¿0ð~©à¶›ÖýØnïñ:ê Ó1"ö±ÿÏ|`ÅÜðt`øË„v%,Eɺ1jyYêðÛžm‘ì\|$´/|Âú¿žW]ß\Ñra¯-8wIÉíåd87ù‚SæQÄ,•,ñ ;9c>l@‚ t=bJ·G='¸ª µdƒdï˜ëLÈ öcrÇ¢1 ûH°‰âìx§p¸Þ+œd 8Ðð±&í²'íX0ËÞÃNÞ±-zßêÛïrÐË’óŸŽ?Á Unì€Æ–S¹(œ<¸­“/\ïs|_Ÿ8¸” ¿I©$dˆÂN~°„¤ÁI…¤Ûý­Ï]ƒ"“€ë'È=H¹Â]OÍ@I©o#4íß½_dܨìÚO’2‚›ø6qWðQB>ÊfꓳÖTê-´ð_­!<è1<ÞÔZzÿ*%+¹rJ1š <£d/!2x Ú`× ¢3ˆe•ŒÚSƒ>˜Q¯àÎTWwO‚êâ—` Ñ:ƒ%²/­aYõã¿÷\ÁvÞ^^Å–ŒZÅõVnÕà ÚV´×°º«†[¸ÕH¨3Xs9æ#xÎDáËÓc;>]XAëbH‚ýIÚ7§p”üÊ>xœ¥7à/Ÿž•Ðëàa ŽðÝI¢"Þ"žF?‡çžÆn#ÂI"ž"梞ÆqËP|ês¤Bü;m´¡¥)öœÊAìC÷“[Ê“kÝ õ·¸5£1£¡W°&¡Õ°öSÅÚŒQÅêL«ÈZë²pfI¢õrBó­¨án*Û‰6¦6ٜڨ¤vš¡9Æ0œbR²˜bà—qÈ?Ç0 Åü÷àn\ô÷ ¡'dð^¯òü5ž¾Î¾ªòì ñ"ƒþ+÷7øÞÄ1Mô·0ˆXøKà¦ÿ]&ö÷Ôù-xŸ6\¥0ÅRë{´â}Úq•>àÇéü,ý‰¨¥&â_¸þÍ/‚sLÌézšå3PK¨÷QìdIŨ}¹>6]–%³‹|œ–eÁtÓú7éÇÃ<‰JzgKäÚl‰\«—ˆPx„%"Ôn"©>µ{Ù Bíã4‰ç*öó…ÖPJüUHk‚ù²Õ/7 ’êz›¥2g$üƒXÿôýjnÍZaôÄ"C cµÌÅú±>Zë`ëËøÊ<¬[˜yÿ&ÖÁú*ý¬Çü7ÿPK ¦Nj6+ýviœÔ(org/codehaus/plexus/util/FastMap$1.class…ŒK Â@D«ý‰YxמA¸9Á86ù0$!3½š à¡Äö³·‹¦ªhú=ž·;DA)Ä„8kúÎrZ:&$©ñaoÚueΆe×:J«0#,›.×¶9qaz¯[DZ>”NÿÞV„²«kî¶ÎxÏž0ô3u®ÇŠm ,þ‘°Îߊ m„ñ§G²±Ü IÓPK ¦Nj6êÓ=‚0org/codehaus/plexus/util/FastMap$EntryImpl.classµUÏWuÿl6Ɇt)-¬¢-El!Á&¤­ik[„6ªB‹?â&|! a“n6Wzó=/=xî…ƒ¾géSßóéEßóò9³»„mØ%äàef¾»3ŸùÌÌ÷Ç?ÿþú;€jqôb±ƒÄG,°Xbñ1‹OX|Êâ³8ú°¨àócˆCãE­"[Ë D]Xd±Ã*ë ]Áº‚²„p~]lKèžYÓ6µTY3VSïÖDÑÊJˆæ7µr]°¡ËbK‚”“Б¯šbS¯ÔkdO–¹Û¨’š3 aN–µZMÐ¯Ñ™Š¹š*V–EI«×RÕ²Ø"U·ôrjZ«Y³Zu¨L¹"yClY”|A¬TL;©¶b “Œ«º¡[×%ÈÃ# Äx’0%tÍ膸Wß(ó¾V( ®¡RÔÊ š©óÚý¶J:±‰® ë.zjxįÔý_pŠÕæùჾ¾á·Qr¥¼LÉÄúV¦¬½~ñKä.¸rÒSŽîuÜìæ4“µÉkÔ“XI«•œª©4‚˜U™·LÝXm®ÇùJ‘q­XµÚP:–pc¸YøÚ"œŽùmÃ* K/î'ãKm&hkgìeÊp¦½Å%ï"“ÎH˜k‹ÃçÚóö2³¿çÅ·íåüÿ{4æ¥xÙÛ£ ^¤Ú›S΋•ñ6?£`C$\8âX–íÐQ½|)aº-¾9/áq»øùJÝ,ŠioÕ¸ÈsVñ*†T¼„~/㬊s,Y¼ˆÓ*Øz§z|N§Š$T¤1¦"ÉÖÞÐ×|oÕWV„©¢‚*Ýž×Øx¨âM\Q@7[âèÕI8Ѽ?% ¶n©„ÎçØÓí¤U«Â kj´Åíæ­ Ûäî^4‡¸´âF½ë¥7Ц!n6½{!n¿­i4¶¦éØzÀÕç\=hë>²h’„òšýjR“IGÏÐñ“ívžd”?ʸ@¶ê8`Ø—xŠ‚FìǦà‚opÒ78Ú¼î<Š×Ýà9ò–ÙƒƒgɧˆŽîcçryqù kÀñw±ØºHm£…Z™"+D6mMÿ;ÿvòOÄãfòÄg¹ÊÑ_pLÂ.ÔÇHpî¿ÐÇŠ>wºŸ{ž@u–C ?AXÞ‘wÔº&j_A‘¿†*ƒ)ùQƒžŠ+È`œ<)qƒèm\¶‰J|^\zS6] Ÿ)íâ¸Ã¤“­8ç—;MýÞÓÑþFGéX¹w\È3¿¡ëÁ3œpOvwï¢ÇÁ=¹‹SÍsúÁƒzÆEá-dÉ«åy~{]µƒ¯Ù5Çpoû@(í@Üðeq`«qÓ—E¤ˆ[˜t!²4b­’H.= âÑ縸 l½cOn*. ¹­à¦i{ùÁ…wÖw'.`n­àr¾í—Ûiÿ»¸ëj>‡AÌÀ£UQ³p»êp8ÐUþ¾ Ç'9ç*—ü¯r,Ò¸[¸Ô<Üæ0€[?q è—·~Ü}ßùì-¿æ‡ð¡-èr½o2½kx…¬8ò¸íÀ=ZSªÿPK ¦Nj6R'7ß|1org/codehaus/plexus/util/FastMap$EntrySet$1.class•TÝOÓPÿÝ”¯1a Ñ©S·è‘â’™  ¼ÝÕ +)-i;‘/>h"qñÁGü£Œç–º 1¡ëÒ{zî9çw~çìÜûë÷÷LljÐð$‡*&QÕ` &Õ9¹ÌKuAÃLu‹*–2ü ¾Še†Ü+7ôÏ›Ç'ƒÞt]áo9<DÀ0×òüCÓò>ˆïæ‰#ÎHtCÛ1<ßð“r?x!Ûž/è#ìØA™2=eŠ–,UÛõº¾%¶ä Çø ÒQÇ4J:ò¸¥ãž«XÑñ«:tŒë˜ËK¬éXÇõwÊ ã׉PO¢­(¢IãÁCÏg0’ÏC51†anY" 9Yª×vúgoô¥®–nò¡ÆÇV%ƒ·73HøŸÑ/±.¼K`|9h+X– ö“öð2|g”è.Ñè` #E·ä3ɼP²ME{iz§Q$}†¾Pèo`FíŠa|…ÒCª‡ô2_Ȧ`–VMú)SÈ)£¸å`2wpòHÞ#—˜ä)mc1‰lêu¨ Œ*ù+Pc}¨ûxC­”¶ÂÈü„šþˆtêS(+Já ÈHä!Ê1Èë˜OQ––¹@6’= Q}’Ûç>Þ¨ìž2!¥ˆIeæ?u*x­‰.(&E Š›¥«Ý@,¹¨ËøPK ¦Nj6Êu>A´ì/org/codehaus/plexus/util/FastMap$EntrySet.class­V]sÛD=»þ-+4¤M€Ð„Ôuƒ?c»JqSZÒL„’b(<­ÅN¢Œ"Iî¤ý'}àôf -0Ôú£:Ü•TÇMÃXÌ í׽瞽÷\ž=ÿýOu|§ã>ÈÒë’ŽI|¨á²Ž$>ÒÑ WsÐð±Z\ÓqŸhXU;7tä°¦¶×5|ªá3†´¿ky…C¾Ówwêfÿ{¹+^ýÀ–‡4 |Ë®¯ Ïß-†ìö=Çß•¾e’ç˱ü« Šã]K]†ä*Y0œêXŽÜì÷¤{[ôlÚ™êôMaw…k©u´™TÄ2kŽïÞÛ–>ƒÑvé®ÚÂó$TÆF-¼ð%æË—®ðû.ÃL±ÔÙwEhÛŽöÉ&éY÷)r¢Xj“ƒÙw|a9iºÚÛÂÙ©oõö¤é·Jß2¤¤Â§q-§G`‡áUì}q™$ú½=uáWð(Ÿ®ÜïߥøÙÀ¶½`3Tc^RYFN˜¦ô¼BóbƒJº5¾0G)*Å©??lh ä€¡£êãÃ7eðÃ&C!Ž5ƒ¾Ý¸¦\·”HŒèdIåÓÀLxSjö9)$öí MårSCÇÀ65l1œ>¡˜¾À-_b[Ãm_!ÏPŽ_!]åþ5¾1p¤ Rl†¤®#>×{žï ÓöóãÓhšò¼ôŸA ãÌG$×T’‹õ- M¼”\ÿŽôoJj3/šóåæÈÐyÔB¥“ºñ_:oò¸%E’? „í…]aHFzt‡ k®ÅMRÐs'²椡oý/2²‹úðOBµá”Ò;§¡ \5­ghõ­8zù1åʯà?ÓŠã z§É<‡7in¨9t¼…³ææ#„e$‚³ìHÞ!”ÔOÇ&F²C€wˆ`p‘Fu–)ÿþé‡ÇüçGü3CÿsÈGþ÷É:Ic¾ò´8[y mCaUC†á²›ÕÚ#èGÈ3HÑô4ž‡ÁÏc–°ÀƒHeBS­~Èz–X,Ò,¡"DÑÕì]Þ¥!#+!K¯òxŠÜfíoÌцÁP{‚ ¢õʈV¯%G)ÎS¥ÀËD±B«˜ã54y—y-¾MMßj”–¹ç¯ðÝ9†Ôêío ß2I9oÙ–¿È0–ë.ͯ1¨KdÁ0P³lñª¹Sî^oÐÉ`Í1yc»–ÜG‡ª|yy)V…Ï`Tm[¸K îy‚Îó]}fC%½:iùÂå¾ã2 çòµm¾ÇCËjtN6ªg} ¯±\¾JÓ±}nÙäg(Ú7¸½Yz]ߦ?—_'C§¾-_~ê’žìŠg`q³!¸@)ü>nšÂó²•é2¥{¥{ÒŽè*9UöË2€¡ÚC=º;¯5Sö+ Ù^¬ôU§éšbÙ’å3¢›I™ 8oÀ@¿\RõzŒ=[‘‚Gæ ÌcÁÀ"F dðØÀ-ɹÓ#‡êxRõ§uÏw¹éç£ÝCc˜øbQÒ2݌ۚ¡"›¡§oõeßq_’3†ñ³Zóô¥KþÈΔ% ùä' EÖ…öiÚÍÐN¡Y/!V(~ƒò…v i€Ù@y ´6䚈q)`^Æ•ˆ0Xp—ú õ-QâŸ;Õ6@ª¸Šk`Šfy—,|…ò‰Oúõ6}²¥¿Ž‘H¿…’úâ!´NÀ»0E¹º›ëL õqŒâ°Ò :ç"Ä3šcRS(]ãLhÑ 'A´þ€›@R„\Å`œ € ƒüo¢“qšåÓÕÐý?PK ¦Nj6[^T•N/org/codehaus/plexus/util/FastMap$Values$1.class••ßOÓPÇ¿w¿ÊJÙp "h² ¤T@@Q" É@ †Þîê…•”–´¿È4‘¸øà£þ&ã?Âxn)sâú-»çž{N?ßsoO»O¿ß ã‘ŠnÒPQTÑ’Š1ŒK÷–&¤««È ,‡IS ¦ÜfHòm_¸ î0¤Û¾{´º·o1h«¶-Üe‹{žðÆ+Ž»£Î QãuOß·Ä!™ºoZú ÷ü5¾Ÿo^<ϪŠmÇ4ñk¦—'½»4ßäV]Šía'©DJoÙ~Mø¦A€Ó6ýûTM!2¡¸ÉX¦D†lÅ´Åz}¯*Üç¼jÑJ®âÜÚä®)ýp1!KfÃXT•ü¤Ü³+öœÄ RT©qo]ú¿EX;pú ÅÊ.?àºÅíýIuW>]¬n8u×+¦¬@ é2QÃF4ôႆÌ*˜ÓpózpNCN XÔp4,á!oäªzÏÖB‡,ù«ÔÜw\†RôÛÏ0±Ú67 áyùÙr™a­ƒ»Ú6“Ît¸]Î_ý9©ÿ´½~ឃî?Y–Ï"t—mvºƒi)°á[.ïl/§JSRi©C¥ÿZÃo,jvÄéFÍ ùÉ6'Ûbƒµýp‰üAš­ F_Z)½+#V*½E¬x‰c$ßP,†!U™Ç¾#Í>ã2ù$é ®B>Þà ™‹”)cÙD&Õ€rõöµ•m¢®ázˆš!+c=ÄH~„’x‰DüU”’Aö­ÒÓ„äq#„¬…õ É­%‘ l]´¿“ÚÒ¯›ÈŒ<@ö]ì'úدôPˆŽáf0Ž¢—ì ågèï K³~²ç)¢?PK ¦Nj6GÄ#{œ-org/codehaus/plexus/util/FastMap$Values.class•T]kÓP~Nú‘&ËÜœ®ê¬Zguý˜k»Í9í¤2(tz1)èÝi kFLF’Jõ7y¡ ›(øü â_½ß“d[©ƒÔ\œ÷¼ç¼Ïó~ž|ýóé €*6T(¨(´,ªPqSÆ’Š$ª*j¨‹eY,+2VeÜbHû=Ó+ÔæÛŽ»SÕçF÷½êže Hô}ÓªnrÏßâ{ eû•í÷ ßÔ ¹aÚ¦Ÿáz1Zê0$›dÁ0Õ6mãQÿE×pŸð®E'3mGçV‡»¦Ð£Ã¤Œ¼t¸Õ7h£µlÛp›÷<¡–b}B$E1}Ãå¾ã2d‹¥ö.ÉCËVtN6IÏ|M^ÅR‹ºcûÜ´ÉÏl1´·¸½S}ÜÝ5t¿QzÆÀ÷?W )Ý2¸0QÎ*×uÃó ë5*ñV|¡ƒŽO\IƒšŒ50´ÆèA¼ózÐ'iPg(ŒcMùm;}W76MÑ2-ºYeÑp S& ‰]ž:6fܖ±®áîjh §áŠ X“‚!wÜä]Ïw¹î7Ë¢™ŽMßÃâ´‹Ê–3f˜ˆ¦¡^ã0Ö»¡iœ<œÆÀòô´Uˆ¦Ïˆê’œ„ødH¢ä¤O“¶JšDR- Q®|€ôŽ4 §iMCÌÌ7Â#À“Î pžÃùˆa‰àNùŒäSbI½!ø>D \À\D°LRÜeÊï!}DúÍþÇ>s„¿ˆ\„¿¥ |eò(ÁÏ€ Ebw —×43ÕÚp(ûÈ×Bhö 2û}B8\Å?à ùx/Ió²?ÏG)^‘æUÙúš4¿æ—Òü»4¯Kó+aóki~#Óß É7ÜxS&¿“æ-áþ¶¿wã/8àÆ»²é°°üƒìxO¦Ï˶÷…ÎHóŸÒü—|øoùðžìû7>ðb&>tã^Ì’þO^4âC/þ–æ/^|„¿Jó77>öà/šð©wã37ŽºøçkŽÅ‰¦h(™ 'òæÆR‰5Í]Q×yá5­á”‚G/ê¡kq(Ú-=ËÂ\ŒÈ0xiK<±²®-Þîu'뺢ávÝ©H´n^(™ZꪶÉÎ"em¡®P[$µ†24+8—u†’W*x—uÅãÑy‘D’ŒjK³3Ôeõȸ%$Cç²däš°‚{ÙjKî '§›VQ ÛŠ(7Ï~WZØ €_fžrÍŽÄ"©9 f̈́ŠŽ&žR(h‰Ä »;—‡‹BË£\)j‰·…¢‹C‰ˆÌ­EGª#Bý*OÊŒŠjZV…V‡Ò˲$ìL¢&ÜŽýB8³ÖrÔ4kÁÒ RJZÏIÎíì’¯œ_¢ß¥B‘X’j)”Xœ¢¡ØÊºó—¯ ·¥fÉ.óJùZtüGÚLƒ®0$CHÛƒë«Ó½¹RpßáþÈy¸}nš¢Óê'œølFï´1yÜìê&·Óû91@þy]‰ðjK‰åÕRœ”œ€£Š(ç|kN…¡T•¯|n5ħ†"îÃM¸Uax?‘ʧ p«OJ3Œ4T‘îSÅÒ”Ýj¤Oâ‹>Ÿg£Jeº !ÿÀA'êŸ*Så>liª›Ff·5Çx«b¡èÜD"ÎÛ5äu|j4aÁ×¾;p§—àR¾€Ë|¸Ë|X+}jŒr26 °t‰Ç2Í ¸bét•àV>uªˆúnu«JŸª¢xxTUg¬ÄÙ|~ Ã,MñD¢»‹‰xã ûFµ …,²éÊ¢8C·5œÐ1)½\yR‘yO*r)²Æ¤­æ12äÚ)"ô…=spa´¿ÜåÍF…KIoPÁ'é^8e&Sr'õ“ê.” ,+†“ü˜M"V™ 0â˜Ô˜S>¿ÊìÈ\½P× .VJºh“’ɪX²Æ©ÏN¦Êdýà´úÿ·Âä\§åZaºL™ ›siÕçš·^ 'w~,²"ðؤA‰Ð¬+“Lœ‹>µiþ?IliKOX'Ð;¤öh–L~ʉó=ÅÔÕƒÞ×oµ¸ÏºUõMXŒSù¬“ïîÏa>¼X+‰‹Ïýµ’Åt¿Èê™At¿Äê/¶ú¥Öw†mÝ3rëžÁ›}߸̥l—s6†<{áóïÃ?Laœqn íPÊžvðl>O·ËÎô~„±дVZ´ºyJöŸ&´‡áÚˆ!'áÚ w/òûàQhô—“ƒ?°yY6#àdÛI61”£‹\Å}B³«H“´ØÉ¨2,§@«¨¨¡E¸Òaç{¯V§¬eþ…\®Gë‚vÍYï¶©{5Mù%€ÅƒE³NÏA©‡Ún“séÅ/ç`â´1YÕïaoß÷÷{8†¸ux†uxˆpÞ·£³/‘{rˆ ±‰tÂ4‘/RmQÜO"ù½´ôãr}ý‚Ú#¨Ý‹¡»Q°NÇvŽ ô}?‡Ã¸ÙnCÁp<Êùväß0;Pƒ9òÛúi¸$y  )z¤¨Û–fµå#”´e–#CQ¿2 @i¶C(Æ“4ÛS¤þ4¿=“#C…-Cùˆ ήF%ÿZˆG¤,‹ˆGäÚiò®ÚÙG ¨à‹å%Î_F^! ¯"€×r ÚmPÆØ­Áµƒ3QmFš÷“æMRþ¥y‹ó·Éýšè]Jô‡›è:ÞŒ´4ßãn¹ÇJ³0xãÁŒ4E kp)Òð%¥Žœ.ì=úk vŠsôóR#³)à'ðSTãï\ÿ A:m=ßZÓ”‰YÊ¡…JæÕ´ôõÑ!bØb7ZbËHìkæD­€ÉÕì8´s99…!§DaF(,¨Ý‡‘ QÁÁ(E*]èîÃ) lË$îSú>1‰Å|‰†±ªuj8E-Ö"úI~, i·/‘•±j-J"É[Ø)VœRXg;Þ=–`S·seÖÎâx ý„Ñf,þF ã Xò¨J gµ;FU£JC¿ª¡¤(©ß–´Š"`šÜŒ|SmgûÀvZxŸ»EŸ„\Ó–À4Ô^”/‘v¸nGëv̪1öYZU¨V õürª|)jé=ú~ª<¢}»’ÿU{Q½D&æ.TùÕ.˜ÒTú9UþÝ—µÀ¹(¢žõÈSS¨ëTZb 5§ªÔõtê8“ŽÓ@Ç©G“:çª3±X…ËÕÙhSMèPç SÍÅUêsv¬w2ቶâD ;X®ÏäõõvÉ}*“x½U‡ocyÙTìÇø¥jN[´µR…u†ê=úf/¦é[,k,OªdßÈ¬Š¾F4¸=¨ä¤>ôza¡¦ì-wô4öýH Ã"ã(–2”\n›&â¦kL'nàüFÓmöqVÍ)ÉL'’Ä%˜¯·ñ\o½¿MÖÓé4mà!<ÌVâÏ>®»ua¿g¤IÑsº£Ä1z FsvfƒS·.:\©‹Uý:Õ{+«ž.ŸÍáÌ•Åðš%(0G`”9cÌQ¨6KQËy½Y¦EžOvc$åbɫģ/–‹…i…ÞѧäïÅ·µ3L´~š(à™¨Vr›Ý]á¶òVé°õ$hÖÇnœ%½bo6früëÑu¶ô|)ŸÍêÑÊòoKqÉŒ>d?š–³seÎâ &…6Ç¡Ð"ó4Œ4kPfN@•éGÀ `¢Y‹)fÓ͉˜cÖa¾9ÙN÷ÊV­™ª}‡ªaŸÿ¢ÚH¦ÖtlÙ¦s¢jìÀNK±ÜôeöI_˜vLúzL3ù®fäáóóq‹DƒU•¹ü¾…ë—F:y¸,2Ú¥/d†Ún>ìŽ踟qN,ÁÒRÚ},+¥œp —&=ž} ³[#ûÜ1‹ýBö3ٟϾ”¯þk\yÿPK ¦Nj6pMg Ú6org/codehaus/plexus/util/FileUtils$FilterWrapper.class•QMKÃ@}“¦µ­õã®xh=¸âµâ¥ AÁzÞ¤KºeMÊ&ÿ–'Áƒ?À%Φ"èEÜ…™Ù7oÞ ³ï¯ovC4°`+À6¡uª3]žÃÑ”àOò™"ô"©Ëê!VöVƆ‘A”'ÒL¥Õîýúå\„smJeï­\.•%t.²LÙ‰‘E¡8}å6 ÏeUˆ¥QOìªRÁ…ꎃâà‡Ä˜ÐNUy­äÌéí£…|”BçbG¿Bx“W6QN‘Ðý>rÄ|4ìŽÿ; ¡_·22KÅU¼PIÉý­âïÁã=»ã\¶­úˆ/Ð<|=×é€mËAŒ5Ž;+ÚÁçý¢[ózµíc}È„~ûPK ¦Nj6˜‹àŸ'ŸT(org/codehaus/plexus/util/FileUtils.class½| xTÕõø¹÷­3ydƒC ‹2Yd¢¬!HB„°ˆ0$“0’ÌǞͺ€¸kÕº‚WŒ ¤b-âÒŠÚºÔ]Z[kkkk]ªUÛZËÿœûî¼¼™ Hûï÷ãûxï¾ûî=çܳŸóžÿ÷€2þo/¼ÆõÀ ìG^x•=æe?f”øÎ`{AgzÁÏÒè “=I÷§È0ÙÓ&û‰É~ê{†¢Ë³&{ŽîÏ´ŸÑåçôø]^4ØK^\ý2]~Aï^1Ø«^Ì^£Ëë{ƒ–½éeo±· vØ #Ø/iæW4z‡¦M#±ÿ7´ÿ] ì?^ö[öžÁ~g°ß{¡Œ¨ö±÷Mö/û#û€þD—?›ìCøÚü]>¦éOhô)íû+]>£Ëçôâo„ó /Ìa_šð5Ý¿¢ãþ`üÃ`ÿ¤5_ÓæÑåºü›.G &g^¨ÄrŽ“\¡‹jr ™Èu“7½°Ø^á¡‹×ä&·èŒ¯!fÞ‡&3Mžeòlæ <×ä}?ïgò<“÷§á“4¹†ƒHB/›<ßË ø`“¡}CéŸ.Ã÷pšAÔŒ¤Ë teòÑ&/4ùZV„lãs½´ ˜6•ШÔäeôp"=Œ¥Ñ8“7ù“O¤©I&?‰î“é2….å?Ù W²G3ø)|jŸÆ§Óe=Τ³èRA—Ù¯ô¢6¢oàsL~ª—ÏåUôPM—yt©¡K-]ê<¸e>N3ùÚ¿.õtYdòÅ&_B"ú‹É—šüt“/3ùr“¯0ù&_iò3M¾Šè_mò É×аÁà&yáö²Á›ˆÍ^¾–‡ér–ºù:º´xy+à*¥]m?Ûàí^xŠTùI3xÜ ?e¯¼Ã ‡øzƒoðÂs|£^ç›H´›ér]¾CÎ%®Ÿgòóéáƒo1øVƒ_È ÏœpK<Ô¾´=ØÖjg`UE"¡öŠ–`,Š1Ðç×U®š7‹«ÂµÑH,ŒÄ—[:B € rEí,98|N=ƒÜš³‚ëƒe-ÁHsY}¼=i>—œŽ„ãÓ(…c–0P+¢!Y5áH¨®£uM¨}QpMKˆ6G‚-K‚íaz–“j|m)Ymo.kÀkƒ±²¶–ÐF¼uÄÃ-ex”ÐbÄUns(>;Ôìh‰Wnlhéh¤ÓäŽY‘Ž®½όՄcq„S8ÆÞ!0Юï¿fS;Чö„6ÆC‘X8aà%œ•ñ䂃i€.—„Õ JT2È´†£B, Ú†‚¹j‹#x9¼0yeZµâ6žz ê× T2eMG ®×ÚYx–P;îàa¤Ý—º*ÒÖÇe¡`ëÉò\3Që#HÑèãc)mc0DüÑ$gPüùq7!XÚއ$²Ù¡–P‡¼:iŠÚ¤$Ûr-Ä™(%ÿ¡WGý72©¨µ#_KWÊUðÙccC¢ð÷ŸÃ<6Òîl‡ì…b&Q_,”ï½N-´Øž!§Š j<%I(øñÿÅa@K4(sHúÚÊmÅvéjtN€–A ÝÈÛžÒÐ"ëwo½ÐHI¦CJ)²à]ø­Å·± þü"‹_Ì/AKK_«YüRø‹Å/ã—£*ùOeñ+ø•4¤¦‚â§æƒî§‚;fñ«à7ÿ.¿Úâ×ðkÞq/|ŸZð9üÍâßã×Ñ‚ëÑ»Ž4±L‹ßÀo´à8Â`ÀQêBZx–Åoâ7£˜RéÅ—|»ÁwXü~+rîhµ­û¾ÅwòÛ,~;¿ƒ–ßiñ»9Ëb¹¿Ûâ»ø=˜!»FKPà*,v%|€'m*%’ƒwZü^ä¿qðûû*–Ô[ü¾Ûb>6Èb£Y¡ÅäWZ¬ˆ,þ¾Ç‚‰Y{ùCßG´•òZüaZ2/üvªÅ»øþ+ejgñnþ¨…él¥ÅæÒ¥ŠÕZ¬†ÕbÙè:OKK¨9Ø2³½¹£•J‘ž3 qù=8æDãþ ß©Öˆw?²X­ge¨}Ä]?éÇcüѽ'´Q„‰¾iò7‹ÿ˜°øãüFŒç‹#Ô>òÇ£þ(–ú~✣‹3!ÿ4?”k©Åò'HyžÄCÌ â’FÚ@ÀßÔÑÒâ—UÌO>·«ôÚâOñ'-þ4ÿ zá²2‹ÿ”_Œ/+EªÕ²ÒÒ2ÒÄg0 ÂgE<‚ËÁì7º!fðg-þͰr‹?OÿŒÿÜâ/ðé´/YüeœcaÔG£Ë:†åR‡s 5!¿Â5–¢N 3#£‰—B9O4VJ‘Ââ¿ q¾‚FÉ¢¤Ü¯Ò¨…ÌK'þÝbZùq0ËfuÌ›Ö3(NÙRêïa²\ïäý­ßbq"Ä;Û5ÓÁ6Xl;×b[Ù¹ #˜ÙÞÜD~ËàoZü-þ¶Á[ü—¤ô¿âïXl0©ûVv¡Å.f—Xì"v!ƒ1Ç{Xü×D +68z™w9:±÷øï,þ{º¼Ïÿ`ñ?’cû>°à×äˆþD¶È‹Š,v»šHÞl±kØ÷°²¶ëœˆeƒ‹ :!OFºj®c,+•€ˆõî…ýñµ! å›Äëaõ©˜É`¨b!R<VD;Z…ðBIKÑh\?×÷]l7ClŠoj •£&äô‹­‰87пa­XÓ¾ m‹^Ù ¾ÊwÙV/Mà&ýÎ?Úîpœ”œt¡4-·¶áVô@äë%ó@ç1‚þ$9R;ñ°ø‡üIƒcÜùˆlñOÐÑñÜcñOùuÿ«Å?ã×[üsþ7 f"võ ’˜Ó¸ƒ€=I¾Hy“ý¾4Ý“ž]_2”Xà(önZñ•ÅÿÎÿAþêŸV¾ Ë×ÿYø7Ä 6§à·èǾ=sH qóל…’ÀRú?Í8ÐCÌ®œ3sqÍ¢ÊÓ+jÏ®¬Oâ·°Yú’”õ Ý],mºÄÄXO_æ7ÑVÙ¥->®>¹Ó6ãQ{Ã@aÚN'ÖSàgP÷»Š„3m[E;:ÖÄ$Ðþ…UéÛýzK(ÒLɺRH{ÔÂ*ºé!ÙPÃÙ唋^¸V¸b½5ðŽà0UzT TÍ'þSß¡%ÃÌk`OzçîÆ‰²& ý¢¡‚|eSD×j¥kìµ Wøz &u´éÞ([.ÍY´Vž$Ö µØjZêNŸ6Åâ!̶3¨ÖŽq¸=¾I´;]…5ÇìF®’Ë$$9—…Kg®‰E[:â²(ò+[B­¢J»-ÑüÂD+JÜI§ƒt>ÑIEÜ%éY›žßˣţ QPŸXr÷Ïhµµ©µ×¿°"}ÓPmOd[BS{Z—#¾½»µ$Å8’Í*qôÍÈž†¹ƒ×õÅÑü~¡ï’ Þ´\é¥/¨êÕ˜@’iõ”Í^ÊÄêe6À…7¹¥l„ƨ‘¡UQ!LݵØÒ0É<ÿ¨f2ŸŠ•plN°5Ü‚DgãI+‚‘h$Ü€‘A6#%ÁßdÛAÊžºy3ã¶½âs~aI9üs+¡´&º!ÔN ŒšÍ xðƤ·Z²¨Ïq¾Eºêl$Ú.©’½!Gö¢HƒÜÎÒÕ£Êí=‹L\ŒÕadÄSEÄ-ÙJ=!Ö¢[H4·F•µ6dôÐbm-t¬)ÇÕcHÿÁ'ñV9 ½d»t)7-ëùŽ›#‰&µÁÔB»ÁBM'[äj¢‰Òß5•Ô§2ícº…ùùgQ¸5Tni¡ïÍ9=ô,ìˆÐ73dÂrò’*§Eýß Õ†ZmïF̯šžµµÂw)Á5›dÊ’‡Þ3£úö˜ž,Ðé¼EÇ2ÈT&ŽâØÓ¯öÐ!e–3¼7òÞ ½¥ö9¬ë®Y“BHh7¨HB+ ƒWá5 Ÿøà-xÆ'¿Äç_¹ž-|~Çõ¬‡’sŸŠsïÂoñú>Ç;ûV´ØCbéïè§'xت±~#Ë^ïÃðP Þ Aû€ïÅ;ûu1û]\ù'ø³\9T®4ºAé5uñu¸øCø‹½˜¡ü — ÊÕZv‚ÿ1З탞ºÁìO®/]QÓ ƒr­¤5VbMgÍŒA9*à¢a‰Eô(We:«%ÞÊ7YòM`¯Ã™RÈÀë`À](Œ»a$ì‚tB%Ü sá>8 €u°"°.‚}‚{sÃð@¡®LŒÖ9#<(|ŒâÜÃåœ>O%ïN“ìX´²» ç”ü[À*Rò» ·´Ü¾{S$wLx\àîo á› Ÿ µðà̱ ÷)ÊWWwA¿NP‹R¡?‹pžûèŸ;ÐÇã:¡§¨¨òº¡8[ò¯¹TÌ#A€¿I7"y*Þ'IòÔÕSÏ@n  섌"¼ç •|Úà[À[T0y²·`'¢+@ò÷ºˆ‚B´ /ZÂP´½q—¢RO@5%*ŠlL’ }!„á…bq4Ž;À—8RƯœC.‘,ì_”]Ú‰ƒ’ƒ{ÝâÉð¿@J¾BEúô…o\Œì/ñ%p#ÿŽ«ls$ŽÌÇÀ· íuP =w²p˜<Ìë‚™ ÿ”Õàkø—€ù ÒÍÌI“øn%`vCAŠ|X¶K> hÿûgN‹´#Ú/q‡Ž÷ZiG5 Gƒ îÚ?6ËÕbŸÚC—MÛ ý™OUï‡ahhK;¼_Ü Ã;Á*×hàÓâ3ö"p/L†éx:Ìw›¼qH°þ`²àeЗ Al(œÀ†ÁD6&³Qp  Óñ^‰÷¹lŒcá?ž‡Ä8†0ƸL­`ir%S˜*_Á4¦#Fב™ÁLyä«pŽvŽ £ŽXV¤î‡‘µÅH÷ ]0 O1º¼ut/9ønáÐòqy>:Î|ç Ã!°‰ÀÙd°ØèǦÂ@6 òñîÇûp6]îGr•”(!õíä0ŒyYF ‘–Cä•Ò‚†K"÷Cá1iì‹Lü›/în«‘ÆZÈ`uÈì…0€Õ#ÃÂP¼c‹\4whîÐèOCc–)µ{žÔî,·vYÚ“2 0[‰›Î„L¶Ê¥âYŽŠë gY¨¶6à™pŸàün(ê±[ÇÏrëãÐÞ‡åØVH j ®KDS€•©Ê´"4À0jð6…e{ï€,eZÁ6ÎòïMÙÝÝPÒyä×åjç‘·Õݸߣ` ú·úF‘£m ²³‘«1”|*æzTÉȯsaÛcØù`[¡”]è¨owöeý„TO”J‹#I/ǵyÂ[©PŒ"¼€f’pɶÕ{,I5ùï&¹dÉ]ê˜Ëð|•p{ƒ24ôk€êJº`l¹êS©ÿ^e’–§ùÔÇt EYÇuÃx¼ûÔ-J Eì0²àWHâaÈc¿q ˜\€îƒ$€ dyéc‰Dw%Øž³‚{mñ!ÐsûÖ*Óê¼ÀàqÅBvšºM¤óȇJáÙåÏ ±ñ ¡ãûÕÿ Tý¯Põ?GÕÿÚ É™˜c|&Ô1É„#É& ]âW8ÇN±ãPœœ.w€‰·é.¿"øÀUðp ²¹yÜãɬDú–>Žo)ee¶ceâ ¤b9ä7^o#Û/ØAGÆÉ ;ÀºŒ³¬Ž•«‰€XGƒÊÕŸÚ 3&i%ôp8ý ¢+ÂÄq¢Zõân_äÏ÷‡>| dñ|èˇà!†Á>Nà£a4/„"€ñ¼¦ò¨äã Š‡:>àx)ŽÏÀq·àq؉ң¬bcÅ¡5XÎÆ1JåFcX€±JAŠ&²I8R“<úIÃl4JŒD>ÌÌ…Š€\a{ñ©"»lÌî‚Ê’M ÉÙ☟™|äóSqäËüÜÒH6…• ·t2;EƹVÜK*2´èñ0§FZ@n  ˆLàÔza»²ùþt\¾t¾‘-ƒxÌÏpìÀD7‘°ƒ¡¨ýS…‡ô±iYÒ±g8©àbyì<™ òüÛ±¼Úkgë©çlƒGñ¬g#ú—Úå9™`&›)cÐ,ÅR‰b€ ÚÝÞDÆ™‚äDr"¹Õãj’’lI…ƒdœÌÛML»gwÃÜ”Áowœ͖1¢‚UÊý«¤#Ê+ƒœÊ l6¤%q/Š`dð‡Q‹»]yDžL£9ŒjWÕL!›{4b«R‰}.-±sE¬`¨RFho#±‡‘Ø_¡ÐÞ=nb«œt¬¡ÿû%ƒ¡obK†=š¾Ô>¥å§»-Ãý´<«euNuEi=JwE]1†3¨z*y}6V\òÁ§DŠV"°•×o‡@Á™ JWIL”‹©„ŧªÖc™s3žòfØ!î6ÏDJ5J ø•Zäà(Wêa–²NS–AXYíÊJˆ+gÂz%ç+kàR¥®RšáZe-Ü „áfïÄñ8Þ¥¬ƒ‡”VxI‰ÀÛJ›Æ\tN~äø|ÞÃÎè%LBhD©ÇaGV‡ÙiBVqhb DѶÙB¬:”$ùÕ'8>ÙfBòXlX}ý­à-Â\ò4u·+W±•e+XÊ6ÈQ.F{¹Ìí¬ò$nd‹Øb©,ùH)˦ÿ© ÕÁã”?ɲVÃ:$bFËuÎç`† Êmx¸;À§ì‚ÑJ'ÌPî…*嘇Œ¨UöÀBe/¬P‚ÕÊ#ШtÁZe?¬ÃñÙ8îÀñF¥ÛÉ!f8’Âã²j©id³gÖ' ¨ÞEjŠÓÈgI¯³*Y^ßQTÈ]Ó S n¥J`¤äM@8hâW­¼#¯r¹\K]êY>¡@d*첡4Ms¶Nlד¶ÿÄ•S,Ä”+¯€Gyú(¯C¶ò&”*oÁX嘬üNQÞ…éÊ{°Rù²óhVþ„¬ü"ÊGh2Ÿ ÉüÎS>ƒ[•Ïá6åKÁÖiM‰(׉ çS£¬æ£.†áux Kæ·C2¿«œRðª'B?u<¨a”:fª'#£§Ã|µª3a‘Z KÔ*X¡VC£:šÕÓ ª.„Íj=œ«.KÕÓa—ºîWÏ€‡ñùGêjxBm€Õfx]]o©a8¬¶ ÁmÆŒk²5 ¢ªE÷jØ]˜­Áj€-0E$Ø:}§ëD–5H‡úŽÌ÷9ü’5 ²¶²kB(èOšù‡fXÏÖŠ*úEÈ8ÐTXKAÛË—÷îrÆR’ u=d¨ŽÝé¤Iˆ×Ë |†÷Õ‡ŠD‘çÅ*8Þ ÅxëH— ¬—ƒxÀŽ® *FQCE=•` ˜ê6ÈR1̨—@õr¬^ “Ô«Ð0®qÂÎ$éa‰Ö²ÔC«—~'i}DƸÅ6#y/Ê6Ø”MøP¬eÁD­LÕúÃm,×9b±sè.ã]‘FßcÇr]ñ×¥ ‡ m„Ûu1/×sسU²g’K™/±mÞqX—‡ÃÆ¥ðä%`j'‚¥…¾ÚxäÀä@O1Uì:ë¤^6àañcõ’Ô³NóNÿ–³Æÿï­*öŸX•v*2­ òµj©ÕB@›ÓµÓ`®VÕÚb˜¯-¥Úép†¶‚ÚjhÔVB“¶ Â8Õ ®…`½ÖübUl½LÓ|)¼ìAHê²hmiC06È4l$Â%qlý_‰ÃCñwK2IÍS)¯**ÉSÇ‘DPÈêÓÊàŒNÈJs+ƒ3¶©(Ÿ×‡öP>‹þWm3Jä;(‘sQ" D¶¢D.D‰\Œ¹%r,Ó®€UÚUЬ]R¸Úµë`3Î_ ÝäTªé$±JÆ eU*øOõÌV‡ÿ“ác¶Qð¼à?}©ÙÄ6K“˜#;šfQ Õìò”¾–v¯«ýdJ˜4:GœÉ¾#²&·L7±s%ôÇqŽò­Ù}p7\Auÿ•Èí«…ê£ð]”c> W3ØÈAû Í£p ƒ'À:ð(\Ëaiç‘wÜßV‘ŒµGÁƒësµp‚v¦iOÀLí)§FÁgì<¡ ³ºg;tÏ–tÓè|aÆ8™]À¶ Ź09µ9ê>ÕVçT ð ñØC§B¦}/•i¯º>õ{ä¹ÇAî‘È“](‰¡ÊÄ"DyªŠõïu©¸ÞwU0–ƒËrpY.Kâ¢Ñ6%·Õ/:êñ®OEùåÿ×ñ.:Úñµ÷ñtót¼‹Ù%Òesô›OƒPo¤hä7žLŸȽ¹¶wÁŽbñX,oñyXÝJ_¿ŸÐa3OÛõ4µ³Ü£Lòæy}ô3o‡"Ÿéò+ûà6ªY=y^ù-Rª5dûL1k?oó¢ë8§K ·ÿúÌÆžEÝõÁàчB–> úê#`ˆ> †ë…P¢`‚^Sô2˜¥…SõñP§O„eúI°RŸ[ôrئO…kqî&}ܪφ»ô9ð}.ìÓ«á }¼­×Ápî/z½Þ6  ÐÑkòb&^%¾òyàgî.œ»TÌ¡X!âùGÈŸ8BþD ™F›p¤‰Ñe8¢.ÆØåì T¯Yð »MÙLR†«œïLYº ®çÞÁºáΔt@_¦¾ÜÕŠó°ï:úÞ»o{»Z~L~¸›â$AÔ8»‹‚¹í÷0†H¿7FÂãùȺ¡ºóÈïS2@}5ú$&Ùz3ŒÐÃP¦¯ƒ‰z LÖ[·W&¡ ƒ† H|™â=EM£s$O§îÒþ5F¸½dùÆáÕ É+ ôDw§² KKý«L«™†Uצ…«¦û=„{ÝqÂõÒ?²áòÉ8‡•"›\tˆZö‹—åîýñÄÓ=¢ tAçv9s¯¬Né'î"ö>;[-§|þþ¤:vK¹J/Ê5…:/âg?ó©yú8ò*Å´Þ ûœP’0@4ËMñéÀgî‡ùåZ€5ÄpÂ^ZîAcïã3|žn˜× q{TÝ gÉŸ-TÐ2$²ŒîÓwÀh7±¯ ©ÝÝC-A¡ |w' w¯Ööz¹T4„Æ÷Èa+&€nIÕoL}'äê·C~ŒÔwA©~/jáýpºþ œ©ïFý!ˆê?„õú#p>–ô[õÇà2ýz‹ƒè)ž„ô§ÑSüºôCp@žÐ‡ôàyýExEÞÓ_aºþËÒßd¹úa6Vˆ¤¿#äß„ò\¦õµøiÃep/»Nüðá.´(jüz ^–í”{BOp$µG×ãˆ‹Ñ Â“œ ‡EZ¤bý»á%‡ý›œO1ªL•î´›è¥QÒ$ñþ‰Fúžž¢.ñM¦#ÊÄb!·ÒâÞbÛ‹;ŠÓl%}E-¾ØUÔˆT”"wÝ×#¿ɉ^‰þ)Jí3§'é_B•þwhÕ¿†ýجÿ¶ ŸºÃP\‰Þìfiaw²í‚s'Á:¶CpÎÍ›[Ø­2ñö¡<È{ŸÃêrØ ãËU<-çaJùY–Ûµö—c¾Ö½¬í†uÁcÁýðcrxËʧD⧺~ÀãÓ¨÷x Çú ÍVûxOPg4Ç‘—|ÆÓ˜w£UOû̃%Ô< "p6’q6ªÉÙÄOjÁÀ!à1†BƒžAÏ cà$c 4XgÃ&£Äq¦tœïË–ð9òwš4·S0‚Ã&v›è6z ™C-á!°’ÝÎî@ ÕìNv—èÖ±»¥ ½€Ï(8Tò <\òøNØÃÊUV®!³2ŠÉ3ÜI? ~…û•@Oÿ~JÅÈ3åZ'LJ|£_3Ù_dÊ {Ç!Ìœ‹÷órÏsËÐí‡ç)Ó.×EÓ— ˜%yÆ8ች?+×·hêôéTÈüœ Íhôb'ä¢Sr}žƒâëgâ–)Ô‘>÷dÁh€w‰»ÍòýøÐìž–qdåoœÅÆT˜dLƒ)ÆL¨0* Ö¨„ÕÆ©ÐbTC›16µpQ—áøjcÜh,†[Œ%p»±îÂñý8Þƒã}Æéðˆ±ž4VÂ3ÆjçgQÃv1ú‘h- e÷° ã(‚Nv/ú‰ï`àÚQì>v?®³àöŽT<É]l7{PDÌCŽ’@£Ȉyˆía{SÒÚ‡Ø>ÏÉü¹^æ‰5v›¨2E°µ(ð—êP QŸ_®+Éý…ø"KŸE¶CF ÄÎßĪÎ#‡ñþŠë#ømŸÓX‡Ìm…¡FFgC¡ƒ£¦ ÒØÕÆfdòw`q¾“µÅúæ>öC„4«ó‡EðGrŸ¦Îc`à«&ër~Ñ? ìŸÙÛ¿±û!ÜFÞÆýCû˳ýD(æSoŠ(ÎàuxÞP=ÿPK ¦Nj6X¿[´%Borg/codehaus/plexus/util/interpolation/EnvarBasedValueSource.class¥SëNQþ-l»l¥–‹rQñ†írYE@¡@Ò¤ˆ±RþmËI9d»Ûìž6ø"úšø>”qζ¢`‰&¦é̜ٙo¾93çÛ÷/_XØÐaàžŽîÇÉÓñieeb0uŒcB‰I%¦”°t<Ä# Ók˜aèânÃö†üݰ­ºŽõÒ÷jÜ—‚‹ ‰²ðw!Eƒ3°]ÊZ®Ë ‘t¦ÈÍz{ô¥'/\þ¢^-qÿµ]rÈ“Ê{eÛ)Ú¾Pç–3*÷\Î{~Å*Sæ¾]¬šÃI…õ…+¹_ó[ ϵ6Ã5"±W´:/xu¿Ì‰˜¾qXæ5h˜%Üô®"«p2Œ¥›M9¶[± Òne1ó›k»tÀËRAñÚσ€°é?’\EP`³ú¦P µe6¥² ôbD‰>W‘Ò0gà æ ô ©ÀÜÆ”†O±h` Ï ,cÅÀs¬jX3Å:ÃÒÿÜCòbŸ Óÿˆx§7Äž•Û>»p†ÉK¡Êް²^µj»{jvÈGÓNÒT GäU¢[ 7næuÙÒ%/Ž€®>¶/ƒ7Bî3ô·›¬ZL‡»@‹™cˆõRÐÊïOç2í&Û-½UÎÒ 2ô¥ÛõµãI¹ÔUë|ô÷uk¹p›Þg WÐA?ÚzÊ)µ&¤#ä§­!?fH3Ò]fôì#Y ©“LtÒ“¾F–ÑŒÂu ’¢”<Ã!ÖH ëUX*™§è0‡1‡?#zŒÎ_¸)ÊfIÎ!Žyâ´â43[ø?Ù²s•nà&IUé-EG¿ñ­‰T× ´wH„Fìñ-ó"ï›8®ìN2º?œ1¢.€gtZA7V o:ؤ;Ë…LF›ÈgLLÜ"£ø4ÅŒ†÷u'D»ûPK ¦Nj6wl«ù…ê@org/codehaus/plexus/util/interpolation/MapBasedValueSource.class’]KA†ßYµUWӬ̾4!B Zè²¢ À+«‹ÂûQØve?ÄŸUPD]ôúQÑ™mµ."–™sæœgÞ9g>>ßÞ˜¨¦‘@1…8Ö ”°®cCǦŽ-†…·á1äZw|ÄÍÀ—–yɇǴu"méŸ2js{õ6CüÂé •&mqÜw„{Ë;y -§Ë­6w¥²#gÜH:ä¤å¸}³K™xæÐcšB®´}á‹ûÒ±Õ)çܽ¶RwãnW¢d_ø¡‡a/Òdq»oÞø®´ûÇõ)×uçNt}ÊI‹ñОGT¥íGE|ó›R -ýròJÊ …í t$u”3¨`‡áèÿ·aÈÏ‹e8ü#o†«©vdg:D^*Õ\•¢’üR%Téi$@-§¿ îHÏF£u i ²šdk4§/`ýghaL†ÆEÄh,£B;È’Uüަ½®•Ñ—ÇRÄ<‹˜Fã Úþ+b&P%Ø‚˜A"—CØJ¿úPK ¦Nj6õÏÊ’Corg/codehaus/plexus/util/interpolation/ObjectBasedValueSource.class¥R[OA=ÓÖ.,­ Xo(/¤”ÄM|3¨$xªšˆé>M—± Yw6³SÒŸ…‰Fãƒ?Àe<³mL‘1ña.ßåœóÍ|ߟ߾ˆð D7çq ·B¬âv€;Ö¬h Ô¬1N`¹w"Oe”Èt½œ¨ØíÔŸèT»g­ÎÅðVŸàæH ,ötª^> ”}+‰òt&–I_Zíí©³æŽu.°Û3vÅDËQe‰ó9D:uÊf&‘N›t*ô\æê¨/“‘:0#+Ö57T®ðlÎVvà¬N‡;[eoLnÍöƱʼ c¡gVå9­ó?1%dÆD{_ûw¬–öÐã±ÑÀæÜmàî ¬”¨ <ý¯_Xúó‘þ‘òOµã;¹û7¨5yF}£Þ'“kA²7vVÆÎX6EÒ#)—4åbOKú„ ŽiײÿFŽp…÷ Ü´öiWx†Ý/ÝíϨ|,ršÜ/£Ê} 5¬Ù¦ \›dcK@qó¬\¡Â„óqÙÜî~B¥úÕ³—âŒA05$Ý,ý&=–Ó-èÛô-0¾‚«…Pó·P-Š{¡ëE7~PK ¦Nj6Èeí~lS Corg/codehaus/plexus/util/interpolation/RegexBasedInterpolator.class¥VÛsUÿmšd7›J)…¥ J›ôänÒÒb± Ð p›ž$‹Ûݰ»)¼¡¨xC_úê £O2jÚÊŒúàèŒÎ0<ûLjßÙ¤IiÓõaÏå;ß÷;ßù}—Ù?þþñ'1|!c zD‘áCO›ñ2_õ†q¯ð¡OD¿ =ø<(áŸË8!>œ”q Ã|‘ðªŒÓ8dzÜz4Œs8χ "^ c-4~6&"!a\“Q$¥d¤¡s”‹"^aP&5#ˆ¬¬`Ž€ê¾‹Ú¤˺ºëÓw¯€à>ÝÔݪ"Ñaþ.kœ Xѧ›l ;1Æì“Ú˜A’š>+¡Ú­ó}QèwÓ:Áì³ìT,A–i-ëÄ2ËÑäÝ¢›.³3–¡¹ºeÆN°Ëujï-É-›¼XYèwf¹6>>\~€€]‘g½iž™žœ³ã¿À6›°&™'tæ°Âe Úí.>ÄÐÌTlȵu3µw±$ºX$À7ITútW@í<2z ¼HRèrÚ2Xw.cópT@l¦…ó€÷Þ'õÇ.²y@73Yºg%ß1›%õÜ1Í¥‹LÊ›9Yƒ2bŽC4”ÕyŽÙ<–±âŠš›H3»’Vሴäm=:OŸúÊùÐÁÍ4¡™£ uȶµ+<74b+?Ÿa*°Qp u 9éÌ&“Ü£Àhã赈Dq8z0röüõs­ÑÑë \dEL*¸Œœ‚N\qUÁ5¼¡à:n:DÜTð&ÞRð6n(x¥à=®ò>n ØöïsIÁøPÁGÜéÍe§{ ƒ¥4ãÊN0ÓíÎ%X†› XÖ] F¼h©mn °1›™T× ºë0#ÙÁ)¹£àc|"âSŸáswqEÀþÿUžÔ6æÅx~ÁvYäx‚CÊöÉR¦ÖBu,`udq.FÏxÇ«ŠZ&ÃLÒl«PD‹K¦\žö®U/‘Š¥µf‰´¥¬MX/Û—¾´b¾oŸ¯ß•Öì!v)ËãQÁªœÿ‹<韫Rço§6LœR¶•ÍpÎz+>¨z¡Œ*Ëq5ÛuFt7½€ë¹ÇnÈÉŽ9EI/¶*œH´rË©Y,%ÎÒš3ÀrX¿éMO²^j3RŠ¹Ã…6Ôô”ˆ–l‚D¢f8K¼€’KôÛ`ræ\>U"«qÉô/¨œ¢%Ý(Ú,ch¼¥}¦&þŒm=@uË\l¢ÿ‚-ô¿@-ž·/ZhM=ŽÆí:QE+ ºeBËøNO£êøï“̇(ËIX ?ê°kÐB;¥`ƒV´yØMh/âõ“žæ•%¼Öi*®#Åz‚XïÖŒŠ€|Å¥>ˆúÕ)@&®¥´|ë,‚>Œ”Qeï¬azrQ)!*x/xˆÛ–D+ n%Ħ§ nÇŽ¢ð ½*LgZ@".C5rá6újòX6ƒåq¿êoÏcE< ò¨žÂWj *•ñ ðYTÅšš$«=”oq/áE§_“']^ö^ÕýPK ¦Nj6öW"˜Ê8org/codehaus/plexus/util/interpolation/ValueSource.class]±Â0 DÏ¥´…‰¯@°‰µ;C%öP¬*Jª ¾à£),7ا“Ÿïõ~<ÌJ”%*B¥8¥‰LX®ö¼Ia¤U¢ ^[U¯GÑáÔqj¼qÑ·¼Ó&Q‹/ýK6Ã1aë¼­;óEÆ«è ßÓŠA¡m`ß;#ƒvVŒÈô翨 2 ¢œ0A>8LÓÌP|PK ¦Nj6b”&b‚c 8org/codehaus/plexus/util/InterpolationFilterReader.class•VmlSç~^ûú3×I1àš uì„0ÖR2Z’b•åkpãÜ8—ÛuìŒ~°®ŒVê~V“¦U•Jé?¦š ©_›:­ªªVU«ýšTMÚ4MUÛ?Õ²çÜ\Û¤ªúÃç=ïyÏ{ÎsÎyî½~篾 ÑŠ}´`HÄ~¡á lîqHÄá Žà¨hÇDü\Äq'‚†Ã~¤‚¨ÃˆìMñ•ãtc0}°‚X†ƒ"NŠqTD¦§ "‡q?ò~ÜïCÁ‡ …š‚™Ï)s»Q4N“FgÆÈ¦;÷ V6½EAw\’Ùó´‚J*&‚e gLF¨›»S*Z™ÎÝFž‚ÃfÚÊåÆÍ¬‚ßÌŽ8j}Õ>`fÓÅ1…ÚòiÙ°t{_ÿ¶ýCÇ{úîIÚ³«oPaIÙÚ7¸½lóv[Y«¸U¡?6‡ÀÊuÞk#faËO¾)Dc½mßÍ+1WÎÙ[èGÀDixÂqY#Ùs Ýô,‘gi“ØÖÅÒ±m1†ÖÏ·ñÞ€K¸GÍ%ô³WÍ^c޽ÍYãÎyÂ^ƒÂ7{í°W/”ðŽrw—ᆇkwq;¯\×°Œl]¾[ÛZ9eÈíÑ'g°â`Á Xnßh:çV¼ô ü®î‹¨›ßŽ2ûW¹s7÷5ÚóجmÒnŒsbÙþa ­ÑÃâZóìì‡Qö?oŸAD$÷´ ß9Õ. ´žÝ"Î#3ˆvÉ5oDûVºÐå‰xÞÆêˆgM]Þˆ—5ÿµñˆ·‰#žZÀ >Â|Ì?xŸ`×ùõø ás~þßà üÿÄSø7éñÒ⿤ėx _á |?cï)>T>|ªüø» à ¥ã[U«ªŽr‰ «Õ¤Õj1µ\u¨¨ºC­T]´öªV›XGI¿(©'ÄR̶÷±T˜Ë>ê^"ýIìdmƒÌ½Ë¦Ó·ô³va7O$Ÿ‡EÓG„ëQY>æÂã,À.<éÂS.<­½¦£ÃˆU‡ñ¸WðÔ‰ÖHSMGsDÁ]¶µ¡¸lT/¬^¶xCmM}½BÅŠH¬¥4i2ZÉxi4lœÇ!™…KC‰X$5‚‰P¤£Ô”[ˆNIKªPp®¬Z¾¸zµBîŠs¥á@GKéÊÆ<Ã]G08ÿ|…‘}6M1ÜÖnjg Sȶ8Ìky÷ÝÖ> eǪcmꌨ6/ÔJT*äuýô3´jÊ“›CF]²½Ñˆ­4† 1% „Ï ÄB²¶‰Z¢5Dèf-*2¢ÅH˜f6™D…Q…ÓÄÓêh² PXØWçúD,ÔÑR±öhˆûʉÍaÒl (0# Æ,lo µ$#Éøâó‚FTtSXº{ès's5U-US‰Ú/”¬,íg“™¢ýô·ó³Ÿ|IÎ~ÇÌÌd‰ND,¥8•ר‡ÓôSÀW8xç×…9Òj±¸ ';â¸Ø<¼‰ø›}ŽÖ˜Z=š™Ç…ÎçÞæÚÔk8å×Û­G”“uMŸ¶)1´ÈঘaàN °àcÞHÇÐú؇‡œ‰Œ=Läï²*þju`œtÎÆIä˜!ÍÉÙáÌ‘‹ã0Öžz¬æ÷ ®ÂÈä0¥¨ªh?2º‘¹§Nûà*òïC·Ý»M)gšw8ù] '#å\/Äê1™Ú¬áÎhK&>‹Àœ‰.ü¡ˆ³°Ö¾¹ʤ8Šö"«3-Úi—›bt‹Á£°ëÉÅÃÊEµE…6qÞƒpˆÃgð¢<ýðe½‡×Ó¾Êãs1N¿h‚x:ß7ý§¸ÿC8IFâ †à9ôG^¼v¸ÝÆñU…¸©3h¦OBÎO'Mõ[!÷ ²ö ´\+öj]81e²„ØKÅýLžÄ€›:•ÌÃ;ðâ]G&óQw"isðAZm/á9Ï̃(4 Àª Ú¦fæ°Þ3Eí ªÍ·²b“™#.rÅ©ïÌü”õà3ÛàðwúÀ¬ZÿÁJ_ƒÖT¹£Š}û1«¦tcvýÎ#ïgö`Žea–ïrV0*3ç8ò˜“‹óeåN¯s/NÚ†l¾FßÊêäú-Zü²¿×Ü%ÄT²ÜÁš–­Ü©r0Fåb’ÊC©ÊG™ƒ¹Ê‡SÔ,R“°”jŸ¦¦bš† ªm\oR~’Ó Ý8Œµ3l ở§‘Ë™‰BÅí¶ààZ²NÂu¸%)sYÊ/6Ï.e³âA»Ä¬;Ø•D& W¹™¾(*ð‰»ÐR[húõнòÍÝ’¡vÂQî0#üpï&8 vq£Bãr½š¿€pÎïÝ™'"Îqæ;é€9ÎíÈ÷:òei¶#oì*ØEµÆ3fSí>颿"S-ÀpU…ñj &ªe˜®–ÌS æjÌVu8‰{óÕZT©õÕÀrÕ‚•*DP#X§6álušÔ…ˆ«‹q‘ÚŠËՕت®2An&$é4Ö“H¹—q–ƒdU¸ÀœI¾Ò†[f²2grÁÜ‚ËM¸—c>çu<ÛÄ8ßÊTs°Øò`ëí.í#4óW°x”i1P‹:ý$Œá~*{c*WòXÝÀ˜ÚêfäþÞ¶ì3³Z"`¬Ý–=ò³ÄöñÛÇ Eö-ˤ}žÒY§:Åeu%‡0ªDÚn¥å=§Wë4=fÅ¿Wcø¼3Àbb“³Ó ý×”ôQ7;gNÚkUœCõÀ­î¡ª™`”zcÕ“(POcŠz–<Œbõ =ø*=÷:j¬ª7™ ¯Òko›æ­£Ü‘”)þÈä›# _4ÛO g_âÌÉH™”N„†´gÒ¶W™en,ß3âLF× ¦?4Êørº¿–™u†€îǂՅwBß*Ö>u'Jw›±Ìc^Ä7—Ÿ³¯˜ºš)/UNÃ"¶@i³8.eâ.ฌãê·îÿPK ¦Nj6 ™ë)ÝIorg/codehaus/plexus/util/introspection/MethodMap$AmbiguousException.class­QÑJÃ0=ÙºÖÕºéæ>¨ÆwE2Aè|Qöžv¡tIiZÙOìc||ðü(ñ¦Š> &pî½çÜœ’·÷—Wû!úØ 0að/”VÍ%CÿèxÁàÅf)ƉÒò¶]¥²¾iIÌ$1™(¢V®þ"½¦P–´«UªòÖ´v¶ÎdÕ(£¢­e—ÂZI=³ÄÔ9ÏȽ­åU)×ÚF•\é¦6¶’™;Èç²)Ìr.ªÃß®ç áiëL^+7ôÝ|ú EƒS†ø†1L)/…Îùöì¯Þ8@žÜ-F›îHèwáj`pò öDI¡ß‘lFŸ RæôGئ’ÖÃ.ÅáPK ¦Nj6/Vp:í 6org/codehaus/plexus/util/introspection/MethodMap.classÅW xTÕþïlofò0HP B˜I›,"!$š6 H(Xécò’<œÌ¤3L¨Z¥hÕZ«­¶lU4‰ "‹†M®(ÖZk­­K÷ÍZkmkW+ýï{“Y’‘Ö~ýZòqß=÷þ÷œsÏ9÷œ3'ß?Ò T¨^äáN;Üå… w{aG—ÕèVÐã…‚nªp>Üëåì>»¼Pуݸ?ñGÎP°WÁ>yp¿„Ã^ŒÅCrè•ÃA‡–Ón9ÉÁQ<,‡G$û>yä˜$ËÝG<æÅ$ ­ÂãRÐ9{Bî푳'¥êOÉá„Oã©çI7ž•{ßðà9kå›n<ïÁ·,â7¾íÁ‹ñ7^òà»ñ²ßóàûñНzðšE¼îÆ<ø¡EüÈ+ø‰‚Ÿ äU´n0šÛ#í±ªŽ Þ7"aµ&Ö£•!-ÓcCê–­¨Zß°¼ª²¦º¦R@Ôp­2ŽÅµp|•j×ít¸X[ÕÐÊE!™ÕW.«[^±¢bIm•\³ mÕã-‘Æ%õZ«^§µq¥v£¶I+m¡R.,”ò åraH 7.‰DBºFõ†[X¹Xj*I´§¡3oÑãFPÀ7ðde‹Õ‚q=*0r×θ.?p¹¡%gQ¢&×›³2ª„›³0ªE425p}i¤}Cˆ’] °/°M]%਌4êÒFX¯ooÝ GWj&.¯6ÔB«´¨!éÄ¢#ÞbÐA3k#ÑæÒ O¶hí±Ò¶ÞÁiK#FbmzPz¶´Î4»e_»ÖØ(PP”f̨Þ"2[ õqYžûÁ8¯…’Þ”š¦ ñ¨n&B„†¥ù¸ÖˆÅ¥Í:SX4øÈÔ,àKôNÞ¹ÉSŸŠ,gÖ¥--Û°‘*ö³É®¶]‹6gê›8E} Jâ6­;" Ûä•¥jJ°ÿ­ä­ËœÞäÛ"b(¯\‰Åè£IÆkyÑÀ»frú{´jT‚£ÑªÑÐ#ÓøÕ0ìµx$j^·/MáXa^L é±XJ ±–šr3d­èR¬+™“Z&5*CÝð%zcÂAî„’wk$ª§xO)|¥,—db±gÈa¦@npF]“ÜàÌ 4eEºfeÿ¾%k¯ý±î™^UXEš9JOóT²ˆY›ŒËÚFÌׄ7ñ)Ëh`ݤGã†Éþì¢A<²2u5E¢¦—]Liír2ɈÉŒŸ–¿ËÊ@e¾¶Œ¨µuÐnÔGâÕ‘öpc2¤Mät^¶!Ò êÕ†–›Ì4Óäy?óþ/ñ)H}Ä-Õ›,P4‰ªø9~¡âãø¥.æãL9ó|-Ö—®RqV¨ø•D†ÐšªˆFµNépo¨ø5ÞTшßHÜ[Ô:3xøV(¬â·x[Åf|JÅø‚Šßá¿ÇTüï Œù á›Ìu*þ„?+ø‹Š¿JFû*þŽ÷T\‹ëTü«x§*?l~/\ÖUl×U|_Rq+g)„°)® VªhÀJVW©è4y‡i‰Š«b;v(©b•ŒH’…U.«ånnÚq–VE(*.”CSfqU„[ÅšåUk°“V^ë°3K¬"rT\$w†¥vú‹ìôk¿—ôœÏÁ—g•8¯ÌáLžZ3‰‘ES³U¼ülÏŒUáY‹ËŒ–‡ù¹­Ræ .7§¯kÉš”Ÿå¨L“³­gcà¦nf ÓËEÙr‚bĪZÛâf»BÎŽ˜±Y7‰ëtµ•'Ó&)þF¢±ˆMÍ^¥ò¯Rn‹«×;ÈÙ6?Ã)k9ƒ–-Rg›Ìþš­úº¢zkd“¬gìxj5©^VCÑ79FlyÔh5â†ÄcþÅŒæ°L*ÕÑH«‘5'O-&»TÇÊ5Ë«ús…Oµ¡¹iÌ4-Ó$ZÏ4žÉ¦3í˜Õn¦K4šiqkE?&°å¯fß­ò7G >Â>ý£² G-éº4ºžô²4z9G&RŽn™¸þ1Ùæ“Z•A­Î .Ì ÖdPk3¨uÔEiTgÌîדZÂsLVæ?—ÿ(”5á~ž}¦–Ÿà˜ ù»âl80 CñyhæmÍ3Ø€ ùÛ¤z‚ß D;ø-ôÂ[ç/îEN}É Œ> •œ‡Ôû„§¸ä0ríX]8Œ¡6¬NÉÏ_“À\81Ÿz. ¼ErþÆ«@•¦l¿Å?![ΚÐLéNLA rÊ¡W6âóf,QÉ›ÚøÇûH(y˜ Ç1|oR¶Ë¼S½)c”…LÊÈE˜œÙÅ!‚6îI~¯’¿›ßóüÄ%boqßG¾ãä•9ís\ù®|ÇNL,ÎwÍ,S|Î|—O9EôÀíSz1¢a«Kôœz½Äç<„‘)Eüðrl£BQÎâ4ö¥4u ±™»Œ×Ü‚2ÎãSÙTc Fà“Ä+ ³Éˆ1Ð\RµäÎ3M#ÌYí”ä¢I7™FFƒoä %L§¬š²“Hñ“¨ ²ue±‡_©ÛIàòëèÜQÛÌ[÷b´ãäð;æ8|{b,}F=éqeŸã0  är6^Ðì¾2§ÏÙ‹3Ë\ö9J‰D¹ó•íXæs' Ur–€z|.Ÿ‡àC8k—yL5meýg 0Yž˜ ЗcŽÒsj¿dè)‘b&öœº¢Dªx7rŽbU+Ààx· ;pŒ'žÅxwãžzà%ìÇË8‚Wð^7=ÖD+†1‹¾l†‡\.À市^¬d¸~škNJÐq%=ᢜ ¸ŠW¨ÁÕø q2üOb+}s&=ÆDŒ'¸ o3w᳜Ù3¼È¦'ñÞàŽ“ß }‘½Ü.ãÕß·KýùŽ™þï¬qÛ1\NåÒ!œ½ Š£û¢®÷ÃÒÖË·:ÇGÇmCNãÁ¹Û¾[~»»“æ-ã[BÞ¤Jo‘z›3ØÛÕ^Æþ¬ïaµ°cpað`½È&F˜&›M•œo†¶4@×óÚ0gŸ3 `#îÊÆýõÌS[xM¯l$×ÞÉyíy‰è¬óÆdú’DÈM(IFC–>e¼Å>G/ŠV÷œz­8*f–gÁ-&bŒ(Ä$1Å¢³DsDqRßI|Z279LSp]'3鼤ëæ%\çæ³»ÙtWv }oêϤ~Æ~]q_ ïv8í»íåºktqÁÌ@½0u»\Ýj§Þp¤ì=Qæ&q_ç\¨b>rÅBŒå˜(£s¿XšÌ¦Ã˜4¤]íÉljåUK;™WoáLjÇÖÖÒÎ>‹h>AÛ®À ¨Ôп]:<ð†Èt0Ý/—·Ù®÷ïGq7Æöƒ9rhÞ´C(]s%|¨\é6û1ÝB̈™b†‰˜Ñ˜e!fKÄ9b¶‰˜Ý˜Ó¹DÌ•ˆyb®‰˜Û…q§?:¿ˉ(“ˆ¢ÌD”uáœÿçÂnD,’ˆr ±ÈD,êBý[Ø¹ÝØBÄb‰¨°‹MÄâ.4ÿÏ´XÒDTJÄR Qi"*»påÿY={êq¬e‡X¡aˆhOlÄ"ÊÇÇÑŽ¥bÅ¥h¸FtâZ±ŠËð¸¸\ä‹+Åhq•Ø"¶òïj›[\góŠëm=âFÛ½âæTû`ÛÅJ²R¾$ξj6`^ù+Ñz@LV;Ò›ñ€<l³ÂZ ˜ñŸŒÕ¤çtÁ›¾ÌpKz~s÷à]ÆÇÒ »0æƒAt_és»pæé±i¶\Âôqmym¹ùâF‹#L¥3)>‚i¢•â8ªÄ£LæO (ž¤MŸ¦MŸÁ~ñϧµ\½ý6ã̲™[þ>N´\õVÒAžÿÄÞÚ£°¯¡½á&!”Ó,-Ciýjéðôœžp('„Þ –“Ð5`ZÉxœÑSZÞŽçÒz]Þ1Òq#ëX¦£‰af=×4¡yÕ²9ìôü»ž4tÜÈÎ þ¶öq¦ÙKßBÏÈêCùÌ´niÓi®Ô ˜ -=®Y†˜—NÊ ×SÛÍjDŸM{Ãq-×û Ž¥%Ó›Ô繤9ôúZÛ*FËÈ&mÄ¥½TŠ^ÈYºm3‚Hyƒ¦l™¦³V¶bÝWHè9‘ž-ƒº·•ÈdÅL‚ŽyC§%£;)sæ´fëåÉ–á$äM$´¬²·<„⃮Œ~ª63œÇ<Ò$} ¨t7¶nIؽêX½<]mcAÐîHêNo™BgÚ60°ý?°*HV-,HØUÏáã‰t‰Uʨ™·úYCÐeïfçß)|¨ˆ¢CEºe˜*r¸©ÂéÙts„£S˜9*ò˜Wñ. *ÞŠ3èSÑŠÃ2ÞWñ>”дþ(Oçgg… ?áQq ©¸-ìŸÅs*>Æ'|†­âž—qGŧøLEÚe|®b w%Äÿ%j"Ó/T|‰¯xÁÖ¡&¡v=‰ˆíÊÆÏkvÊ=¾“ÿóª±È¬*ó}Mx ²‘Ñ Ã³¼4mÚ/°’Øùi»$läR¥ûuxë;SZ¥¦:¥Ùƒ¦¥»§i»ˆÜ®Êê…e®7´U ^æ3÷²Fc™‡6ÅÈóq‘C7&´œáhi2é¬aÙ΀î8‚­¶P1‘–ËéYÞà¶eáNlÀ1—1Vf ò`©œªà¦Â‹Ð¾U½hÞLÆtì<]W×JNÿ!N¹®U¯y@Öµ•aC…ºCøsyg]É/™lË/ß߃|Ãqs9RÄ•u{Þ·ç­e„OTð¸8;Â^«ÑG~æÀ‡˜«ìc£»N~€ê)ñ§âEöU¬N/QC88¿«+G;á{PvrMޏæMž gGwô2^¡üU7cîÛuÙí¹”Ò\«¢äþž{¨Fk;‹ð®èïZBp"Zz¹' ¾‡Û¢¯ê Æž"(=ˆ¡<ÆŽE¨‘àcT÷„–P3ñ;ëj‹Ø ±)¢®G~H9›ú"z‘ðS´.ë5n­Ç‘pì!šŠxfè§¿nÅVv<‚^Ç.¼zœãÏ¢ßO Ù0÷?‚CÆY=/#…Idpwp ßðWê;Ìà{$ñ%?bÎEï Ñè„Ziy…1Žß)œÅqŽdêv3æ „je”ï—P£“ÌÇÇŒ¾Å)®ù™×]œF/s]9E<%^ܠްìzˆæèD|ø-•x<Åî%´L0»Ý…æ(Ÿ`—8X£‰É&vâ&™þ>N1Vñ©‹8Ç>ŒóeBv»T"þ_±wõìö-¢i ûy:Ñ,H*¹j˜#Èr™ ¯!§%b-‚¿ù7PK ¦Nj6'Ú6ƒ… X%org/codehaus/plexus/util/IOUtil.classXktTÕþîg&“‡y‡„$d’ò(•—JB"Ó†DÂËðžL2fâdFÒ*Z´ÕÖgí»ú¢VTè#‚@­„j[µ V°?Ú®Õ–þêêZ­ËJ÷¾÷æÎ3÷NÒþ9÷Ü3ûìoggŸsçÂG'OhÆ<˜oxp¾éÁ·ðmà ¿òà;ø®ßÃ÷¹ùvá‡xð 7?â‘g¹9âÂsä±›<<Ï#/ps”›c.ü؃bþ­?ᑟºð3Ê1Ìâv„›ãÜœpá¤ÕeÈS.¼èÁT<ãÂi¦ñ„›p†{ʬ³ÜüÜ…—<ðáüò27¯póKnÎqsž ½ÊÔ.psÑ…_ñÈEfw‘Qhä5^—P¸´­}ÉêŽU›[V···uo^é_×&AòKÈiF†âH|M` ²ùà\Ž„ã7K°ÕÕ¯‘`oö…$äu„#¡ÎÄŽÞPlU w€F :¢ÁÀÀš@,ÌïÚ =Þ’0¥#ÛÖ¤™ýÄPóà@h=ñð@³¿k5=’i0:¸[Â̺Ží»Íáh³?2˜ˆ¯ŒÇB õÁ®D<9Ê9Âl&¡ØtÅUfH(1÷!ÁÓ¶+Œ‡‰¼„æÿßÏxz[·†b+Ã{ˆ°S}‘ ¯o¡EH¨M:ìúB±¤¯µ±pœÞÙI¾hdÒì$L×—‘¼¾UBÝ8D àõ3U}‡‰S…™½ø‚‰¹Sß‘mÍdŽlSbq‡"¤zcE¥YHXøÿ:W¢wÇ£ê«%éz3PŸ¹­ßÔXÚi›:®§0cü)‹aæ{ÑDg›‡–¶ìއ–ÄbÚjå+ÀÊdجÖÓ½ [ªÞZ¨iØ7A[%¶(oåJS‹ ÛÄt5¦§™™¯ZQº;^…b“é<ÞP—îÄš}ã„­þ¢®ôM7=“Ã^÷ª*Ôת”ÛÉÉTjã©Õ³*íw±x. ÆBÁ@<ÔGÑ™¡¬I©É~m×·˜ÅYb2®¬@UºøRCža2Ó¼ÖÔMÈÒ?Ž©8JésÙ$½»­ëMMÍÝVƒN“S¥å¯ œ`4Eâmw%tÚ5SMSêÂ:Ú~ÁþÙtÈ)GäöÕ3K 9ØOgup :D§d™Eåáó%´+å,ïÒg®_á¤uJýJ[oÔ0Bwžô-LFΘÒOùÙ AçN¥O_MÄ‚¡ö0_i²ÕËLžàÅ͸ŋ6t¸ðk/~ƒßºð†oâ-\åÂïxðmÞáÁK^\VÍ×Rð–'(;}Œ›wÙt…›°…ŠÙy¿ýž›>6ÝèEt²MÎXÙè=6ßNUÞºŒrO±ëOä ±´(’_a‚WHÊ ©3S1aˆvÛý½Fk“ΠWÙp¹›øõ^nös4Wyíß÷âQÜB6dã\Ké–Ü]½ÛCÁ¸Ñ•‘šµD ç:á7,TWŠФ$¸¸j(;27U—ЇVö›ªHeN«:DZu 1Ôoy-1/vEu¦åÄ^—r˜‰³>k”Ë¿³è;c>}M‘p° 鹈Þd,¦™·ÜJ#sè)ÑÓátL1YB­‡žÀ!Øé“¤…z^Õ­XJÏ,N?Y°ƒ%°)¶Y¾†òq²èäy¸ñ‚â¤D5ÄmX(=?>IŽ?E};=ç*Ž;4ÇûiÌAÏêÊSîNÛ<»ìk†­gžýršlÅöaØ_¿–„›'µ'iÚ(\8…BœFΠ gø¹ª;¾ZƒçÞrZ"™fV ]ÄÈ…2ÜNcv!¸¬"ëóÄúUu·ÎzeëUšã/j¬k+O9tÖÎÖ.bÝ0 w²ŠâÞ ©oRï-bþ61y‡Æ/Ñ·êeûZ=ŒZ- &ö«ö•¦ì×X°ÏÙ_#ö·Ìy:ûµšã-äØNÏüQxzH‘ÙM •)«›KÀ¿hÖ¿éÃþçÎÑ1òujùµ,¢tzhn*î:×nÀm—€#GÀ•œðH.äIîqq×cÍô$Íp7j¸;´lê¸ ìåö†É锥2dKå(&²Y¨CêÐ…4÷˜¼ Ù” "5››°Y b6=y¦Û§$3÷¨Žìäqi†¡¸5ÄTO[4OLÔ¦ÒÉëAþr_c©£q7è̆[šƒ\i®â¼Ff ³\©Yn >€^š™ Ô B,c¿ÕB„¼F’à´OsÚ§‰¡HcÑéSDXØdB£‹hÜN‚XaD‘ŽS¤ápO¢›Ö‘ ¥ "„­æ¹(ùl't©HÏE1±(Qs!S.JEÛˆD?å"{Óo>>ÎRƒzóÉ®ò|dÉ '/n *†ÕÍçÓi7ÏdÀm<ŽF÷6Â]F¸þqqÕë‡î½é7W¹ø4ÒͧP„îG^‡y½póéÒ2g}óñ$!Þ|î3b“(Ä~Aˆ]+û¾Œ•½Þ¤²ËC¤8 1!qŒNæ›Ïý7Ÿ™bìû,Dhvóy óͧÙäæ#?N4ž A<)œ²*ÎDo>mø¬ÅÎú˜¸³èD”Zî¬ôz¿_s¼Œž¼ÆJU%z}ùˆ!NÝ«S¯äN‚ÑÿƒxHóÿÍãÏvC}Êõµ¶“Ò?›>áŠéã­¢‰ûŽb{±ã¶#êO‡¯ÿI—µaû=¾ytZ@>Aûî$‰ÿÊäQ%ŸÁ4ù,ä—Ð$¿Œ9ò+˜'ŸÃ"ùorg/codehaus/plexus/util/LineOrientedInterpolatingReader.class­W |Üe}ÿ>wÿ{É埗&¹´×6”–B/wIc+ J%½^!mšÖ¤¡/ÒKîŸäàzwÜ]   b]Eb}A^ÄRÙÔŽ¢$¡t"lXsŠÓ9Üæs›››SçœÌmfßßsÿüsiRQ?Ë}ò<¿çõ÷ûþ^ŸÿK¿xúmjY›q²ø}i—æ”4OÐŒÏ õ…žÄ„P“>LÀS28íÃÓÒŸ   àÇ<ãÇ—üxV染ñÊ-$ÔóÒ|Yš³Ò¼ Í‹>üqËñ’\ñ¼P"ÔW„ú¼4Z‰¯âk•x_¯ÄŸáÒ|Ó‡?¯Ä|ˇ¿þañm¹î/}ø«Zñ”Ìüµß‘þoäŠWEê¿õáµ.ÅßÉÌw}øû.“½øáð²û{Þ·¼ý'ìÿIš–ùïûð/>ü«Bý–øÖÎþîÝ}»;{wl‰wwíP¨ë¾)qk¢-ÈŒ´õó©ÌÈ• U±l¦PLdŠ×%Òc–¢™£ñž-ÎAg®/Ö¹+>ЫBC¬³··«óšø@o|woÏ@ìÚÎ^sS®*³'¾§»«'®çe. P+Œ&†nîµI+¯°¤$R*Û¶kÎ ó e3EëpQ¡¦´i¬˜J·íH丠Äùâ+:¤à·2I›¬° C‰œÕgÝB ‡R™øá\Þ*RÙL_ê‚S]Ü“·†ÓÖP1KömÝÙüHÛP6i&Æ m¹´u˜fdïâѶޙ"U:•±º’‡ ¡¼S™Tq“ÂÞ°ƒÅÆpŽØóµÿ«Ì4_GV1J(z Çž±CƒV~wb0m‰E³C‰ôu‰|JÆö¤QM:ÎMîÙ™OYÔo²‹M>—M'Šäæ(ß›· T{.(…­ÿ@Öª7ºHcIÜáfÚÎÈh‡ÄY9±MÁ‡Ð(áëc]]²A¥¸ihplXÁu}ŒÇ²Ã$Ýi+CçÒéXv,ÃŒÂÍ©»ð¶æm<%ÿ²Cfí·3S¦«[œ’P¬JËq­Â\í³ŠTRƒu+㉇’ñòfjö:¢òå·•nõ »Ùn^(PÕ‹Ïm.‹²]¥î­H' Å=‰BLr¿BSÞÊ¥CÖžTq´ PRÇ<ÅÚ>ŸÍfm±LºPþvöñRove2V>Fî¹68÷ŽÕz—„ï¬òxöÖRâq¥¨õ†²]”3QŠ:ºca,ÍõúµÎÑê…ásôß/aÈuÿiâgxÝÄ õsÜåÛøü¯¿01M*e*—r›QýuÀ6•G–jÏeb*¯2LåS~ŸÂï°2ÏÞ·,^`ª ÅçëÀZSU*ÓTUªÚT5ªV¡ý7‹YS-¢>TªŸÃïÚDa”QcâQ|ÂT *hªFµ˜ØÕS…ˆ‚,e¦øMK'3ØŒé`\ž™®Ÿ™îÚéÈÈÙyPj‹—åj¤H7Î ˦m°RnÆ2‡²ÉÔ°®úTß9°,]—eÀ†y¼º4³¡ÑD¾SJb¸«9Vêd:‘Ëé|²,›†N¡ñŽeJõÙ_Ì––˜sæpÖï3zµNK„积ª9Üž²ó>ýuÎö²zP7–.:š(ôè÷Kôþs먓µ½#Vq»Åbå'a?z}ºíäSá’ðü3 ¦¡ŠÂØ`ÁFÜæëcÁúXÈ¥¥¬­Y(‘/XÜ#¢ƒ7’³ˆÛKƒ]ùlÎʉëòÿòÜê\W“ãZ±¯È¼³;¯ó§;7V|Ã+™„îD’î\mäcÙ°‹âP‘®C-ç/‚ >} V±{&~ ™+ù1µ™$Õ!†-PˆsäBÇ[ËÆõ_S6®ÅR\‹.g¼ãíeãnÞÀ4MºNÊ€îY/tßk÷}vÏš¡{&}}v¯»$•ËçïdŠg{€£ïÃ/û#Ñ)¨ˆk®HëÜ‘1#òLÀi„7d°9hœ€/Òòü¨ˆœA`ß*'`FŸCÕƒ¨ŽDŸEÕªÇQËŪ}Qc 5?¡ùßÀ¶üAä\ÍÌ.ÔeÈ–S”HÞLé7Qò8¥ÞA‰wQÊp#༖8¨?PoDƒÄ!”èÄ¥)ÑŠ[S¢CS¢Æ=dãä]öf$ÚÒ2êj§°hVÊ€¾k•Ü/œ/-íu8›gÓál:œM›³ðKÚüv’Ÿþx%¿ºººúŽðè¨fxai³Ã°ÊaXe3TRŠÙËå¿Mñä|<ò$Îb;—´Øc4ׂ®¥¥ÕeK'Ð(Td§ö‹a]“hܸìsŽPKµ¾Ó´O†Þz mTÀ›0F¿>¬…l,1µ…\†ôS°QŽ}J y“-ä—ÉÇ~ƒ»ÝXÞî z–7<‘I,n÷½®O¡>ô½ÇúêˆGO¿4‚×ÕnY¡"Ôøqã ²w¡wSÐ# ¼÷c5ç"¸m¸ëñ!-äµdÚÀðѼü­ÆÍ¤Äœín ÈCZ»µ_ÃÚ€,)7ë‘#eÌu ò6¬8çgß\±¹â2O£gŇÁ”/è{^†ÂÊ@bs£'¸Ì3>ýÚÊ“”UúàÇ8zˆ†„û(ã8á|pn >íx_wéU„PКÍ(rŽÏž#å.×%ï7[Üç¸"'côŠ%ÝѳX/Úi™ÂÒžH´u Ë:Œq:âePK*hˆ¸é ãô_%ɳ޻žÂŸåÅ'QÇÔOÐi¾€&LÐStš§¨Ï§q9¾ˆ«ð ä³°\Bwº7éõwзÝ<·o³ƒ7fCô0üß®f90¾DKÀTÀ–>ƒåûjÃShêv]åÞD¯žÄû®¢Å—_ª­:ŽcS4H|+öŒƒDmà8ªœ‰¦¦Q#eâÂñÙ•é'£“Xiœ€G"µê”£^úð<}óËÔÅ ôÌ/a¾B|_E_£W¾LM}WàL~ß$²o1¾BÄßf‚ú“Å«¼ë5†Ìwiêï9Z+é×]Zi[fƒwÒûùYÌñˆöÙjž¸ï>Çô|œÛ)èÛS»£=-§q‘Âi¬VcŸÆÅŠïùK…ºDÑ8k:ÁLV2 ¿ m—û‘ýºHžÁe4Æå;˜pö¹6E¢¢÷¦)\!ñ¨“dLÏqd”i–=ÝÒÂØ zlÓ¤iN£Ã…=AqpSS´d5_ò±éÇ[f]Q¿1T+5ØS­CµjÇRuV¨X¥®Æ:C»ÚŠ+T7?¨w¢_í êsÞKé€딿Žåâ].ªù.ù¸.Dã OÚN)Z,%1—|ý9èKo°©Ýpµ{¢-’F®t°mÄ='„à“BhÓF’1è zŽÃ´ú 9Ù4¢eÞúØôg‚žÙò¸–o¨½p«ýðªP£РX¬,DÕ®V)lU7¡Ke0 òN‰Œ²â×%RÞ=3ø Äc¤J¯¢vaÐ1xæ+V¿~„ð#ÜÄç%%œ”„,mÀÆ›ïcbî°µAT¢RñÏh­¸Û=!C?hêIlÚSÒ‘½“•;×}3ú zcŠšXiÏ1|ß2Zäì8!£U¨ ·E«—7¹>9}4è‰ê÷Oæ5‰«e\R–Ñ·±äB݆zu;ÕX©îÂõN´¨»Ñ¦Þƒ«ÔQlWïÅAõ>äÕûq»º—áø¼[ýêASãaõqŒ«ãNÞÛ΃Oë"¾’Á7n«û¤£î“ŽºOâwmuŸÄïéWÏ ’Œo0c>€ÏØêþ¬–÷sx¯® üd­9ê­ø?PK ¦Nj6[è›û~ !org/codehaus/plexus/util/Os.classVëoÕÿÝõÎÝõ°N&Þ´vò²C2~¬ãÇ’¡&qHˆÉ¦qâ´ãõÄžd½cfÆ/Þ$å |¨DU>µ%P'í‡~@‘@•ਊ„ú‚PˆVsg'»ëÍ&úaï=÷œóûÝsï=çÌ~xé¯ÂKq´ãPm8ÃŽÄñ ü2ÆË;äð+9Ü)‡»¤ËÝG¥Ã=RcHiX +0"`JÕ1Q©“ΖÀq9q¼€-0!Í÷ 8®€'0)0%0-0#0+9î“ÃýÄñ xXàGœTpŠ dî﻽Ÿ  7¦ŒTÎȦ=ÇÊn+˜ûîÜCˆ³4Ôppof?Aè;´çè`ÿBô˜1nåf ‘¼1n2bÊt\ËγÂp²cì°ÝÊ[ÞBxÃÆ!Öî´GØ­nÀÊ›û'LJMç1œ3åþvÖÈ Ž%×2âY.aå€íŒ¦²Œ3&ÝÔDΜáiÒ³r©ŒËa&7\¼Ü,æšÞî >:ÆÁñz!L–úüøâ, c6§ŒœêléŸÉš\¿æS[îe²ª2$j¹~ ô1Ë-±[n†O³¯ øÿÓÈ-‰Âá3¹IÞXlÏæ‚ Ú“NÖÜmÉ›T2n‡Ä«¸›UÜŒ Sñ8žPð¤ŠÓxJE7R*zä–C¯n¿·2måGìiWÅÓØ«¢CÎà>‘í¦ºØž7½iÃámÂ#6{u!ÅmSñ,žS±{Ù0ndùZ<#?bŽy¾UÏž8zÂtò&_yd2oÍ0h+³Ùf~jœoŠfT·±¤œ°7ñ, v»ÙSúÆ%Þ:P‰%0÷0‹†}¦åï€IJ2\ÄÍEÎ]Œ“^ªÞzáyDþŒšÊØfP‹Ù2FµÈ¨âgcßµ£•Œ'™ñÔU{Æ[®Å¨T2žaÆg®Â˜w^‹QT2¾ÌŒ¯\…±7`Ü…~¶IÆ|óòÝêõ÷øßC” ÿÄÄÞ.2G}Ÿß”½s}Àº›’áV~=nRAœ]«Ð‰¨ ÓÛeL"HÆn»OzUü_á{ü¾*x&¨‚_X„OøjxÒ«à?Y„ï ðÜç ø°ÁÞ1†ÜNGô‹¨k½ˆÚ¶‹PÚBõ‘tM$¤•HZè ô']‹Ï£v ç JñºÐo¡DÞB$œ®y‹ÎêZ¢dNTš]«+™ë*̓º¶Ä7¯>‡¥š6es¨Óê. þµ2¯v]K–H’•$ ][^2ÿ¤ÂŒ/uí§¾¹[îÑàï±Vkô÷hÔ’<Ï!!‘+æÑ4Wœ×µ•>°O‹û^ÝÒëzæÍR\å‹þ®«}ѧYÃâëe4¶®­õiZ¤u­ ïMÔIy]e¨»t­¹t’æJs‹®5–Ì•æ(­ ЂÒc>k:ÚÆª¶Ëª©âg†Ö~Yµ^ªD²fË“Ñ9,M*sP“¢x‘d¤”^ ܩϹÌÿ…eø‚KøßhÀ—hÂWX…¯±ÿá.ÿ 7Âo¹Ñ|Ç)ÿ=îÆ¹yþÇq‰ÿŸþ€G8+OSoR¿£þHQ¼O > )ŽP->#_P‚i)­$ÖS=Ô@#¬§&:C×Ós´Š^¥5ô{ZK utžZèCöüˆ6Òß©>¥ú'uÒçÔEßP}OéPŒ6‡ši«_wr ,%¸-dø³ÐªåÏp5…Ç‚U¡.º ——JФTh¥R’¥ò%Yda„CÍ8Àˆc~^üBñ©´.`Cáâßå'ÜX¶jÑô²Õz­•Wïbé;þ·J^½Æ¤à¾˜à^ÖÄ@ç ý§üPK ¦Nj6ðeBw—x 'org/codehaus/plexus/util/PathTool.classV[SSW]›$äˆáR¯O€´õŠ¢VA-%¢Åjíå$9£!ÁsNP{yó½Ó™vì8Sûâ#8FG§}+íô¥ÿ >w:m§ïµkï Œq* ûòíoïµ¾µ¿o~ú÷ñwø0‚ Ç"ƈlŽk8!-'#x£Òò†œŽ…‘Œ "½#8%›qépZ:œÑ𦜜Õ0!ûsÎk˜”Kdó–l.j¸¤ám —åìÙ¼Æ{a¼/P;dçmï°@ ¶sR 8\ÈXë’vÞ/Τ,眙ÊÑMÒfnÒtl9÷A/k»[“g:‘æÎ¬Yt³9뻢gçgL/{®PÈä™Ó–wÖÊ™ž=gI³ÀþXòŠ9g&rf~:1á9v~úà³–ÏšÂ)Óµ2¶#‰UY֦윕7gȱεfMÇô ômr|ü+˽U8TEl%ýÛ±Ò<éæpaf¶·òÏÏ,铱<Ë™¡vk6ÿF"nÎt³Ã…¢ÜXã¦ÚŸ:Vœš²FW›X@Ÿ*8×M'ãŸÑ2ÓW+æÅÙYËIS›‡è¼¡YE w—.’’Å‹½JsNuº³†fd¢PtÒJnY¾ºÉPÇ&lÖqap’BZGtƒŽ}Ò8¥c1YØ:^AL ­zd:®àªŽftäåŽf©Î€Žk`€„´%øwY‡‡¢Fß§ žIXˆ,UÃ^¦3û¡UëHHªFUßjžêõ÷Ú¡Id@µ*š¹¯Õ çì!ûÄh¤U«~¬Ty¢5JÍÔÏiš¶a*Ûu«¦×íÏ{<4J ÓÒŽ<ÐÐ;“VOµOšRÕmeoG-eZG0ý)˜/Õº4µê±²v^Ñk¶aUylÖMrw2µ¹ KY7L½;wè£á´“ètȵ 6«µ¦½k×uí¬;Oªí^ö׫ù:îp´LÝ™‘»V³^Ñ×ÝB:dÍ;2HJx.ã^ÊHaB`ðµFüMú’8 ‹CwU'ã^K(Ê(!yCÜÙ&åþ¿)èk×U><Õ+¶€ì:vKÿj«,œÎt¥ÿßv&Ø™0Ñ.O·ï¯¾}!®˜VCÇ4<½p>!GS®}î/Œ#HÎ^A|á&€~®à t0ˆ!Ú¾Á°\¦ ÐÆ³_ø†à¥*.]g QæiQ%ä:FdœÁS.å0ïzhG0êúÇyÏ#÷Èwç'¯>`u‚8«êL0ëü;°Åüm‚^_‚$îã—`¢•@äè!¶v éà Q5û Ñ9¶Ò3÷Ž[‰»ØB[ó—jû8¦^ U µp1<úɲ$ 4Nò8)©w‘EÎ;¸Nqì§m™x»Â­äX48åQΤŒ"±7ŒÛ` ›ä-“YÅ$¶Éò–<˜!ž%ž#ž'^Àù6°H¼D|™ø ñU츒,³ÙIW’I ¥âSääja‚,7»ovä¡Ç#ZÇn­OþPK ¦Nj6ð’9ò³s%3org/codehaus/plexus/util/reflection/Reflector.class­Y ˜SÕ™~ÏÍßMæÎá7*0 £HG þá8‚¶2wf!“ ˆëVÛ²ÕµkݺÚUÛU­`;ZÁÒ.XÛªÛ®u»]µ®Z«u×ÖU«]mûžso.™™ð÷<ûøLιç~ç;ç¼ßû½ß¹øÌŸžÐ$bxÐçÃ#hèócõá»><&Çð¹ß‡üèÓñ„l÷àÅ“:öʇ}òg¿üôá€lŸ ˆï0}ø¾|øÿâÃ!‡¥»§XˆêxFǤ§ð<ëÃs><ïÿJ“ŸÊ¡ŸÉŸ“/H·?×ñ¢Ž×ñ‹þ¿¬À29é?¥‡—äb/ËÞ+røW:^•6ÿ%öëxMÇë²ûF¿Æ›²÷éõ-oëø­Žw¤ûÿÖñ?:ÞÕñ;¿×ñžÜ÷ÿêx_ÇÒøCþ øHnþIéãcÙ{YÇ%nÜÉÿÉ–KâçãZ–¶­h_¾²¥}éòuKZÛ,½h]Û¼%­ÁÅ[MéD¦«iE!—ÊtͨlÉfò…D¦°*‘î5Æ_ÜÚ¾n!=Ìkki:ߟL'òù%‰ž¼ÀhËWo!•nZÈws”μç¤2©Ây®ºúUî–l]V/Ne̶ÞÍÌ\{bCÚ”;É&éU‰\J>ÛƒîBwŠž›gs]MIÎìNôæ›zÒæUlÔB9³3m& ©l¦i¹ÕÍæ¸jEÆÜºP"I7gו³Eîxîå%#K7lä¼¹õ#‡DŠ ¹û´™áa6ôvvš9B2· ÕÎp%³´œZb`ï±IÁšëµ·¨™W œZbfí·JÈÓ´^•4{d‡–±2¾f¶/iОÈu™…Rû!NÓi³+‘ž—Lšù|©‘^è6£F Ã“ö$r‰Í2ªe¨×íÛzLš//ã à,F ƒ;\AÒfA‚ãÝlº³Êœl‰z'=Hâ,³·áMñÀ›ËKêFîg$‰O4¼Þ‚Boh"9¥µÏ¶Äf.\%ÏP äÉù)3ÍÍŸ5’U#7RvUO§å!\æøÊ¹$—œ\êÏLöæR…m¥1Œ”¼oË®èMv«Ù¥&ÓÊp!×Õ»ÙÌ ¡L……ƒM¿ÚŸulÃöÏ>!èËžxÎ M][vîè„"ojC*Íó_˜# È!±–ÑË™ùÞ´ŒÞ†œ™Ø4¯Ôޤ³(cÅL`щ„ëDy#ÉP’Î[b¬‘ú㊂ØHÑ£ÔÌ"I Vvy’‰LÛÈåÇ]•<òHõ•2{D’-9vm2 ME²tïºJæKä‹Q<—uÈe¹l™S8öØ]‹Æ3‘± –“+ÌÍ=…mÅ4­È™…Þ\Æ.~z[b§ú¥' ÿÑ!;¢ëJpgÔö&–ƒÉ™á·2Z3jh ÕØ©#wY?CÃYUÍ™}:PêÅ*ÊO¾XI-ˆ+²½¹¤9?%k`•S×fJÖârn~D­5pÖÔ g+Y0l{þ„?øn[¾Ž œRM$“-D:³½™þæ"j§ñˆAº ChÂÅ Ùš*tGò=f2EñèˆÐLÖÞ¼œ­èeL{¦iÏuÂ#¼†ð ] ù¤*¼#]†ð ! QÁ,9^=•Æ\½ñ$JêP¯e *™ÏҸ×À6QIF9u/Æ<êèMò1b±0"Û©˜Y[ñ0$Ë¡‡D•OTx]ÔòǨSŽ]#¸ÃãW.ˆ 1J 1ZŒ1° H 8QÇ¿(ÿê}"dˆ±’ “)T†'Æ",&b¢˜dˆÉbŠ@}k.G®P?r)s‹©D£"YEeÉ>É©r‘ú–DF‚fÏ0#[¤è(‚*IŠek&UÁ1DDœâ§â41ÍÓÅ ÷á^¦R›Iĉ¯•¸ ÈX\DJ]$akz1±6B=æ‹‘ùP+IM“IµQr¿£¸±D:’íŒ¨Šª<ÔÔF,‘dl3½é4·7qÄÙ‹{—ôÚHg.»YvE­Dˆû—Ùë¸Rò¤2G¶ƒoãA^U&‡†¨ †h”Ñ«ž6­äaÚ4~ Ñ+^WãqÞDO*K­Ëƒ}§]W?B&YÁ==f†ê­;öMbØ%ÛGÇ–VŽ©iFƒ‰u-ǘîe‰í*t«^îýy³°Øq×-”ß)z!kÍ•ÛMjëNô¶0¾ÔC{w.»U~Þ('å.F'ê6v̆_)Çå•ÀŒ2»(»¤‘ÊoY²6>^Ã* _騻n­Æ XdV wÊ ue$Ôó™?Òrdqçö]=½…ã^nŠ›§£{o²;‘›W°(ÔBÆ—,Æ7‰dAÖÕŠBv%9ŸkIäT-ÒÔŸïÝwè¶°,££Ç‰Ñ0Š7”!ÇQYpn4trùH8w(¯yeo"–Å­ÅX& +!°ŠOÚø¼ºäyÿxea¿Šc¼Õð÷ >]È™‚mMÃDÃ^hkàzîGÔ¬Ï*{áF-ªÅçødXs°ëÙ $°Öô'^¤c‡£‡¡»öó$:¸Þ6W³;:Øì ¹Cž ¹£!÷¬~øVlw‹þmCc¬zÜvFÇ^ø¹‹@Üö+úa¬{ûQiõ‚U²u5{CÞØàL {b!ï,çuM´Õ«·{éôÕ0ô£ÆÝÑQ{\#ŸF`̰›V¡¾¸[º0îÀÑú<üLyÁÀXÕ~ãU»ažNö€syìóá'œÕ¸“1ulgâ4c æb)Ÿ.Åb,g8V•èfxz’¿fÿK ÇÍôöMÂy/¡ü:¸R'¡Õ^lÄ~¤ìWø &!É÷nîho7æ¾hØ-!"wã³ÅTð†½ÁÉd8A3‚S¬ ð…|a7S`jØKW>'¼vøèò¾óÉo1<2å•*%}žåt’ñ>"&Û>'«âïý<ã."û U`7¦® lOÇcL…~¦Á¤þ“DcÉ8H Ñ÷1^Iôè‡éù‡ôò#zþ ÅsÁG3}’*F㸦©h½ÓÔ˜^/U÷r.A½XôÐA©ˆûœîÃ_áÁ}*Ý4Õ“wq÷©Xº‡Äòód˜EðßÐFòav#AÚýˆôµI˜b¥c÷ÔÌ žéÕŽešÊ6‚ÓTÛ0ŒÕ/òT¿ õ/ÉÓ—hý x•Ö¯qþ´y“*ü–Âi9ùååבý.ZûñEb뢽ìmgïÕûöUo³RñÙ&³ñe›Õ³q½Â¤ôü7àoíóÏ瘜©74F]ý˜ÖçÔ¯šý®ÚOIJq¼ëâzYï7Ú™"«Ì”õ’øR$ÈqÕ]jõô;Q3ùa3b†[Ò.÷…¼wÀöp?3¾•qP†ÏQ‘˜‹*sY1‹¸L>ä©þÀŠ÷1Fáäá'ŒÔ§˜ÁƒÌÎT áÃ9ÂóDˆJ,Õh£°JŒVHô0®^*–D×MO3UŒ<ô׈¯PŸ¼©ÂMDLJóu77©ÞvöV©ž¥Aë<×;x®·ñ”½¯ÒßP º™Êg!;hkС“× RÚX"@vw¨QMþÔH_vãa¥F»©,CÔHÌ€[ÔÁ/Q#b˜"šÐÀöt1qÑŒóÅÙŒUâ\\)Îǵâ\ÏþM¢wˆVÜ/àa±}b1žmØ'–SRŽ- ¥FqÆÁR£>Gö•¨Ñ!'–‡œÌ;ä¨Ñ!Gú˨Ñ×XËTTµ5«æy§64 ¶MFdž@Ì`½ OÔ‰ïf”Š® w°A¶*ЯFïBuØ-ƒm„¯åkÁÐspt\+º&î; {÷ ¦á)Ì´xÑM˦¸îjö‡õÁæ@È ìÀаòs±ÓãÑÁpÅàÝðîÄÙ®fƒª ¡Ê®³¢üëÇwµÝàVÞTóâ®öìÁ,Vo÷sü¡°ïû;Q¯b®: ×!)Q$â™Ü­}1”;5.õ®,¥ò‚ø~¯Z‹.W³TA$á&‚¢ D ub>#Ò8—ý‘%U®dJp…Ø‚uâ*ÒæjdÅ5¸F|_ב:_Ä×ÅvÜ#¾Œ]â~ö{ÄMxší³âV¼ nïhókq;ÞwâcñM1IÜ£(u;Ã73lJB²(õ0%ôØ3XÂ&áVö*q.Àm$Cåò 5ÃÏ_­f(ëðuü£Lr1µH.ölr±×ù¼¬ˆ0W½ƒä R®î$YÝ´~ ß =$ïã•ÜA)áþ©(ÿZ-ÇüôÖ=„*&òì~|ƽ•2 Áf‰v1gIU "Ÿýæ0á‹¶¢ý}˜l[Ť¹WodÀÚ,åwImò4„Ý1™ïs%õ£ŠÏQûYv9qZÜ'ß\öÆù¥\8§(JçòG.ð¢¥ÀÍ/w±•ÍnÖ‡Ú‘ûFPÖDñUþ T‰7q–x[p¶µ‚£¯qG_㎾ÆU2¸Hå3ì[ÿ‘ýjò&mº/¢Í(ùAËý`¼A8 +¿Fm…å—'ë7äùýi+¬ýýYTuMîú” ê©»>[QZd¿–¦‹â~Ws ìl®B;°1La¥óKâF4LPß)%µÍ]¯Œ †+-ãj®â¶ªCU¡j©³•¡ªY1þÙ:[¥tVÎãr\\ ºÚ_ÜÖ•ÐÖ° ×07$W×ã=|@”>àMè' [(_¿#—ÞÃñ>&‰Yk?b4>&g?D«øKÄŸ°Œ°¯ÖèEs#£y‘×tlÓ¸A3p‹V…oh5¸K]Z}Ú8|W›€ïi“ð<ÛŸk§á%mÞ¢ý»” Oµz釛©¶xzy3³ÄÓÇši‰gï–xV³b®æ‡ïJÈ=Ÿ§d´’<Í«¹ÞÈ2jn¿Ú¶PFïW"'#àÈ(а9¤ã#줠ºùýùŽT–±ê[±(Aõ aØ.ŽZq=hÖ}:ØFŠ »Okg©“޵lJîÓÖ7h©ÏoóÛ˺ëÝDŸ|3 ÚÃ#údQŒ«ÊN²y6ðƒT>,} Ë,²Åìè‰{íN[ØYŒ°¬eA½tõN¬²óTÎ7‚ËídFfoÔæò²6^7C#}ÚüòK~ùY ÕS€m8p ÖÇ#m%hwów3e;ŽÇÛÍv7ëán"%”ÚÅд…ðj—@×ÚP¥-Ã8m9¦kíhÐVáLm5æj—¡U[‹KµËÑ®}Ž\­Ú|IëÀõZ'nÖºp‡–ÂNm×6+È0dÌa@eð¦S&bå¿m 8apþ)`À¦…†Ç\$ßÜéÊaW·‡ÕÞ¿óPK ¦Nj6…½x <org/codehaus/plexus/util/reflection/ReflectorException.class‘ËJÃP†ÿÓÆFãýVï ®4­f!¨Pq#-Å…J÷iŒé‘4§œ&êk¹*¸ð|(q& *½lLàŸ9“ù¿™$Ÿ_ïìX(`eeƒeÓÄ–‰mÂ…Œd|)?8lWêÁ˜¯ËÈ¿IÚM_ß»Í*Kuå¹aÃÕ’ÏYш[²+p^W:p¦)›é7Qœ¥È€¹ pIÜ[°K=ä eò¥„b¿+#p6…t8½ò(V~uF¬ó1¬%,g¬•Œu<Ý€i—Ê=ƒ°*™j)l·ßö3³Å8clŽòÕÔ]üPK ¦Nj6Ìnð…> .org/codehaus/plexus/util/ReflectionUtils.classW {×=c4¶<ØFØ l-Ùf k 쵃äPL †tä±-*KŽ4¢†6¥KštMšBi¡[HšÒ%m IeZÓ•´éÞ¦kšPšîË×Ðö¼7cY–eÃWŸõÞ¼¹ïÞsÏ]Þ›çÿóì€vüË‹ã8¡áÍÞâE îóÂ…·z±'Å›·ix»ßáÅ:¼SÃýâá]^<€½(Ç»Åò{Êñ^¼O¼x¿†xáÃÉR<$Ƈ½ø ³yq §½ø0Έ-›OŠ}Õp¶çÄë §KññR|‹â>) |Ê‹Gq^ü<&~×ði/šÂuxBH}¦ ðY!zF<~΋Ïã ^<‰/ ùÓåø¾\Fá‹¥xJlº¤ái Ï(¨Ætºñ¨qÌhŒ‰þÆ»Ž5£–‚Ùa±Ö.ÖÚw™M ʺ'¬ÓŠExn%bÖ®@óêŽd¯© 2K˜]™Á#fj¿q$Î_85âŒTL<;‹ª5K+h 'SýíQî02éö¡¸9Ì!cÅâíû̾8qÄ’‰»ù(Œ/í7­Ý13Þ»ýx—1hv&¢ñLo,Ñß2SÒ “*·òpw[) lšâIsÞJÊ6Ô.UÓŒ7Ó§@!VžpW²;¢»†£æÀ'xé+•ðwŠ}nê;qBAiÊ´ñ åêfÀ°pÜÕô4^. Lç“$/K[Tã‘°(^5õ]Mt›–e¦Üñÿr1­¤ì”3õ3I)1þw*Ðli›x&yo#EÕ8+˜•[Û|ˆ4¶¦×Ð\$…ç¥Eìd”‘èLŒgü†|Uö⦉qdDú{’ŽßÔ÷ û1Ç"3á˜~·Œ }ÌåQZÃW4ô;2Mä×Ï«qHÅP´ôO¸žÞ–è•fn)Ã&k•i1†¨Ò5h )˜“·Þa¤ìw¥±ôx‚5̤C b¿Á¶’ºepÓF*‡M¥r Þúbù6^u»*h*Âq±\*^©`Iá‹®¤µ;™ILj%Ã+êîd&5wÇDT4¸6¡ECVÇè¡ÿfJÙ$òÛ’ÚiöÙB©T2¥c—uÜŽgÅÏfWðÕ‚MS{™Ž¯aLÇìdT'ÈÛ–JÇEãÐq_×ð ßÄ·„Þo눠KÃwt\Ãs:¾‹ïñL)do{¦¯Oä‹Å§ãy|_Ãtü?Òñc\Öð?ãÏtü/èˆcPÇ/ð6¡j_&aÅÍ<Ê÷˜~»—øuücl/m<¹ü±´?‘´ü†?-°Mǯðk¿Á˜†ßêx¿Óñ^Òñ2®S~JöêH ©ã÷Bþ†Ž?`£ŽWðG ÒñgüEÃ_…’¿iø»ŽàŸ:6`#»¬ÐÓ&°¶Ù9©#%b¸ÕCÎQ‘ŸÖ“2¡37ûø¶hÔL§óx¨,HvؾdÊ>ŽDPÜèIh.v:ÕËwÖO÷î4Y)³w·Ý®ZoR…5%ÛuÞ:'P¬f¢ä‚@óLÅZUÜá1ÒayF4Ïܼœ3°.·¶#wb!}¯˜,-´÷ön‹ÇgØuhœmçpk(îÁÄ¡i ™ ’º ©ùEÄ}Óæ“-èäRMÔŠYF-ó÷p‘ô)¥¨³kî4ÃLd/°+'f_A‡Dœ—Ï|èçñ.Z)`o¦ÓVdþ>ÓʤöE¥bBæ@2F@êþž½»è"e’½1ÞÄ5‡·éÎIm/Ç·#c¬–!/áj S°¸dªø„«ã¤9P, å6IVfM:8‰j(cÜ=¦çjêVò“c=?·^ôJŽ› þtÎx8ñw‹ücçènç)NJp=rq¶:(€mØÎ±LœTÎæ3”vsô+‘`KZäj»‚Y”mTëÔkð¶Ô©£ðFB)_Båü·õ/á ˜Ï§Eœ5óÍbÚYʶ&ÌÅr,DPÚ^Cý>¾ÙETŽ>ìÆ«ø±H›è@§tÈ;¥{%ܵaŽeâ€t0¦)-ä›® ¼‡ õQÌAE˜Ó²Hè*‚¡QT^FU /æ¨•Ž­@%V¡š0æa-ám ü¶Bi”¨Å]ØKsÕ˜- ¯Æ>@Ö!©ƒÄÌŽ\¯gs|ÕYÔ´Œ¢–Cs÷¸¶4„ÆCS¨a•à.‹yÄWw‚Áú³ðÔ©ïw)þû¢2Ñ&ñNjcn$ŠfÚÝŒýÄÙEª^“#±™´vs]%IÜÒ‡Ž‰‰n†÷ ÷ zr$žw|XMT³Ã‚ÉÌt mШªS/cÉ”po„ ᾊŽ`zQƒ>Ôc€ëGí^&l"·žTÚp+ù~îj‡r7Ú$H –áÝpãnŠûDÎn%ÃõçpÛ4ôŒ¿PŸÅ¢,üœùÛóÄ|‰Œ,½Ê¥Fת ìÒþ04œ`Ü—W[%NQ¯Åë(-ìÇ(­r¬UÑÄèjeH—µ¶„²X>Qd>)ô0·>B§˜?§¥â{3^O² g£¤ÈÙ® guDuiƒtÖäZú‡8 ÀÕ-A@$$„ø(têÎùy¹]--BÎ ~»²D£²¸ò-ÐUÛâŽ%¢® ™<·„[‚£ ]b<èe¥±Z{‹ãh)Ù=Š7Ru¾ ÞK¨Š( –‘ÔÐ%´fÑvõ|hÅŠs¨1S…¦^€êz² —]Í‹Ù2'f^qçtø7-z8"dJgÐF±ÒµV­Q[™æ‹[kÔUÝÁ:w«êÜ \Æj]e¢¿’mïÖ<‡Jßm£XÛó4Ö\€‡+¢žÛΡ¬NœLÄ¿œ‚·q7oâ^ÞÂ+yÿ®ãµyoÍ+9_‡—XË×Í$èé@IZÄ̱pËv)ŠC䋑˃4ÉZ¾GL µdº—!ØÌ.a7Ó ’KÅÙ¡¡‹2"(>–Žr‘¥îêaÒ¨#p_•Ô©ÔZ2‰Øë¹PzH¯…Œ\õá˜Ì ûÌQð&éõðÿPK ¦Nj6ÛuòAƒ p,org/codehaus/plexus/util/SelectorUtils.class¥X pTÕþþ³ï»7»áq!æAQ\ä¥`BƒÔb.Ù›da³wïÒ õJ©b±à*‚€MUì Ö€ÒÁWëÔGí8Ck[GÇWKÕªÕZk…þçÞ»›„‡0ídæìþó¿Ïù¿{N^:úÔAUئ zñ\á¡)€( 4Ëi‹‚~h•Ċ~¬”+q¹Ò&‡„TŽK^RA;®ñ!%euÒ À”CF«$û» ÛîÃj®Upt¹¶FRß“Ãu>\/Ͳþ ,‘6õD“A(­M¦Zªš’Q£UϤ«ÚãFÿdÌX¼ªÞˆMf2u9OÒSÞ©±D̼€à*-k ¸kX‰®%ŒºLÛr#µH_gNÿÚd“oÐS19w˜n³5–&[ sNÎyyiÙ™»ïצ›M­—ê¦i¤õ¦ž2 g—Ö®ÐWéUq=ÑRUo¦b‰–)'rÊ® øÚmEÞ œRÚLq1ÎÈÜÒž—íÍŒ±N8–®ÑÓF½‘HÇÌØ*Ίw¼œÎ¹³Rj°bw>vg/YpN´Ãɇæ6gV"Ê«,׳°gÖJ [VÖŠq<éÌržÙD½L†Väl-jk·éZ#Ñ"5¤¥,íoNfQ–"x,£!ª±³œ‘bcâJ9c-k¦6%¦Î‡HÆS3¹ÒHÄ®5ìpÆœ¤Še'«‚»Ý’w¥ Ž[¤yÒKÌÖ\䘖òÁXzAÆ\Ðei1h&kZuÙ:"wi™l•=¢rQobì±D/oo7R0¤hMYÍc#n^«žžŸLÖ†¤­$Ø at˜‹0°ô¤§SÑ£ÑYvª§È£A&ÚK›lVëis~2kŽQËËÜSÔSj霤±gÔ*=M`&mªù³TÌLSt¦Tyî™3†gçò/ñ¯§|èQ&ÎæQá_àr¸Ñ€RKÉB™e"€rT8†Z+€û1ˆ½–#©ïµ¸ßaɱ¨t$§ÀeYõ•W¸÷õ'çÌNYŽÙ"ÇŸxXÔx¦È2Tm"ƒ )¼¶¡â1¸»9tûg;<®=åûá­«àa²ÛñTvÃçŽF¼®ˆ¯ÐmÓ~Í£ywaºæÓü»0©RótÃÿ “…þJ7‚[àíBqa Ð­ù쥡û¡n•Æ;=Ô飮cOKåÝð¸÷Hc»å’»'+8 àv¾8ÜÁ·„Í(À(â.Æ=\¿-œÈVœ‡m¨ÁvÔa–`'®Än$ÐÅw‘‘ÆCX…‡±àFìe4z ëñnÅ«DÍœ|Sçpa² ¹bmpŠ%©s1ã)@†}E¸`EHb"SnyóÁù˜díf“™òrL:ïÏ$.÷yÏT¦ül{Ú)ö.ïø½{å4{7-»wîÛÙP?VÿìÝ,{ï.8ÅÞ9qïª#6šÛÀ§ì ¬Ð<‘€6‹*µkH+¡^ò~;»ÍYîñQxO…ÿ¤QxuúýoQlÇk¶ß—+yÜESU%«ºÌŒºèT¤ªfIîੇ§ä4ÊåT4¿æ‹²‰ ˆ¨®Hž–§5%º õ®HH iÊN«?´P£»ÑI1,+«å52Ïáä† óíü8ë!öð‚%Qey<PSÅŽžò"MՔƈ¯ëظ3M>{âh3ýŸ¢÷¹½þÊGüîùXÄúc>ÊçCü·×çÜ&_ðqþ’Ûë+n¯ÿp{}Ãíu>´DXCד kÉ‹äÇ}¤`±‹T<À¼‡)ŒGh~AƒÐMƒñ$à Ë4‡hÞ¤‘x›Fãs:ÿ¤R|Eeøš*p”ÆQ%¹i©šѹ4šÎ£1¡2šHÌ«¦ÉÌF3èBšIÓi!]DW3ÕD³¨™çqº„24:¨–ÖÐ¥ÔÉè2ÚH‹h5P-¡}´”^äñ!ºŠ^gÞaj¤wI§Xæ#ŠÒ?ØÒÔBÿ¢Vú7­¤£j~JŠt(¦´E¦CQʼq´Úêä¿`0×®Ò˜õü帀!!€CY×ÅáÑ\‡RhFàB^ Ó‹a:Sù´ƒ{¯†h£”Ë£™xYº|ߪ±t7 3™ ÒF†¬YL©BÍùe¼È¢ SÈ1倜(È‚œèŸ9΂œðeAN¸³ G_ç@nö)@N=äè¶Ó€ÜìÈ}ÄHË”w#\WÁƒhsx&)¿+¢¸"A-Xyp' *µà„ürîQwD‘}äcÿ¦lÅBÍ«ù-|´„e§L•²mò/ÜŽ²¡[Ö$Ø'XbC·BÓû‘o±ø×âZŸgñn•.îë K#üòí¹Oáñæ|'šóõ˜ë‹¤ÅÜÆNpíLzœþMzóžÎ›ÿDoþo}ó4ÞlœŽÐ|A2B~ÌÏ#ä¥OÉÏ5„¾¤‘ô§¯éú†f Ð%ÂEó„›ê³ /- 5 •1,D ¦MÑV‰AÔ) h(¤ÍbmÃè~QD»yþãÛãb4u‹zR”Ñs¢œ^ôª¨¤7D½'ªéq})&þŠ8_”Š)¢BT‰j1g3xVÉãLq±˜-æðß|1W,óÄb±@, ÅJQ/Ú˜N û¢üFó¥XâVË¡.Æ%  mÞÇ,aQtUŽÚ€a¥Ò›¨·ð2ŸkÚnñ´¿µð2HÏñ˰ƒ{™Qy¦…¦¯òûTâeH\™µ'¡'‡—™^f¼ôˆvÌÁ\F» XyL¹Y»ÅÁËBwðr°Xæàe‘XìàåýtÈɨX,B-Û“ÿEã·²ƒ¡×²-ÿ–@¿¥ûпö,•—¼}8l7´-Uðï n î:öiÅÞÈžÅ!šàQŽÁÀŽh”hų*;¶‹V^~ž_ÊHϯ2þ[ˆËØJ€k·È‰cG Cpuy¯° ÷æ]kð¼pó}’Ñë)RÄÉB\Ÿ¸qòÅ-è/Ör²ë8˜õ½)á×Qƒõ(á Iƒu .áËÆ$+¥ü±³¹…¥¥|åœÅR[þ†[EÙ‡¡NEÂNE†-î:ö ÇU´÷¸€îâªÜÍ_Ä-Ѓˆ¸%bJÅö\@ß…ì*°+î{»F%¸Šaü䓘}ñ²d€à ç€F<ñèqï¶<^m…Ðø_PK ¦Nj6ú"kª0org/codehaus/plexus/util/StringInputStream.classR[oAþ†ÛÒí¶ôJ«¶xJ‹V­Œ/¦&$ L“ú¶… »ì’½bÔW}ógøâK…Ä&úî2žY6´Q³™³ç6ß9ß™óó×·ïŠ(©H`]AAES˜Å¦ÔŠR\—ↂ-7UÄqKÅ6¤ó¶Û î(¸Ë&CªòR¥…U¬»¶0[5®7¹]bˆ=¦p2$³ƒC7[AR)·Ëyd59C¢"LþÄkïsû¹¾og¡b5tcW·…´gÄ=C¡bÙ­bƒnèžSì¼K?ÏF]6;žK*×Û² Çòì†9ÖaRV“!œÍ•Ônƒw\a™T&Ú0,‡û!Ùi[·é—-K+,,Š$‡¼ËO‡7 3jˆ¶pAFmîpÒgäýº×éX¶Ë_PÁºßÛc!饯ºß”ø°Ê°4iÆ2¶¨aóVpNìjXC†aqBo Ë'#¨y¦+Ú|Ôp÷5\•×eÈÿÿ˜O—;íU[Ü­rÇÑ[Äo)›dhï´´K’i1Ò‰É%²ªˆP˜Ï÷ÁòÇí­÷þŠÈ9CH’œE˜ä3J¬D)²RƒK8ƒ³€¯¥±LLΉbzË·xþ "=D?c¾_÷‘´AN€tžN„·];Ø£L½qÄ ¿ð†ÃJÏv­7áYßò;C‘\ϘΑéÛü; ÊÁ©=eØîyþØPå©N‰cÓ¶ÑöÃ`¤-óŒ˜ÊGߨ\ÑO:Êú ‰“ƒöò|`MÛs§* •º]ž"y#šƒuI9–Kd]„•þ§À"©À›“ zciZbj^è¬W6÷½¶lk‡×dp+ Å›O+ƒ n3dÿòªbOð”«j÷ñ€¡õgB®ESÛ3®‡óWáî~|4tgædb¹C†¶¾<êòôÑ]“-þ|:l> )…4MLk–¾ö ‘²ÍXó‰ã¤ï¿R,UZùÓÕÊT“Jä#‚è{EÊེ”ÃsW›ß _B9nͼ€úv±YžÒ ¢Yq^5ãj %jZ&-Ó^€jx‡$E©>¬×fHÝ„(Qû²@4ç%1"!¸ZG-2´AJZÀÞ‹°CŠI´W䟩×m©úùðŠß^0'h5Z7¦eÔ…‹ú¼Cì¢B.jD‘éêä'qM)ºŸ]Ú¹×G^ ý%&%E|óŸ;IÅwòPdmþPK ¦Nj6ž[@@]ˆC*org/codehaus/plexus/util/StringUtils.classµ{ |TÕ½ÿ÷Ü=“ÉJ&f!@–™°Y’(«"vqaH,d&€{µø¬bݺXpCÔb+¯Åj!ÖºõµÚZ—ªµ}}]µþµnÏþ­¯­õµ¼ßïÜ373ã ±Ÿ÷ø|ræÜsÏýïoÿs/Oýã;h÷û5ŽãÃx´EÈCÔðE-7c}bœ¨ã±ñÜÔóØn&ê—9r„{“¸i঑›&[4;"̳#ÜD1Ù‡J1Å-Ž˜êˆi>ŒS|èÓm1ÇZ¾¨3¹9Ö­ü{7³˜Ülž8‡AÖ3µ¹Ü´‹vÑÁÍñ|÷ž7{ó±€r³ˆ›ÅŽ8‘Oâf‰#Nö‰¥b™#–;¢Ó§ðè©ÜœÆÍéܬàf%“\ÅÍjnÖ°Ör³Ž›3¸YÏ͙ܜÅOœÍ½s¸ÙÀMŒÇ62Ø)Ütñe77qn69b³#¶8"ÁWçrs^±HŠžbÑ+ú¸×o‹­ŽpDʇ3ÄG¤1Èó¶9b; g_œo‹ lq¡€Õ–èM¤;ô¦æÕÆ‚¾î¸@Ù²Do¼s°gc|`elc’F*—õuÅ’«c ¾VƒFzK"%а¬o`sK=¹%6˜jéOÆwÐÏ`:‘lY‘Hôn^EÝÔ\³+õÒMËÎm‹µ$c½›Õ”¹Í"P©ô¯]à–Aòîx2žŽ¯Ù’HÇSý±.B%ô·„XÛ8¸iSœžý‘ççË;DEK] àK¤:ûÒ‹zúÓç  a;CÀN¤Ô +¾u0–$¾ L-ü°A|Ls¦f—À’ͽ}ñ±Tœ!ôvÇwœ²i^/-ÐT€îú„‰G_*èÚB#„gTI$ÃxšÚtO¿@i2–J/ÉZª(5¸1%gfgIAµ˜©tl ]è’ÂèñÞn@2¾‰Á$ãdæ@bó¾êIÐ-½¿/Å”û“‰ta,ÍÙ›=2%|ÖHÇw¤YñþØ@,ÝG¶2gDä–¦ç“+ûÎcæôžØ–zßyAwn–CÈI‰ ¤ :ÉD*½‚.X<ÔUZ’SæÇ7'ˆ˜ßXÄR,îêë튥ã½ôÇ¢ÊÆrÊÆsã]éÂÞdÆbççÙ‰z€?·×š]ˆÜݵH.àòb“÷¹=z•RX’ŽKy”°“PT"C2ˆ÷'ÉýOéåPÈ0,(HÚà)`, îöDz !W¤š ’)là'ÈpFÈïÒ’Xah%}ÛâIRŒrôÚxab¶"Fq°+Þ›æøj¤¤ž yâ’2lRçp.ú9Kléã`5kdž]8oĉ€žè&,’ä–ÅØ³t wdM›ãéîNÿ@\-WL£§zWýÒ-&“1’’B1wÆ·')Ar*HuÅú©£u‘áXd8ñMrdd;5ÖÍ(âÉžÉq–—”¿ó’I6ÓBa½p¨JÉ?§Ð#¥Q$…œ:³zãÛç dàȸâ“Ýnl/ìï¸Ù©(Ù·=Ó÷RìéO¤c«8qe_8©í±~•жggdJ•É÷5}Ýn¸—ª²‰ß.#•tÆSéxwÆtõtŒZ£¯_&®dŸ„ÔÕ7Ø›^Kwm‰<-/aü Ìíó’ý[bD*‘Ê.%üêÆ ÷²T]ööÄ]IsÔ´"ª'23J½¾ºYÒßL¦3åÔB½õ¾çæÖB^èžU€Æ=…‚ù3K±Zõ*#ñdîW7æ¹Ù£º`¾¡ÚQ<_lãFšž™I2ʃkÝW­¾M›R\‹øº\~Åe¨ÖRÓ¸¡²Hc×ñß›Çî–àÓß—”=ªfe:Xë?Šè΋ps[,9Èêéõd\–÷8ÙÍ%Ü%ñŠtóz»Oäx`S™Ùgc1ºcéØpÂY)K`ª$x–Þ7˜fn¨ d ú‚øâÄ@*½,ž–ŽW¼)çj ž¹ *UÒϺÈrñǺ» ȸ ÅØ–ˆoçU(”ùVô tÑt.Ç˳ªí)Ì—›@ „[ÅE¤¹Âe°_\,.ñ‹KÅglq™oˆËýâ³b§_\!.òãBñ/~\ŠóýâJñ9¿¸Š\)®æf—@ý0É%Éd|s,9o`ó jÑŽ®x:ÑG~:út*x¥×¹ëÖQý·9½¥Ž×¹†›Ï“a×%R4žJեɟê¨6ê#øâZÊÂù°Ýv0}ʦùä¿Ý©¬¥JÔ²œ®¨`ª¤”º¾Muåd?nÀ—jŽZ’ñª×ùÅõâ’hþÒ~qƒ¸Ñ/¾@’!y|Ñ;q?ð%æâ˶¸É/¾Âv‹=~Ä}~q³¸…{÷“;Ôùqúñ 7OãAòùñ]<ìÇcx˜4zæ -nõ‹ÛÄÕdJgN%]SK?&ÿLõãÇ é?ËüŒ›—¸y/0–Ûýb/£ºÃmöùÅÜÜÅÚ¼››¯r³—Æð2¾åûùòn¾F ÞÅŸüx_|Åó?þŒ¿øñǸå´Aìì©ó<›]·]še;“N™2E ò1󸮪s½ŸŸ9ŽI“- ¼f‹{ýâ€øW[|ï‰oúÅAqŸÀØa¹w&“§öÉ0¥çê•[âuÒŸY³iº ·­k$‡häzé!¤M¤®¸˜åÿ-êLô‹o‘^D9ˆÂÄ‘ìYs,À uä¥MƒŒåµÜIóî³kKl€C˜Ñ´¤™ŠËQÃ, ;±.·tjZÀûC+FÉ–Sp°©@•êíVt_&( ¥ ¹MuwwGÙȰâ¬= Ï*\æU7¥þ‹ŽhïîA¢ïÝ-ˆqõˆSøj¹¢.—£ö–Xj9mª3פŠ38àÓ6Oí˪ nr—¸jZÇÞQÓ±Ç@åG7#¤BÑ)w–F¯üɵ/mÛÒ€]-ÞœTd…Wò€Í2e¤ûNŠïÈØÃ^"W ×ktµl¸bc[ W&ÒIuàPœHe?HåÞËzÜ¡+•ˆÊ2ÝS&6'ÜÊIõÆð OL%9Y–ì¼u—™§\Ï‹§s'Ë9Õ9s²ö|úf¾ýI”'îbVÆ"7c<ºÿ;‚Ó$µ[èjýRÆ„> qu4$¨õÑ/p& œ…sÁUNÂyHÒozЫÌRJÃO©ÔöÂ~УdÉ»=YTJч~Ie«Gå8E¥„¨Øâ(D.Ì"Râðˆ|:f>cÝa˜ËˆˆÕ®wÔ†öal¸öì!8{P‘ýC(Z³Sûü>r¾áµÆÂ¦öj8ØE«\ƒ*\‹q¸ÍÔoÁ$†0­S†:¤¦5iE…ÆAƒØFxJЈítW#„;p¾B8W±Y~‚Fènƒm쇡Ècõö,V+µG%µj÷ \,©qïêQè¡ÒiDtýùtŸÿºŸÁeŠîÏHäÓ'Þm¢kj"´W–tè­†ÞjLR÷¤p$`N?„ÒV#`h{aÑÒ£v¬€Ñ±Ó$­ÿ²¶²d/l2X£vK+)ø)òòWéêu”㠌›ám4àRñ»dïáX¼OÖÿ&éâ¯{¡ªF“4 Sòß§¸8—ã³Ò(Ú•Q”cvJãE¶õ âñ_<¿£xlÍáQËf1¤X,ckïæìÕ,~¦ 6QŸ(F‰ð£L” R”"H…Á$Qˆ…)t=ST{|Èä3|´z|´z|4+>ÊÈÌ]>*1ÑããJ|Nñq‘²&²S Þ›}pCuM½-ÈW„½R;Bù°6ˆf~9K´úi¨3­8FÌÂ81õ¢=Ëjš<œM¸Š‰äê,‰²«.t‘„’Іö,P!Ž#G0äs‘†¸mC‡P1Œ²ƒ$q ¡í4LÐV`²¶Š¿sµu˜¯­Ç2º>];ËKCSI@™4´VqÀ=W >tân)Ð ”Œ¿*ÓÐdD°Ÿ*0CrzâôfüÛ§ÌM…ñ³<ü hÒF]”zaæAy-*™Ûä×Ñv¤“k=ÄN±³•ìiA-mli;ŽÕv`–vA–“·ãkøºŠ\.øJ”ü^P@«æP¢1†ÉWéuY4ÏMü+¾!Õìà›Ôcš ÒÔ Ð¼ýSмOÑ\M4¹Ô. ‡ Ñ_í&çS>èË\õg(—z”Keî}Eªeñ­àŽDÔ;*î~w¿Â]ˆ¦V€æO>Íû͉&oz(çTF¨°>_Dä”éØÔ8md|‡ânºÖµZ$û&é:‹²ÙZ”í-àz]«¹S?R»çÈ‹û¡ËI]_+à[/c”ö{´×(¨½Ž&íäWoâ$í-œ¦½ƒµÚ»X¯½‡ÍÚŸ$ƒ'¹€={<{ƒÜsUR¥Ê£&ÑsWIolÂ"YšX$ˆðm%ˆíÊ(Z˜çä9ßPÛml öÃzÈe’Š·`ånzÍÓ®eYM‹±…<Ó…Ø"Ah²·KYÍa¯(iSyެ½rÊZò©×d%:NjцT=q*J7<ÌDG°¶›s˜±O–/µÃLnˆaêÒp~¦- çí õ0Õ‹øô(Êõ)¨Ô§b¬> “ôéÀL—´ QàÞw¤L’üvÉžµxH•Ößõv»YÁúfäó9¯`=ð]<¬?[…Ä*Þ•µ‡È}®†f±RÉZÐO¥ŸŠbýtbcu–‡Tyð«ðˆÔŽEžü¨*]; Ô™ùP» B}̃z¹rÚ©áŒSÉò‘ Œ+Èåòšâݨ ëYÃ9lŒá<§o¥Ü–B‘>ˆcôm§ïÀý¢,v¦zìLUìƒ<®þ{žA%º JtÞª{aF²$‹Â!.ióaIòŒÒ¯E@¿côQ§9 ÂÂO¢µžDÿ̓°QAÍJ¥öJîËɺ4_ƒwÓº_% Þƒjý@Öz£½õF{ëUzë}ß[¯[©`Ìðzed-jÁŠNÝ¢¿K+>BÂþ^ÖŠc¼Çx+Vy+þÀ³™!LNªÔÂR½rHë{‡»Ýmîžf9—ãvGm¹o/FGƒéß.§í½?ªË‹ŠƒÑ¼€©¿D†ðsøõ_ Jÿ%aü5¹çoÈ=‹ˆþ;LÓ_A»þ*ë¯gE£“ö±tý„t×I¤§Ò@"¤§')›q4ú¡ÇÅUJO-¸Œ³=Ä8á,œ;Å‘ý°v ‘¿G«§Ðý}²ÜÿB‰þg2¿’åþ õú‡öš ‘%ÜЦí,! Oªôý£ ,íE7´‰0¬6×fp WCzGmpŸ8 È8ÜU”¹ õÑÌÎèXŠØÊÅ­nä–Å‘ØAÓ3í¸BÓN å—fÏšUhV„fÕíÃ÷—KÈÐ y(3‰þNB¸ãké/-?“Ïñ¢åùg?ÞözÝ_ziwà)o`“;ð 70àÜCÊ> (.÷nÏ.t»+`Ü+­kèO—šU©߉àÃU*G¼µݵ£Þ@½;ôÎt|Ñ€‘9ºüǪܺ”¶œ€q Lc4Êc1Ö‹£óñXdÔc¹1 c’FRF®3šq£Æn#ŠÇŒ‚ô;޸Ћå¨ð}¼HÖ@+3–RŠ¢,O­"™–—þŒ«?¡"yÚ«HR*š4KŽº º•l Þ†1Ê™­(äs\K\šŸŒ›á7n!Ó¸ F‡ãF³·l³W‡4«:¤Ï•©ù¬|óXyfĬdØ•Gˆ•G‰•lj•1+Ïz‘yªªI¬°ÂÜ|FžÏ*I,¯$yÖˇ Õ¹¦?BÛRnÛ‡iÈ·'ÆËñ_ɈßCæ—xX Ïá'…ðtäãùÏ<Ïã³ÏsxA=}›ªU§ÒÄ ?âI´ã;uä´aLÐ.˜NXç®Øiñ¿59/Ñ¢Èø;Š#(%r£L©£‰~§˜¦ç›Õdç)Y2n ÷^”\•ªÂUÃ(ʉ?¥»œ_òdw@Õ‹‡ÏÔx_>&´›ÒdHæÄ!8»Q¿S;²ÿÈÛ4<:¢Æáx®®ä7Uµš›×Í*f5,s4ŠÍ1(3C¨3Çb‚9 æÌ6'¡ÍlÀñfS–Í,ö4³˜tÌ<c®wöú3ùƒêÓ"¹Þ.w„½&T{;¢\ô¹ÐÇïÔH¼ïðhuD{ÈYìnuèŸNŠ…yŸMÀÛà˜(1O@…9ãÍ…˜h.B£¹„À/%ðË|gVQ²È¿HwЮ¶H%˜¥öEø¹gúíp_{ 8aL)KÄ<‹ÀœC`bYvWìùÁ¿ ©yù¤zˆT‘ÚZÔ/ž+·“)GÁ|äö>ÉíÏ$·¿ÜþJrûãÌÉ™ÿ-æ?ÐjÁ,‚6×8ÞÒ±Ä2°Ô2Ñi9XEs×[ÅÞQh#Å·§$o5˜ïEß ž„VyZæIèdüVJ¨¿û¿‘ÆüKà °jaYãPlÕ¡Êj«㬉h´&¡ÅjD«ÕDÒh&i„IQ’Æd’Æ’Æ4¬¢¹ë­™ÿKÒxÙ‹èYoE(-ž”—v­“rÞŠdâ¬WTú~Ù;X¼C%àJ¬¼M?!­UÛä‰òeôí(»#,ኃ"/[«IRkIRgÀo­G…uÆZgc¢µÓ¬®áú˜²ë.Å÷ Ú ü^’ÍÀ«²æñ“¬®R)àÿá5w¯ÊdS#•šÜ]›úF®ÐÛõŽp¤–Ï';+e,m¥ÜPÞ›ekEVš4º eÖÂzFY"`]„ñÖ%„ùRD¬Ï`ŠuYVÂÊ>fy\¢å:áu™°ʳFûïk‡ËèçéF¢´Y½=DfZ­rî’=|ÃÍ®Æ<ÞHý" ôËô&TZ»QkÝL¦w&Y·ye@‰*jXמ!…”!áOÇù88TÿXß 8 Î}ç~‚óm‚sÁ1œ7=8»œiS7,2Ù-¯»ÝöòG€ý€=EÀž&`ϰçÈ5_@3õ[¬—²€Õ{À¦yÀ<`o} 9üqrz•à¼Fpþ@pÞ 8o‘œÞ!9½Arúãˆåôö§ÓÉ#’%lÃÖ`ÙŠm•¶FÛ‡fê·Ø%#–Ó;ŸBNK?FN6EV›"«M‘Õ®#8õ¨µ'bõ'Ù#–Ó~ 9-™œ¨¢µ©¢µç°6ÖAršGrj#9-±œÞÅ?zŒ¬ aY^°¶Wå#ÿ¼'‹­wñ'õø<úåEä7f÷³†|"ñ¬ˆ_¢ˆpï]ñß÷ªÆUÕp#¾¬cù!tæd?YÛƒ$Ší$Šó³0¼‚ð¿¼|´Zɾœw”§,áÔh$çÕ®KoѺ>ûóY»˜r/®–«˜E;QÞiôûgüE­q½:™¨·…1ºI³waL84½3 §¯'¯  ÖNA:}}ø‹À0¿ô·wC³÷À¶o…ߦä`ïEµ}ÆØûÈæîD}&Øwg–Œ¢zì=‰n¢z}«)u ÒQ-þªöXxG ÃYá´|ý ådä¿yùCe-d>aJ’¼ð!BWÂßwTž.¿äà¯~äG(Á¬¯}ÚÜRBV÷>ÚÔó«»»-HLÍ®è!ù^*ÿʪü•{´W2í M‘ï¼öa|æxçʯEèÞV©'sîfÖ+°¯Ù?‚i?…2ûÇ8Æ~5ö3o?‹û9L·‚¹öó8Á~ëí³Šóì—°Ýþ¾dÿ<Ë<ð¤õþ[Œ< åÆ ø{Ö‹!-óbh«ÛCš{ÞÉݳÊCûd†ow¿‰Rû­œCÿð^ ɼ¢åZü¼ZëFu ÄñE‰M¾S؇_xQ²3k¿Ú9ÿZÞ½Åj¶:  GùÞÍþ€"͇þþŽzê7Q šåh˜ãYøÚ<|m ÍPQ¨HhBW64‘¸äbù–ȃX#hÿ¿V`yT}1ð¹¨ú` ¡32ùA¬#Fñ$Kt†÷-ÑzRèd6™33ßõ(¿Àm˜c†3sÎÎÌ9ÇSC•õ†¥“+§P IÒ¯õ&ÆÔDoÎþ#ƒYcòÁ)‚ß)FÀ)Á8§Œø¯Àdg–;ÕXéP pÆàb'„›œ±ØãŒó êqØ! ’„.?£ã¸g`%“Ƹ®½Å{{‹°„MòñãzáàëRbEžõܧ$6[aî /篂¢üU‹G~ô3†7>ÆŸMfFºÜ¯,^œcú2‰8 pœ&øœ0±E­3ÎTLs¦a¦3#k?à>u¶(Î|´&üêC‘Q"«aÓD)ítоEöðKUþ ~2HÚïsq®6ýmrË¿\±D¾\Í÷S–Y(uæ Êi˲µF§5¢B~øP…Q¢Ò=£>~éù#^z-½€–^4⥫¼¥w«¥d>œöܱ9´›œ›õî†/R>™·y™3-Úð±[¾‘ï=ôœÓéÎɤ¾e¨t:1Þ9•¬q¦Óõ,gø5²¶™ü¿@ÔwÔsEµüŽZˆc˜¢ý?PK ¦Nj6˜8=#uQ2org/codehaus/plexus/util/SweeperPool$Sweeper.class•TËRW=- Fš  ÌÃ`l‹á!Àñƒ‡ l'"€‹à€í$ƒ4ˆÁÒH5a{›ªü€wñ"[6ÙPeDUIU¼Ëwd‘¯HÒ=@à$EÓÝsoßÓ§÷þöç?H ¨â,’ô`FĬˆÛ"î„qWeý¡8|¤ %?sa|¬`^…†…0†E/Џ'N÷ÅúDÄimH†±$úSËx(Ög"VT¬â‘‚Ç ž(øœ*‹yÂÅù¢“KdŠYs蔥¼ùœUŵò‰ô3Ó,™Î}ö›"(eÓÙ²2&V MeÙLÙ./ C)þ\Bl~ÓØ2yÃÎ%–6ÓÈòÑÆi˶ܛ=~²h©e&8Ën„Só–m.V k¦³d¬åM‰QÌùeñäß_ ¹V™Yú0-eÛ¦3›7Êe“7FN¹ß·™tЩØ,ãB…8@o]f^ÞN¥äšÙ;Ï3fɵŠ6i(»†ÃE•Ýb‰ÕfÑbõÀ…i¨F9Í»%3ës)²æZ%G8¯‹vËÎMIð`¡œ;ZX“fŽcN+NƼkI1ZêR‘s.aLCÎk¸€‹ÞC¿†wÑ+}ÒfVÃ$¦4|/ çþ;U 71æôi9Þt‰ÇA×ñ}‰œqUD„öãÉÌTÖ×¥k­œ‘Íÿ^#½®U0oh0±® §a–üljxм‚‚[ˆ ýŸÖa{omÓÌÈØ.=`þH=3,éf|NÚÐQßž}'¯A|3ÜE£À'"vѵÖ_$ó|#«œÌ[[¼Úhp•l.ÓÐ?uø­¥Z)¦ŽðL¿(»fÍTÇ´Ý%®Ë‚•ÏËÈóͺ™å¿C…Ýbm…ÐÛ=úORC¹fŽU@/?KgÁs‚^Êñ³ö•Lë—2[Þ?ë0û]Bœåÿ=EAÖ]úHî" Ó.‚zÏ.Búà.vx3å4Ô‚)ˆPÍE+ÅÐI­äýÞ†øE…g ò,¡`{c~àØ;Ä:©Ç÷ è¯ú£úÊü¯l¾A·.KÑà_WÞFhªÛý>øfáÅÁ7ÿè±wøäurnqDÅ8®0è\÷tø8¿Æ 4Ò94Q/¢tžIÇq†'4ŒaÁ(%0Iã¸E—½„Úùü€wþ2[LÕOä ùiä8 Iq@X¿B¿’þm…é6I%_#k®â”U´¯ç5(4&™Òúhš)ÝôÂk5`?h'´tÚ«% ÖVEôµYº@3h YîÒí:$õ 3|ïýÔ®òŽì…kìb‡8ª¤L)f7W‡ö1®ñ'‰GX_Ç„Ï+é£uÔŠ­¶¾‚â¿;o7Z¬îðcòêùpµ²ãαƒÚ#ÍØÏŠ¸.7Xä5ô!Ò~{ú¸%m+{8k¯¢ã{tVÑUÅ™Úà5TÑ}¼€ÐEù9~RDZÏÀž¼…¯PÄ·oÃPÿPK ¦Nj6þ{¶g *org/codehaus/plexus/util/SweeperPool.class•U[lUþ¦»Ûm·”–"ôFkÚim * B/ÐÊ•Þ,(0Ý=n§lgÖÙÙÒ⬠>úŠ¢ Ú˜ÔH mM J„„øfb4¾óÌ;‰ø™é¶`Ø&çügÎùþÿÿο·þùñ*€&|Átç£=.½Rê“K¿\^ c ‚0ŽÈÃÑ0^ ‚7äᘔŽË»rÑ¥ñ \bò—’*oÊ%ÆP> çádIŒD°¦T´ä’’:o…a‡‘Vî>%DJØ ÔNÓvkRO§/Bmí-½û(G¬hµÌ´£›NŸžÌˆS-Ó –QËN4Ŭ¸Ò3é¦TRŒqË8F²É÷ÞeYɾ¼ƒ¦#úX·qZÐ{§<¦w*pl#‘¶wZ‘¢•ˆ1‡ˆJ¢Ãú¨îùÝcÛúxÔH;ô¦¦‡2Žc˜‰6딩 w§aÎ.yµò¯®OA°•ଊ¦8˜v>˜ä—¢¨Ó“}ºmȳÿ1è Œ·é±Ò"€•†éz²UOé1Ã'r·4¦#ìQ=ɼҺ)XÃQa;t_ÛYÇ´C£²˜  Ákjë¼ô’º™hòr¦ë€58,Q.w•ÊЮ¤ö¿wulY˜^½2je´pÜH§¬´wfEJUKL]°v&åˆxûXL¤Ã2D1hj-t øèr@"FºÍsw½‘´Ƴ\¼]-ÑxŠ{âq©µÊ;ô"Få—H·•±cb¯!ÛS¸¤úÒÊ—Õ¦¢5*^À‹*jQ§B“K=ê{ÞH. xZAÃÿ¡¯4̨؄Í*FeØShQ1†q]8¨â\Nc·ŠRz[ª¼ƒ6•/vïªxglè5ÅXŠñ*1&bîu•‹el[Ä·W…qVÅû˜Pñt~çU|(¥°_ÁÆÇI†E|°/Ù ­öñxï*‡8\N§]®åÚbIJÑËóYÇ¥¶c¥¸ [†y”îñ´#HœË“}ð†ÕÔeó‰u;¶ÐGv,ôóþϤiJž’æ,ã5GƒË²U)O_ì±õa†Ëe„´©[–Ü¡XRèÄÒÓÝDqTsÜnà £O¢†³p#O9x ’”'$Ý]s÷IDw'áÜdå^@Û&<ÃõYž~C¹Ü£Ú<-0‹M+›… ¦•»BHÓJB®”«ý„ð@Å<òf‘_¼ˆuüÐJ‚ó(˜…ª]:‡3n´-\5Ž}àe‰6»Q„=(C Q·2ú^lCÚЉýüŽš»<,hÆV9ð)ÉœW’Yå¸Ò6JWzžRЕd®!Þó-ú™µq—úyeŸ#˜.›Î¢ZéZ¢å«Œ×ëF^ëéf#ça»¹;°Ó÷˜ ŽÔªažùsXyJ9R.ËO9N{­~…õ—³ÁÖp «qň£‚N‡²AËÙÒ—˜¸L²Æ_Í’íöƒžõƒ6KÇ«ëod£s N¢D"øÔ=åS¡¨?8M<©\XL¹’QÀÙâ﬊ۯŒw™Þc‚÷ç—” 9[‚fW5›Öâ£ÙÂ]"ÍóA,FÈu¿âzR=ß“Âf·ùöwYzYãZPR|¹j6k¼­d …ÑðDѺ9¬g¥Ú@ô/ZÙÀ®Š†«“(Ô*¶0ÁseêÞï²¼þú"Ûƒõ×ׯÍ0L1_J“jDú²GÝ݃ۂB®l>#Ü/¨ý%õ¿¡Å$ t‰oêk2î[ZG¾}ÏBÌ û~\Áa̲¡snªYTIíd³BöcŸËÎmll™-Kz<[ÒWhï¢Ç/d©×?T¦¡à´W‡ŠÅÒzºÆþÌWô+‘ßäKºµ¤Ô¥YâD³¥ž y×A¹±z‘6¹“|¸dÏE4.áÒW¨Z<….¡H[à4+=uïöÌx~gî0ã?ñ/fý÷<ÙÖóÉdzյç·EGgn/aŸ’-•â³O‘¿nrqç.ºíâîC]äpTHýÃ,18Ô8œÙö*DþPK ¦Nj6XŒ—ÖZ&1=)org/codehaus/plexus/util/TypeFormat.classÍšy\”ÅÿÀ?3³;»ÀŠ+Î"·x#r()—€Ê)^°À‚È),Š·¦¥å‘å­¨•å‘·áQy}ÕÌÒÔìðÌ´L-ó›™fêï3Ï.H~ËW/ÿúÕ«yž™yæùÌç˜çó,y¸óCèÌêléIeÇ¢Y_[Ãb¥'¥~¶ô‹·e ,QÃ’4¬¿-ذ(- ™,ïJѲTy‘b Z–¦aéòŽ 6ו ‘—ÕòRþS/(Ý™<¤ÖrÉûÞ|ôè" Z6HËÛBÂ'ݵ Je†jÙ0þèëìIõBï¶Á‚7&Ë%³´,[ËŒRÌ‘M®–åIíL6x‘/› ®e…²s„-„°49­HËŠå`‰¼(•M™lÊeßHi‡ •¢4J•ZfÖ²*9q`‚-›È&Éf²–=/{¦ÈI/H©†G\´LÕ²©R)Å/Êñiòrºl^’Mœl^æ‘ý\.Ÿ¾t³¿Úú[ÞÛ*ñ=]­]¸Â ¾'Îbk ›©e¯hÙ«¼wf½Ùfõ¶ û§[…»#,B¿šÉ!×á¸E˜ÿeEøôS“"„ÓÚ,OEuUJ\æ­T„•þK®ô–ÂéÝØeßí~_žðå??<Ö™'6YgŽ[°œ'†Ï8¼öòò<ž8Úoçés‡zòÄuÎ|½›Ž'^r{þ÷s«y’㪕U§æÍáIññ3šÇîØÆ“žßpú†½hÆ“¶»]Ýl¡#Oº¾ò£ã_<Ìû·ŠzÿÒÔòþióÛéÐyïÿòŸ7ür?‹÷ßsÞðZÈRWÞÿ7⻪È>À{0Ù®NÇdWÛlZ 0o¾sz÷a>àãÝÖî Ë“ÁÑî“{‹yrë«úÝ:Ä“ [W”ì|¯O^^ÔÔ¦c&öœ\ù£iÇWîgÆó!G.¸\sḢÂ'å'úUŽáCƒ&ðóý3øÐ=/Ƽ~¹„­Í_ç;ô½|è©É]·¹Tña6µ%ü’Ñë­Šl›0~-fV§ùfŸ9͇½Ë×Tïp8ʇ]ˆIsü!cÏjþJ°_ÿ76ð¬˜ò)c.ï̳&Î\å4ôzÏÚÒâÊͰ-xÖç.ÙdÝâÙî_dD}òþO<;ù­ôË“oóìi‰ëü¦uØÄ³?hæuk)Ïþoð¨šÌù”Ûï;Õ®ìÏýÜ8¤ò%¿OîßæÆ9‡ƒ?xnB57 ‹ð™5ä47Þ?|ò÷-A:ž0´fìq˜ÆsL[¯,¬wyÎâÖ®À)žsü·”¬›ž5bËÍ ßÐ7µ|ÄÕë¤ëÔWlyQËv{_|û—x^”2zÁm¯t^4=mR@`Ñ.^ôáˆó&ñ5¼èWúɰ²"|uûÎs2‹øÈýAçÇ~ùùûÃ}ŽÎ¯œå¾+/¿•Â+r>Ò¬ˆ¸sŠWÌ/ýø¥y·_âŸÆ»þGÀZ^I_©ŸeÇ+C.ù<êS^Y¼èUEêó¼rÅÅí­™óÊÓ¿[;&YÅÍv7ÝÞÈxûEnîS5òÜ›«N|–fëÄÍkû>íó˸ù[ݦÀ}ry•!éܤÊzðª¸U§.ôß`Ç«&¿m²›[RÀ«¶{˜8Z»‡W]c.‰#·ø(Ïð‰ëãžæ£RS<ÖöšÉG½TpåçÉù¨ö^1Ö¸‹úõëN+gN0ðÑ^ÇFÍè¼dÅR}ï¿PÎG¿–#–|Øž>¶pÿ‰ù臱½ƒ~X6„Wþt¸•~ß=^]ðnXÇÔ_ëxõÒצoYãÿ¯>1>¸ÉÜe SÑ$¾ó;µ|ÌÛ³—wŸ{¸'s6èíè± |l³Ú?ó_^WÎÇFÛtŸì›1“7ãåì®ëËøØM¡!ãÛ›øØ+SU®>}'ñq.ßGµú=s×ÿØõà°ùgø¸©ì{úRÏ|ÜÎÈ /tz%šû¥ÈnÓý®ñ||Û©Ÿ-˳øøÌÕáÑNÓîðñ³µ/Kýƒ?`»öà~ï®|ü½&éu•·ñ û¯ËŸ}ë.Ÿ;·hËüî|‚Ñ|c«ž¶|Âgóé83žOdnº-ü}#Ÿz¹Çt¨ZÂ'–œë·^c|âÊ5Iq½_â¿LýÎíxÅ7|Ro×˪Y³ù¤ð°¥S¾ÞÉ':|åH›Ùù¤uãZöXgîÂ'}{ôש××jØ, ›M°NŒí›šB€Ž `›˜šÕ?)#+À_öİ‹OJìÛ¨+o‰Oê«\‘H":>©OjVrT|ŸÔØô¨¬¨ää¤dŠ&`ˆLJ úŸ±&ñQ}"cqÕAQÉIøäæƒãGG;K :§˜+ K ºã,ëÝOã= K ͽ0¯ŽéTey&Mã KM‰U%9¦ŠTcN1ö8Ä—å‹Ó…òÚÚ©2/¬$Ð.¾¬¢ s.Þ9ÜXUÙ¹¼ØT¨2wNSnŠ.«(1šQMaiž©:)Ÿ@W##†+RL#«L¥¹¦îÿÔÛMGFàH5®—;åAø_!›üŠJ³œ×htU±±ÒŒÏ+7šÍ¦ŠRNÿ´,®•‹×•rв’X© ZÊzc¼©´ÀŒÏÑ•ãSxYY±Éˆ«¹þ£öQ![erÊð² óS§¢ŸÜþq4V«ó qf.)Çu +MFsá(´<¯0UV㘺¸°DÎÑ”àeI!jÇ‹­Z“tÍã(›Kª2'凗U•æUFUçšÊÍ…e¥Ò ƼBܹVQ>¶ôéªÇ>]u¶QÖ‰/+-xêBqO_‡I\½E£‹ËŒOW 3„äa‚)Ó#˪”}Ê| ’‹ÑRj*ˆBŒ2#˜©­Í¯0æJÛàÓì„QÂó•`&ÐÅkÐÿäXxU~¾©¢{ÇÀÇå`ÚUæü5 Ÿ˜ÓÅ+åYVFåHŠÌ¬”Øg¸½‹×³Ü¥./-O’ ¯Øg¹]c1f ÷§-.Õ‹{›KÕâžE5÷§Ý¦(ý, )G_ô³Ü*Ê+L¹…•…I¥ñxºEZŽ›†n©Sä3,äù,âÊÙT©Üÿ, ÆÛž%ƒlJM£ëeU…±´TQ%ÝX\eª¿H1åék§\ÔOçyeæþe¨²¡ ÏçÜBS©¹0¿07±Ìl´dºZž¡x¨Ñ$òpP²¬I°OÛ#·¸þM‰QJ)«ªÈ5EÊC¦éã÷œŸT]G¿£—5lŽŽ©Ø\ {MÇæ±×uì 6_Ç DïÓ¶PG²EZ>Þ­åkY©áÜ!àø÷ö Чz––W™=å{ Ï,SEe˜gk[Ì–èØR¶ Õoê°åÚü‹wŽi™­ŽÙ±&:æÀšh¯œ»že£LùÅe£=óÿþh–Dc¢ŽÕ²:¶’­B‹Å–æK‹Ñ±ž¬—,*¤1ÕùÆâJ“޹°6²i‡^ò  êÚ%$¨«ÔûM=M¿ÔÑSô ­é\\Œï¿â>U%è»FæÑ(o¯0Oy÷[:ÖžuÀ„ñíØ¥Kh —®ÁA¡¡Á]ý»êèWôkùX/9«“”ütô,=§co³ÕÒKïàFüýðLkßYažõï]O% *=KËÌžÆb´†)O.,› ý–^’뼋{·dG˜'ÏBË …¥ž¯&ÏÁž~~ž݆êèyzF>t†­Õ±ul½Ž½ÇÖcû>¶Ýö®Ž~#çm”+wI)Gµò Myž zŽ.«*Îó´”ò9æ²2ÏcéO‹:¶‰mÖÑ ô¢Žma[e³MǶ³÷u,œ­! 2ºð%åï‡CC %Úü‹êî/‹$åŒ0åšÿµ_¼J­‰5‚ýãá£LPVb¬–Ù«”\ÆW\FåÛ1BŽÊê¦ù_×TâOÞa¹ÇX^n*ÅÀÇëާ*ZsYýÎ…×ÿÎÆ¿[_7…ýÄ‹”rЮ²*çñÎÝäæþ¹uõŠxŠ–®^±OeÆœJi¬hY©ñ-#©òŠTN2RcYiL´Ì¤T™ÖØ“~*.+[\V&\! ËLùÑRXZi’§,îéiZûþMiñÔ¾ÒÔpdK×§C=AOÊ?B€‹<Pr‘'„BÌg…˜! 1—žW®meÐ+ט›H7 òdB¯È?-Žòï>ÞïÙ„¥ßË¿(þôlu– ô*ýiC¯Ñë–›IO``ƒ}“¼w%Ћ¹Õëé¾мÙPQQuRFÜóBÔn!ÜÀ êUßÉÀ•Qƒªº©B4ª­Aë¾Úá€A›­Œy´ —ƒ Ѭ›-YýèŒA³p™u5¯¶Ðuò‰êu jǶ½A}  „C3ˆˆ„¶~ Ý¡/ô‚lca(ÎΆ~‹×…¥#qÞhH1¦l}n¯xÑô'´|/èB¦7qõПþ‚}WÏ¢·èA…ÏH£¿bŸü»Ï$z›þ¦ü½f½ƒQ¤ßq”âÝÕô.Jh:zþaõÃ"‘³Ê-¦ÔÔBÕ†zórhZ/§ÖB’·Ê"WÈ~«œ\ ¡Þj‹\%û­rZ-´ô¶X[o’ýV9ª4ªÕ bëžpyv#——+ºK—ß§Zõ °ê©ñÖÛÖòöŠF·kÝþÀ1ÐP¶Ø÷uý†|ëÁ÷£ÛB°i6Vo6™„¨ *×âµÅ!ÜmÑc+tª¿)DãmÐ(}®u  Ѻ»±1hCswƒz41ØTQ+¡ý.Ðfî›Ì÷ÁÖÁn;è¼·C„ƒ=6Û¡éû ÿ'kózÕhˆAcà+€£«­D¥4î«Aín~m]¿XEÙúV؆±g1L4J5™SAÀ‹Ð¦AG˜Ž–| #o¤ÃL ¯@9Ì‚×ðß…0VÁëð6̇wa®´¶Ã"Űå`‡óûÓ‡J<†~ôJ6¸ö*™Ÿ°‚%ºÚÀ\FQRáÓf2¦DfÔ0•·1P¢D°×nÃÔŒã½è«ËPbÅ“k!›¿õ½Ã“¾_ów¾—¥”Õ÷묾?ý¾×:4G;;ˆÿžÿ÷Žß›ŸpüntÎè–¡|„ǵÁñ™_ÛàøeVÇ·‚9VÇw€VÇw†¬Ž†b«ã·4rüéÇŸnp¼Óý­ã ëŸpü¥¿u<–ÏVÇoÅyöØwþo.“^€#š\€S¨ÚQí:µ$Tcõ½ÍßûÞÖÛ`ûØ÷v­\§†ê v‹Á±•£fÞbhê¨sTì¦ç-ùWþwÄ›§šÂkl‰ÁÖ`SKe´ÂhUµþ_ÀØùDÜF'ý†î¹ƒù;xÃ]„{øþ¹ð'¾…@<‚„Ár¢‚w‰Ö l ZØIl`±m€ |ÃȰû’è#f6w€wàmF°Ofþ|FQRãÓf3†’Ÿ9] |òH%laW£8ßç )Ó[`Cv÷®—˜\ç/{¤û‚¥À;Ì~¯±yZþƒyêƒÆâjâ âNÄMÙ¢£¢Hw«"jaͰ€‘ŠàGÞ‹Š° ¼×ïþÝ =ìcYˆêÂ*DmPÿmàpoké¡O\ú†‹ØZ‘;xn‡Vèt­7à ëhË@ö·Sú j%XÛ+ÁêµA9„,KÈ FïW öÍ"°QÉŠe(öà+ׄÀ·-†Ô`”üW@kD·UXÈ ð.’]yÓrce]ãS£z´ú_Å+V?¨]}œN”ji½F¯–¥"ö¯„M8¡as­‚:.j´k4‹­«²1 <„³›†ÝØl¥ªí¨ª‡ÁFo;\våeã!kãàó&ø:ø„Ø<‹¶Ë乌f4ؘåƒm²CT^Uønˆÿ79&£0›œÄÌ2 kÈ …–àÚ¾¾ !~`C:ƒŽ@K¡$JBÁHºB Ã;{Ã4sH,%‘PK¢`‰†­¤/ì#1pŒÄÂ)_’~ð I€¤?ád±!)DGR‰É d iE2I0D’É`’F†’,2Œ”`;–d“牑L%9d:É#kÉp²•’÷IÙIŠÉQRNN’ rŠT* 0óyT3õ¤–dÁ@E²EÍç3渖¤Áhæ¨d±†UòÓƒÁƒÿ &Žb-”ƒ¿%Ùªœ jÜ÷k¥:Ä3'Y½’SÖ¼'2‘,éÆœñù*ìÑbº¹0WkÞÇàª2)…ËBÐurðCG`)ÞÉ¡3 ÿú Ï7JbÁÜðI HîÌCIbÖÒºj˜uUîÒ©üŸ\gn£u8ód­”ux£uZ[׉Âhñ qqõ©ƒ€'Z¡,äi™Ò°Æz¼II.I•%ÛX—üg˾Ðe)´sqhŽ)ÒÉ!PîÖeŠzÿíÐe£‹¹{'½/JªžnzÛ•àಂÜüVàW Åï’Ÿkè#·ÅÐ^éìåâ^¢r1¨Ü‡çuï´‚ ª y+ÎYýèl§ÇJ‡ƒ•Þ *²}¾š‘mxÚÝŵÜdQÌ^¹¶\=þæuÁ¸ò#jv ìÉup%7ÀƒüÉÍFšx7hâÝ ‰w£Hò²= WÓàX•‡Í¼¥ÐÑkœyB>Ýe4a§¼°Ä“GÕsV›©z¹ë›¯„曡‡{g¬dljÔO5ì‘ûbè¤ô†ª<U%ÓC¸‡OuTšž“»1pKT1Œª/}žŒªGÀ1ìñi X5Q­©ÚQ>T ~Ô"©YÉ´ dR{È¡Mñ Á*i³†¨JWÖ«  B‰*ùQV±ŽÌ^1H•Õ ~ÐW‰*¦ÄÛêùé'£0ÁM‰*ß:è¹ÑMF•ÛßF•Ûã¨Bka\ù6ÄÌà ïïåûD\Q/ÜhGÐQohA;A õ…®Ôž£!œúC ÄMviäÍ„åoRE’Û`J\u²*?·*•÷÷p3OEzx¸M-±¨€ÆÇ‹‘UÓ­ÁÕTé±^>]4´4šÑ®àI»AiFúø7èãß ¿UiL«>ÝñZŽiZÛáúÜGit†j˜¯ò{Pýg9Cý¬ ýǺ±¨6v¯/­ª×jè‚â"hÓÚîõ…àÈzµÞ ½GÔA‡ð:ˆˆ\ ÂÇ!R†°ô—C”tOëWÚ¼âŽiý¤7Lè|Üqîx8z¤œéè@‹1‹J €–cµgyõõB5´ÀXg|m0p†fV kP?Šù£DÉhÝÑG–yrK ¶Q[Îüöö¨Tß'móâ_lÓLùì¯/ƒ@ëB¯ãB2Âû¸©V@K7}óUàŒ‡zŒ›*/ ¬b»©Ú;©|å#Çnœ5vúÕ—-Ýž¨}é|°£ Ð ¡]¬¨ãýΠÅžQÜѧA±>¬‹5ú4Šƒ «Š¡‚RÅ$¬y½ìç/“µ§z5tC]ØÞ~þB0 ÊñE¨®€„:HŠ] ®Î*‹ ½ì`^=vd{/ƒÚYõGúÉr›îFw‚ Ý…©µÏð ù¸|é^¦ûÑ‘0½5lFªT¿…$e[T‘ää¯8NtaÁ–ÍÐ,Áà'}Ú×Aÿ…`笖¹n#^X®¸›ÅÐ;Û)eˆ-JÉʰ܅}ûÑ}Õ–«R6C*º(íÕÞÞÀÍX^vÓ8a]Ÿ.—P6J¹°SåÉ-øã»ï h‡â7øY~šÒ³àˆäG/@½¡ô[<¯@ÎLGÇeÑ«X"\‡rzÆaÌM¥?ÃLtÒ,,BkémX‡…âzÞ§w὇è}8MÁL¶KŒÂÆàSÁLKì˜ Ñ3[âÆìHK¦#X3âÃHkNza [ÿI{ œX>«‰t{}À d ”d˜¨I†Žà6 U^=épuÅy\ésÖM)‹§Ân¦|Ü΄m¬»ò±< 6³¸Š\ä/MÖÌÙl­Ò±RëäÖŒ­;%¹Š6´]ÔûÜô†¼:P÷¬pköðè Ð)—æ€2ebY_ìĉÙò·ï†‘¿&Ö'*¬ ìðeØÏpgæ‹_–~àƒgV(-S«NËÔs}¶}(¶Z}WlmôݰµÕ±µÓç`«ÓçbÛDŸ‡­½Þ„mS}>¶z}¶ÍôñuÐbÛ\?[¡/ÂÖ /ÆÖQ_‚m })¶Nú2lõåØºèGb몯ÀÖM_‰­»ÞŒ­‡¾ Û–úQØzêGcÛJ_mkýlÛèǦm`½ínÛ-¤êÎz¸Ê*[`=íê’ä‚ߢÝk–E7ôÍwÛm¶Ï1¬Ã±n2`äæÑk­œÂç”Rü:~dãi°Rä ȯƒá³·@oå¢/¶@<ÿŠ2™CqJ&žŠ)™j‡œ>¸ Þ­ÉdM“3U¸Dr¦Z@ir&~ö—'gâ9R‘œ©`NFÓ …À¾jvŽEذ0a'`2B'` ¢‰€„½€MLG輌h&`&ÂAÀ«ˆæf#„€¹ÆÂQÀ®!ÂÜ@Dø)àD”€ÿ"¢ÜFôp#à.ß• âü‰è'à!"^@$B‰‚¨I‚pDA´ˆ‚Ø"’Ñ!R±G¤ ¢G¤ â€HD 2qD Ä ‘)ˆ b nˆÁ‚x †â‰*HkÄ0AÚ"²iÈÄ acSŸ#ˆ"W?Dž þ“ ˆ|A‚‚„ † ÒQ(Hb„ =E‚ôB ÒQ"H8¢THD™ шrAb#‰CT¨$a¤?¢JdÄ(AR£IGT 21FAˆ±‚ AŒdb¼ 2 '’ƒ˜(Hb’ ùÉ™Í`² Ã%Ÿd„äAŠ%_¤T²FrÉ©‚TH¾(ˆYrš £$§ R-ù’ c%_d¼ä A&JÎd²ä+‚L‘|UÉY‚¼(9[é’syYr® 3%_äUÉy‚Ì–|]¹’o2Or¾ oH.däBAI.d‰äbA–I.¤Vr© +%— ò¦ärAÞ–¬äÉ‚¬‘\)È:ÉU‚¼'ù¦ %ßd³äÛ‚l•\-ÈvÉw©“|W’kÙ-¹V%× ²Gr½ û$ßä€äAJnä°ä&AŽHnä¨äA>“Ü*ÈqÉm‚œÜ.È)É÷9-Y'ÈW’;ùFr§ g%w r^r· %?ä’䇂\–üHï%÷rUr¯ ×$÷ rCr¿ ?KäÉÿò_Ƀ‚Ü–<$ÈÉÂܕüX?$ò§ä'‚<”<*(H~*(•üLP•ä1A¹äqAµ’Ÿ j+yBPäIAí%O ª—üBPÉÓ‚ É/u”üJP'ɯu‘üFP7É3‚zHžÔSòœ ­%Ï ÚVò‚ í%/ ê%ù­ Þ’—õ‘üNP?ÉË‚úK^4Pò{Aƒ$4Dòª ]%4Lòš =$¯ ÚKò† ½%4\ògA#%o -ù‹ 1’·“ü¯ ñ’¿ š(y[Ðþ’¿ š,yGÐTÉßM—¼+è@É{‚’üCÐ!’÷&ù§ Ù’Í‘|(hžä#AeþTæ?!‚Êü'TP™ÿ„ *󟨕ùOÔ‚Êü'\P™ÿD#¨Ì¢Tæ?±Tæ?±Tæ?±Tæ?Ñ *óŸ4Tæ?±Tæ?i*¨Ì¢Tæ?i&¨Ìâ ¨ÌÒ\P™ÿD*óŸ•ùO•ùOZ*óŸ8 *óŸ8 *óŸ¸*óŸ¸ *óŸ¸ *óŸ¸ *óŸx*óŸ´Tæ?ñTæ?i%¨ÌÒZP™ÿ¤ 2ÿI[Aeþ“v‚Êü'í•ùO:*óŸx *óŸtTæ?ñTæ?é$¨Ìâ#¨Ìâ+¨Ìâ'¨ÌÒYP™ÿÄ_P™ÿ$@P™ÿ$PP™ÿ¤‹ 2ÿI Ç“·@Ìã8,ÿïEøš„‹ä0\"Ã5r~!ŸÀo(ß§Í ¥¢¢ŽDG[êDœPö`NøyàŒŸ.¤7s%é¬WÃWäeh¡üÜFðCÁ™…ËÞ'¥ôáÊÏ%„EH=XäÿPK ¦Nj6ÊÇ;yH{3org/codehaus/plexus/util/xml/CompactXMLWriter.class•’ÍNÂ@…Ï@-‚(‚¬4FüD'®5lH\U%Ñ ÛRFSZ2LË•‰ À‡2Þ)‚&¶™Û™Ó3ß=MçãóíG- [¦T2¨f°Í`ŸÊ@ê6C­î<¸.—!ï*è%µP'ƒÕ ‚¡èÈ@\D£¾P×nß'eÓ =×ï¹Jšu"Zz(' Ü Õ=÷hçÐ&|ì‹)="-}>ù¼ŽÆ®§oϤEyŠg •¥IÊóˆ?Ò•E†¬—w&.CºnL¹«0Rž8“&ae±ù‘!ä±Û”Ãῲ3ÿéï*¡õsü-ß{°‡4ýs¥ÁLkªZµ‘¢°›­W°š¥°J5«;äÜE–fÕ™‹ôµ˜b#ubVa+µÈÚ'çÁ¯¬"1,”°‘°Z4˜sŒ ‘Ÿ½Lt4bWù PK ¦Nj6g<ž{ 7org/codehaus/plexus/util/xml/PrettyPrintXMLWriter.classXy|e~¾Í&;»™$Ý¡¤¤ݦ¦»I·-¥ M/ÚTB7m!¡i©=&»ÓÍÒ½Ø-x ¢È-¢B@D(§P ›ˆ RäQðQDDðD÷™Ìn7“þ"äýîç}¾÷úfóÄ»÷? ,ü>lÀu|Í®çÁ ,¾ÎâFNÁMÜ샄›¼4³—§oaq+‹ÛXÜÎâ wò†oðà. ws»ÏÝÃÓ÷òð>ûyXäÞ0‹ ß”p¿àA ß’ð„oKxXÂ#¾#Ỿ'áQ |x ßgñ¸OøÂM><‰§$<̓ðà†yÖ‡âGžãéóôó,~"á§^`/Jø3û¹„_ð¦_ò䝸þû¸÷kfø/ñðe ¿åöw~/áîþA«¼þGbñ‹?Kx݇¿à þêÁ›üMÀéP"g¨»ÕpRMÇÃ=z.‘Ž/¨9+—еœÀáæj"Þ@KzŸ1Md-©¥´´Þ£«Ñ]æ¶‚žH†#‰ô.-IäuÚW§«ñ®ô†\&žÓòyqº@uLËêÔï"œd"­u¥cÅê$-ÍĈƒ€'–‰öf5†œ¦Æ×drë´³œf|ŒšïLeõAâÚ‘H'ôeÁVG²cï7w£€{U&ÆØ ¸®ê×r½jRc{d¢jr£šKðØštë bL$“‹‡‰¡6 òálRÛCqë=©$iÕt}Ðн©;bÛêè¯CRšT¹Màç+ñîÃÆ ò캉Ú`"3 ÈnÐ 7tMàEíøà4ùøqˆ Ÿ”óºšÓ;Íà¥ðn':ÒjŠ®ì5Ò WÛ£sM­1Õ­æv²÷çOg¯–ªYmS*)Ðâ¤Ä)ëûÐJæú :qðdUn˜h*K²œ×ö„7˜KtT¤œÖ»U=:`’è§`£óÄÂÎf:«±X™Î9Œ UµK£¬Þ­& œ—Z:fÛ¶ª•7Tö¢Q^§üöî¤\Íôª”à qM”ý“[ÍÒ¯Üè%=ëwšµ@$è ¡du&Z`Õ'Q¹Ðr”®^:Øg2o¼ÔŸ2ªgLY“èÄj³:¹[»˜¿·gèBT±jiK§]¥jãå#-[¾xÙ@êˆ&­2åëÉrQmM‚ K“S͘Çädôƒœz˜Q^J²ˆ²È²ØÅâ|²„S–чM2.ç]— /ã*W³ø<r2Tœ.ãBŠŸãÅ·ð¶ŒÍ<ÿe\)ã‹ø’Œ<,`ŒA|”ö¶‹[ÔTv‰—ñü“,×’äÒ/–q7nt›©L·œYȃ9[¿uËÃç´ÏÜ:׃Éø7þ#ãü—²Ì9n=øŸŒwñ¡´Ì– XÈÂ%ªdáÕQ# ¨¢Ù%ÔÁŲ„W>QKS:²´YÆÙÆÂ2$®Ž0£ÔËø®q)Η±½2zX\„‹ÉË©ÐvSx%2é¥Í æÍ'˜!^ª Œ¾]Ké¶®åËd\Ãó¾ŽY«×¯êݼ¡“Œ|6ÊØ‚ÈØÆ˜ÛÑ+PÏO༼–UsªžÉyDƒ,&1±ÿ÷cCoHÉTëûÏТ”‡-‡„);ë¡"Qó•eÑÄ1_¨JGÐõrZ6©Fµ•IªtÇO¬n8%ù”qjÑŠfRY#YÚÇ/¤ŽEÑ“2ë=Üå'W ¨¹íÌùKs8_*šc8u⹩ŽÅŒŠ@ß35j6«ñ°mB…Þ.ºÕñ\†‘éÒ8~„E‰èJÝ,E«ü¥=]TãÆ“žõ„ߤqªé³wŽed©Ÿˆ%K–ð™Ø½j‚¼¼p\ÐC\–â$•Ù­™ñup¡·¬Â~£a7>dy4æu-e–cúØÌj9}³è³÷œ ¦rÓo § ÑRI4ZªoFKYi´[­}Û¬v»Õî°ö©F;“p©þ’ŒÑh-ªQE­7jbbŸ±U#É_îÀ±ôE¿;©07"ŽÀè1!aôXµËNXÀà6ö×€kshUmÃpW¢Ÿ€:,)C¯·Ñë ý ½¾ }—…¾‚Ðù¼ 1ëêJÜåðÐÆm4÷Ù¸’ŚђZ§…VgsFM%äjÈ´±YgCÖYT2eAÞHש¦vap‚•6û¾`¨ˆÚ`[r°½H ›ÜEÔ7¹ƒ§ýmFCIo 8‰ÈÍFº0™¼Õ„n‰õ8Šâ£"céfN‹Lm6§…¶sZæãGF•ÑKSÏm0ÎXŒã„Àþ’Ãڛܱ“(JJý¶R¿í3¿­Ôo+õ—)ÍZJ7‚›‘ƒ!eR[»ƒ¶md„톶 ¹ÓÖæ³¯è3t¸Œ^ÚÐÆ:δtl¡s|²¡ìb!¥@‹•)j°5Ø×j°5ØŠrÈ[Š.¥1¯-Ví'3C *‡ cr0Äâ>øÈ÷‡ÝûÑ 1Ž£ˆ#xØÄÂ_â$F ÝÕ¤ÕKAʺ&“ɦ“®YÐé§õnÌÇJÍÁ²x\ló]L{zx,ØÜ–[Ü<Áùtjåå?Ž|¢ ÌcƒyH™ v–X•عöéC‚¹ø;ÌËÓˆÃc[­É6Ýô!H¡L‹Ö+©8’@€óÉ8º‹Èi—@Áe˜BŸ>ÓqEY-™a«a©åÞ Å®‹NÒ7 E e¸•éÊŒ"Ž\KnSfš€2Ëì4+³ÍÎQÊÑFçn›ÒTº/p%ùjˆ¨\ƒi¸–òó:ÊÏë :² o`m«~Ê ÿAº)a·(s[iÁÜHˆ‚$ØýBT:ÚÖQÉhB¸­ÝšPæiDÕc~U F°†Ê1$ŠXTıÝ{ß{¶*Ìâ>‹J\ÍØº™ôÞB¦»âêvâšq'æâ.zqî¦hßGIsoY.ì°¸OF£`tf Ì' µËp>eñ\ò»y³œåÕ@P9ÎNåx–m#ø1j>ȱ¦GHÞZø‡(Ì”X»lœ¢”—E,éÛ‹¹ÆpÔ¼dJk­ˆ¥JÀ´,ŸäŒ-ÑžGdGÁÿBóãqŠÃ')Ÿ&RÏ ÏR²>G®žÊõ T­^, ˆ>ë*.þÉbÑ^I#N/±^Fåbyen½DØËe¹Uþ_`åÖ…¶Ò†U€VºIã¡*ëî4Ó4D\ÄŠRâ•´5“àJ¶Wé}{âúuòÆ”@oÒÚ[˜ƒ·Ë®Òj±póo KwØ(@5iZY Àcò²ÃÕöáKl;,³ìP íÇÊ #zZ…»Ì5¶jŒw‡¾;ù7…³°Á{p"]¿ªcÇÄ Tg¨]E3ç ±÷½×KZù]2<¢~úEÓDíL¡Ø½$/£.Q.þAji¼Å ¾Ae5Û»ˆÎh¶Ck ‡ÍqÆ6—âJù°¹wýtÓ‚JOðÈXX˱'Q#Ž@˜Š61 ÅL,³°TÌÆ*q4ÖŠ98EÌÅi"Tfó¶Í/·¿©²ùÉ•6?†l¾h››ï°›|:8ÿä ç‹GçÓoô1D¦íÇÚJ"DdÍ8D¶Nqó~"kï¨ ²Î‘ÈUÎQ©$ÒCDzÇ!²ÍŠÂ!ÇtˆTZd“#‘«‰tWÙJD¶Cd»EäG"Ý•DúˆHøŠÙ³Œ*6ʺ¬¿'2Q–ØüëâZô«ïPK ¦Nj6˜~™ÛeR¾¨0org/codehaus/plexus/util/xml/pull/MXParser.class´}x”ÅÖð™™·¿KBXzIè! BŠ@‚¡ƒ”,I3…b°"ö(D£âU,€Š‚®zí½^»^˵w%ÿ9ó–Ý ÁòýßÇó0}Μ9sÚ”wóÄáûöÀñ¡ÎÏ·€ñ (Xo²<~!,~¿˜R—Pp)—Qp9WèìLН¤à* ®¦à 6R°‰‚Í\KÁul¡`+l£`;×S°ƒ‚(¸‘‚& n¢àf n¡`'·Rð n£àv vQpwRpwS°›‚=ì¥à î¥à> öQp?P°Ÿ‚§óç þ‚“ø‹Ôä%ƒ¿lðW(M^5øk*ÞÐù›Ìäü-Šß¦àßÇàïü=ƒ¿oð þ¡Á?2øÇ„Þ'ÿÎ?µ Ì?£àsaðÿüKêú5ùš‚oo)øŽ²ßSðƒÁ¤V?ügƒÿbð_ þ›Á7øaƒ7°‘`†à†ˆP ¡R‘fÝ%MCXÛ цÚÅ¢-Åñ†h§‹C´·`ÎTt0DЩm'Ct6D¢!º"ÉÉT–BAW º"dˆî†èaˆž†èeˆÞ†èC5})H5D?ŠÓ Ñßé”Ì0D&9€2)DÁ` †P0”‚a†Nñ1Œ `$Y†Eq69†È¥x4Ç €æÃ†ƒña$ÉX*Ì3D¾! 1Îã 1Á qœ!&éb²!¦¢Zbª!Ž7D±!¦bº!fb¦!fQålCÌ1Ä\JÎ3Ä Ï7ÄC,4Ä"C”b±!J QF5aC,Á•K ±Ìå†8‘J—SPaˆJCT¢Ú5†8ɵ†¨3D½! ±Â+©Õ*C¬6ÄɆ8ŧâ4Cœnˆ3 q&Užeˆ5¯%ò­£ÔÙ†8Ççâ<Êoˆ ¨j½!.4ÄC\dÒ âCf—éâr‹µWPæJC\eˆ«‘­Ä5†ØhˆM†Ølˆk q!¶b«!-±Ml7Äõê´Ï÷âCì7ÄC ļyyÞ/‘`ø<²_6‘a …+œ.íçµ¶F¸bjmxIù*'\1£¶œA¼ÓCN:'ŒØÆ•Ôc‡Å õ^A¿ÀÞ.&?¡¤ñmë—y#ü9PªËE*o\9Ÿ¶~ÖоE‰3P¤›k"áÊ‘„ÂrÒ’m"™± Ki'_®©À¾DoŽ(“Mã"]ÝÉŒÉ_˜7aFá$â›äšr†ËZFKﻼz@±,!™)¯ªi¨/¨*­.CÚc~qÃ’ÉÕ%eãJJ뫱‹XL#q¹°˜œV½¤~rye9"Õ©¦Vr¢²$\›W]‰su8.ŽY\‡\VžV_R‹ êë$5LJ2ˆšjd_C¯“ÏÔ”¢°×”ºåjM©,VêÂS âXY'YÑ¢,6p25%uõ^¦ ÕŒ©¬ ×Ö•HÂS~JIíò†6eò«KËÂ¥ˆF}õòpUùɸ"J}xU½¿0Åá%ÎBÅ­ª¬ÈǶ3šœf;·1©*+©¨&ÆnÅÎc««+Â%U£"]Q?ÕËmWº¬¤!U…ó0%WS÷õ‹^˜W”B\¥WÄœ‚iHšÂ"œÇ䢢I3¦.œ2f6.±‚KÜ6R‚ë?¦% Õ¾¢ºçJøKrÑX´˜¨]â"UNi|m¸.\ïˆ`i1µßL$G^u©€É¾™^²¸"L:uLÅÌ’ÚrÊ»…Jý²r\ÕôÉÕµK S…—•4Ô ¨©¯Â¨¡¾¼bÒb@MCEÅ€)³§–ÔÖI.4«Â+¡Q¦ÎË›8±_kzA)•Ü(ª—PX®"qôz:Ú5z¸ª®¡6ì*«º¼äK\G$+5•+¨ ‡ËêòªkVËEI-@)w¢RÙaZ×ÒåN‡ÎÌ1žjˆ‚ª¤N”Tª“ mÒS‘££»E´u¤[GD¦°5½‘pd…3ËÂ}ÒÆW/ÎPÆä{‚îÕ./Ŭ²L–vpÉ"™:‚G;„\ÐB´‰)CÖˆÉKfíàÅ(ªN­Ë®ÎsU%¯¡Àg—W•×çJÁ¬.©G‘4©G®ý\Iã*‰ŽŠ6¾c«`U)!”Ed8ki„`+úÍ•"_?µ¶õM½o+­¢JŠŸ.­E«+Spd5] ´OkC·Ö ÍnýDÒ½(¦©-õ2 ÊË‘™Ó"U²1B —TŽje ì!Hõñ{ÌÀw=OÁû$#ÄË#‘f­„‹¿ÔÅ3b#:¤¶*IeȬUá#ÖºT§Bí¨i´­mÙ·âÐÒú“Ü‘#]å‰K0µuýÑ6º±£@tÉŸ¯ž‰•“¹r‡3H¾ã¡Ê$ éP6®¶d©#FêDO"6•Ø”òª©dýØb‡ŸÉ̉0Ù¨ŽÄNÕuå´HùáºRôë«j,ñ¶Á6“£¼:šW^ŒS(¯›µ¬¼Þ›¢…ì¯c³A)Eª­6Z4œN꼉ýÈÎwZV]L8®ºV1Ue“ÃUKivºK-œƒdzgúíÊë Zº‡4À˜îY0º,Šè*+¼Êá´1±\Bt‘7^L;Ç?M(¯óKòÃKJ*\™Û×§ñט±µ•7«"˜÷D¼d½6|RC9) ÔÔ‰•Û•zÙ×®[Nüâéµa"IºVä•Tá"9K†N\œ–.ˈÈJ•¬1e¹/n‡‰•5ØW/-óü§RÇ£Çx²l„ëë¹\˜”uq¾ºbiŠziUÕµ•%¨¯ËòЈó³®Ò’îÓXäžå¤É¢r~¡½¬¤Œ8,¿¤¾Ä3ºSµK¥±kÈø£â¬¨¦©,­®ŸFfÅe)&É¥˜5Ík[PS.Ûrb–޾º*(£Õœ¶®hJÙr솎òå¤äºh#ÛG¼I,¸Ô –´åÞ>„2ƒÜx0 o©™Û©jGšq³" 'aúL'å/VŽ6@ÔÀtT‡L3ìÈ¥ «‰rt‰x!ÈÏžê;ÉmeEݬòúe³++¨Ÿ±Šb‰€^®p¼ó8— ® KÒ …[w=O¤ ô[1âjª£Ü-‹4ß™.ôðHèèó» NºÒζÇK:Y½´¡ÖÙò™˜rt¹örí'’îÃæÇÓ*”O/©]J¨œ¥íå%s:ÃÍvœhšJIŽqRCµëÒV8N¹ÛÛr³²s§èÎD6ßljJß =}Ç´yƒ{ygÃWçû÷n½ƒŽ¿u,v~²#³æåOC;O¸J×E_R^Q!)©¡‹äøû¥Î–‰vëjäþD¯/Yêº\X„ýÃÄÅÒEgòýáì¼çE-‰›RYMºÇp=Ú(©8ÅÚ‰ÕhoòœÁŠºªÊf-5o^±¨Zîxõ…¨N¦Ñ2‘vr(OLTçÙ€›ò˜³¼®Åfƒz ¶œ §L”×M“2P^Uïì‚تU‡¿ÎQXÙ¥ž§8­º¡¶4<®œºµñ¶™Ô©ÖD€=+ ˆƒìã+cá[ÀfëâP@üS<`K¨d)ËØâ+¡ ”‚…lQ+*(¨¤ Š‚©ìø[NMj([ÍfX-¥N¢²•Ô­ŽÊꩬ²+(µŠjg²ñ6‹jçP0—@Í£àÊΧT9¥Na§ØiÔx •­¥²uœMÁyœKÁ9\@Áz .¤Æ(¸ˆ‚‹)¸„‚K)¸Œ‚«èÕìšÛH©&vÒ‡‚Ó‰*OÄ“â_ñ”x:ÀÎ`gØY÷|Jmbg2è¡îÄŠŠðÒ’Š1µKHøú—A·%Ž"]ª[VÝPQªª®-Æ"ÜõÑŠ<à kY}}MÖÚ Ò^0“v‹+ («.à¨Ë\V_YÑÓ=ðÊð­n]@<+žCþçL”ù©;,…ãhXȬò/-© UWU¬&ŒQYV- —ar ÊVˆ$Ûåªçl:CÅ5ü¯NDŽ™Qîñã$idY*¯ ÑÞ9TŽÖ[jby~Â"_]älK»2OSõŒšn~QN¶Ø_… 2üÃÇ›AôèØº’ÂMNƒ¿ñI/ˆâ%ö1ƒÐŸ0¢?øèˆÕ8°rµÈñg§È¸e!·Ùê¬P_4¼ø¿»WòÃŽüëÃb¢tÆ ÏÄdÿý¾uQÇIÿƒ¡K3¦{†ÝÄ YêóPÜÍIÖŽšƒÄVö|Δ4ûÄè/3èõW6” z—úÄ+E@¸Îιce'ä™ÔªÿP–\ùWìmöïû'ª ñ*Ÿ¯±ïì6v{€=ÊC€U%5®œ–Ò"TY²Z"Oåùsh`f&zM”˜ÌŠ»yÂt¿PÑ —áÊWÉQ¨zIçR^Af'Ñ)Ø6Ímû— ¤6ÒÅ]•+Wf®"gö”É9b@Ô.A]åøi)G6‰TfÅÅ]{5/Ìô1ö;)”¨žR¶`þñ+—!i£Ö5J;¢V,+¯#"–…bá8üè¡à@ªŒêÏk®r!ê.ES‘fKä ûê~DI9mœ_]y VC¾´¤Öéë’—v ¡TlL´ÈBFèàAœ¯ÐËá:M½­ç=:‹Š” „V¢çëÕž’þf»H©3-¬2B8ÕÐRºÒýöè6Þ‘w ð®Ä…Â"¤B´'•<à‚Ð6½`öt¿K9n"ÊÊQ] 3,©®¨¨^Iwu¨ 0_B‰,ïÀ? )*Ázƒ:ã1ΑÑ|rÄ4÷ àv9zH2 zA[íçwóˆôAUIê²þïàE|j4;dwÏÈä(uŽQ=±È•6Þ)r¦~eu¨¬¤n¢˜š‘ÑÏñ§"£x‚’ë2D瀎ïèêé€dçýfÛJÿ@â^Q]G¢43Ú®Âno:BS':DZŸvŽRç`˜=Ú·*Òª…\òpdÀñ¤ì"iO—ĵ+¨ÌPÚ\YéKoªÈ ‘xÈN^%É:qmiI]8ÀOàó±ùQFmI™?…Ÿ`›:m+9²å€ˆ}RCIš24ì¡Ôœ~î„Ý ~”qÏ÷{DIhjß~$³&Y ¥ö8:˜1Ù£iB^…#·>hGúp¢©óJ2N“1w`ÆÈ…™YóC§†úfàXŽ)ዤK¥8(s i¯È ®wìÔ¥o€]K'|ÿdÖþ&>‚oÁÿdÚ­Àá`å×Èžw”PÎÉãôçÇ’Ìïztš9ýf™ cIÆ®£éþ“éGNf">ÛB=Ûñê'Àžåå¶5–¬}W‡ëúiúVU÷=:Tº{ñºÐñÆ[èÉÙÚ™§Ó¾ß~t.­qE ŠG Q ‡>NÄ(ý“_”7}ÎÔܯG çÉ-ô¼ÖS¯¨®Ь«¬ Õ…[5äL÷XÈS%uáú¬’e~ïH×½LA-œÚOoĿ鸨“³“qÕ0Y R›tõØ-_dm—“'_×”¤ýH;Æ8¬íÓ½íz]}uMœ=Ü©ÑE‹9kÁæþYZQ”‡ÞÕAš¦ì(!D1³õ t ŒÂz"9— ÍŠNÛÞAG2ZƒÆx>ÏÝÈn°ðÓHËñª( §]'ÔSЗ‚]¼ï±ÿÒQÞýñ¾ø ¯2©ûÏ9̨G±:,¯#«ütöןqÅ\¿8Ï\PþÍSzÿõÒLZ¹û¢+úZgu]}¸q.©­-Y]Z]³:òF&ú}ÍÄVŠ$Ð(I-n@sNF…Þù™`Ìã·x6ZRO ãÒ¯–÷¹Çå™!î¨ ¼÷DsÌkíùÁߤTôs‚éËj«W:Ããæ]>%IÿK¯Yü[D£¾:ò¯Õ×@=½µ9¨]_M—~ch¹µ ÷%IRk/tüN*©¥iˆ=]sž&µvCèwˆ‹}?…EG7¼óòZ¬:=\JM³ áUÞŒ5òUƸ¯Fò ;ËcùÀXC2ÇÆczpXù‰QùS0\T~:æ'Eå‹0?9*¿óS¢ò%˜/ŒÊ/Æ|QTþPèÚÓ]X1Æn9›†åÓe¹B7/2ž‰ý(žÅfËxŽÏuëç¹ñ nù|7¿ÀÍ/d‹d\Â˸ÔËXXÆKÜx©/sëËÝþ'ºåËÝò 7_éÆUn\í¶¯qó'¹íkÝ|[_ïæ\¼V¸ù•n~•ì—ÌVc{.'cù)ìTYšKÓ]xg°3e|–›_ãέ›_çÆg»ñ9n|®ŸçÆç»p.póëÝøBÞ7¾È/vãKÜøR7¾Ì/wã+\|¯tã«ÜøjvŒ7ºùMrüdòWe|­_çÆ[Üx«7FÑgæ·³ë£òÒ”`ZÚŒ q„&v¶¸sý凸ÿÙü 5Yp,ÛIœJv+û‡Dí6v»Ûq¨ `lï6§rÊ^à»Z€È“ Òœf.JíB¼™Lݘs™ºS¸Ë`¦;@\d€= ZŽ1>jŒ8Œ8Œ8Œ8Œ»½Ù³/q c3ínP‚MÑþ&PD6¦TeQÒ6øŠRñ:ÒQ¥Ô²&Ìꢜ¤- +Ô4—e)Ɇ)¡-A‰ŠHº´´De7ÄÖé1uzLSg$ßoe©X•€U¦HTeU˜Ei‰ên0½&ÔÛòšÈ*+ºÊŽ©²qÐ@–æÖµ‰š[§í†6.8ºc¸ÚA$A †ZȆ: P+`¬„y° Üj8 NÆÜ)pœ 0¼΀kàL¸΂›` ì„u° !îóa\`=<‰-Ÿƒ‹áe¸^‡Ká#ìõ9\ ßÀUð\Í8ldÜ,—w.Ò`x™í–K™ ÿb{P¤âò8Û‹JCÁÑjØ=¨.Tìߑ݋ D£eu¢üÄî#!ÁÅßÇîwÿBgñái$Cœ³øqrñs’’·Á}Iñú0Õ$gÅs“½õ®0¤,-œT"Æ“=ÇÅV¶©l[S[Ù.¦²–$l‚n)¸²š×¤=-_²·|í±sd@' ÷ãì@Gxzã0ƒ!pFÂ?á8x¦â:Ì„ÁRx *á\ßgq­žÃ5z×åEØ/A¼·Á«p¼†^‡'à-lýŽ¿2wA'I{ G¸I®‘Àq®“k¤àh›äÑךOûú4{@®G;x€í—«ªÐY•»2îʬÇvpV¦CdeV¶X™Gˆ$éœÝ)"iÂ8HĹ:-½,ÉWIÔŽQ{I¢bºÓA)oˆ¬~k¤l§YÇB<†ÿAÔ?E²~†“þµèW0¾†È~ãá;$éhÙBkÿ+”Ão(>¿£Ø†uŒÁLóIW…ÚúA—ta—týa!{H2õ ˜ÃvI·Þ'ÝzŸt'³G$é’é>ÝÕš›]­9:y¨âÖ´¤¡¹)ñúª´¤äEJÙÐE¹Éññ;Ïœ"½b‘,2"Eª,J¹ÕŸn)Iq ±x°X®u'Hc!‡%G©ÞÑì 4F”ºC¢G©;%z c‡\ÕûO_õ®GD luÉÜÙYãξêMDÅ»‹bZi©xÅÎ!Y(5˜£XUG›a‹.!—"‘A+—è,{’Ën6Ùå7ÛÙ]f™ÍØ ]$g$IÎH–ëÞÙåR§:¦SþH‰ºß1Qß )þ˜‹\, Ú±þÈÒ!“ „!lŒdƒ‘$C € …ÉlÌeᜫØ8—eÁ…l\Ʋá–[Øh¸ ·°1p ¢·z9¶®Év ®ùãÈ7:db{G-ËÙÈ-…{{U ‚ ò\ö/ÉAp{ÊQ‹pÈW‹{ØÓ®Z|Æ_˜BWü‰{G÷±.ŠPäÂZÄf8,ágÔ¸´ô$¹ zFSy¾Kå„­‘º#tMö*²¯Q’¾¡ì»(óÑæ“p{§KÂ7Ù[. ]NðI¸P’pQ„<#v%”Dr#w%,Žä²vyS¢\×]lW BþŒ„ü ù+ò7$äïÈ ‡Qõ6Ãv g0Ž‹(BNðg0Á'äÛH~‡ã° µ²PÍ”¦õG¡NQ€› p LnGÁ´|˜{µ‹¡ÅÛ¸¨Ž¤© J³^éÓ¢Œh‘~ŽÃÿñû <§ú^X‚¢™½°Óó”è5,Ç¥K§5<ƒDe,Ç…DF‚é÷JËØié¨ï@4 À2w"Y8àíp" ǃÀ;AGÞB<zò.λÁž ƒx ÌáÝa1ï Kyo¨à}ä¤sÑž ;ȹ@%•½ÇÞ—A¥OˆJöûP²G¥Ü±sÄ`ŒÓ#†8±]F@K1Ùý¾-6|¼_”S}ö û»nOc;âÏ\·JòÈL§!ãT ª÷@Í4ò ¨” )“L™tJu–)·í~O²õ€Ûe°ðSûï“ŠÒæ`RY„f/Â}ÀÄä$êpè¾|$0 rù((àÙ棡š’¥ŸX5¬Þ•¥ö)+†DŸ±ÏÝYž‹eÄoãIïl=Iz{I›Á&äÔFLåñI-²ﺄzL'aBŠü„´¹LÊŒè¤Z=>l>ÚðÉp,/Œbïñ>¢ãå©R,{Áþë¢Wë¢7œ° nG!B‡¿cß·"Ãj„½>¯¶è¬Ûù=€Õ™É]¶C\—œä” ¦ä$ßš’\?f)ñÎ_Y4\Y§4•.;  ’„ê´&èÖ?¨ ®ÕøìFh›L–¬ÐššŸ*l†CL^*¿t~ ªÀK!ž_ù¯‚üjèϯcøFÈá›`*ß Óøµ¾êËÁ÷Oè’&ŸÉ~–Ç„”úÅ=|šÉ~u‰5“ý&w@=Њ‘=è«ërwwuÖ“l2’+ÿg^…¤jÆzù{àÔÒS™Û¡#ˆQÌ'£áàÔ­ßu 'oNWŸq£&{e§cþN8ƒü¸ÁT}zxUgïcû³ÈžœæôCG3a åOw£ëAÉh]ýòµT¾Ö‘ðœí¤Ïq„'ÂÒ%å7çM¨Qn‚®üèÃwÂHþ˜ÍïôÕ`WÈòÉõ¤Ëg‡]Þjn•·ºµä­ûZ³ô”º•Ρ–´Ú™qîj“÷\¦ž(¨o•»ÖžF#c<…£Ù¤inG[‚q~ÒÐ=p®Tθ÷ojþH¹•VT¶IwÛŒmµMÏx½TåVé4Ÿ£‹¶} Yõ t⇠†`<’? £øS0?³0žÏŸƒ…üXÆ_„ùË>¥“!E2!ƒcýÎÉ™o´ö¢÷¼.ÙžÄU¤V§9{9qd»$®Z£ôÊΧÜù‡`†CöT§ºdÂ&=Ò<ÖuÙ:bbàÝp>Ê­WOt$*RìVKèãññ7P¥½íø{hg߇nüCd¬PR?FgåTcÿUüó¨%=Í_R…«þvW“Kú‚\ÒFÜVJÔ“ú“ø (ê¯øxf»dy†Sî Oåcw¹S=VNu+îS‰3¶Ê®=ãÍ­’7N[]T¢;d‹žQËšë/«îc±Å½˜îbÑcEàÜ¢„X8ë¡?˜v¢ß¸[žG®ÆMºzbâ– btÙÐKä@†È…¡b4Lc XäEá:ÝÇÕðq]äR¬O®ú¸º%GPf"Ž> GŸŒ£OÁÑ‹¢Fëãfú:l¼{‘èr¬³¿ÐÝÎß ½"JѢ峡ƒ˜4±Eaùú5ÇL[¼ÊI›õn t!XbQж>¦6ún¨kSâ·Ù.(Ü(m˜“pÑ^¸˜ð,Ü„ŽÑš]žÏÛ{¤S½' —8ÒÐ[)#ãti´×+»Ç£1^¯#—B²XÇ‹£ø}¶Ïï³y@jKÆÛøX^àbYx$–ÿSÜâ¢q“ž§¨FÜN‚ñ¢. ¯B¯B¯8¯«]¼fz¨»ÿ§¶=’x«Á“!IœSÅiQHÎò‘œå#ÙÖGòÉãþ—ˆ—pYKÂ…x­EÂ…Óq>NÇù8Åã6ØÁél§‰ÿK8Eø8((­G”6D¡4ÑGi¢RÂÿ%µ;’Ç.C¼®@¼®úKàí]ã9—žvû¹xuÆà"Ç!¼Ü;_ºø@ºwØq…»õDÍO§A(Ç“E.m´{o‡¡´!ŠO|Ä»)¹ñéDz8.%²Oj—‚ÛþÒM0=Ùm'cÆæJÆœrTïF)ÕBh¤¸ÍÌH[Qo‡Qâz-vÀXÑ“ÅMP#nƒ•˜>MÜgŠ;ÑdÞÄnØ,ö â¸SÜ÷bú€Ø/I9—/FJWKÀuÐÃM!á|ò>Ä;¸;ÿ‡äijQúîËUÚÑ^kÏ^«xìH¯5F9wä0¸n­Ûçh€é¡ôNø*rꯎ¬[Â5‘ÃÁ$,ÛØݱO\:¦7I:&dd՘݌ÙM¬,ÚµÎn#‰¶é×)¿ŽòQGÞv!°‘°%ªÄïµÕ;ìjÑ+¡‘x›Û ¡–,ÛBè„tmâ[§ß6gî›[Çn vNw:÷ŽtîBÄ8í=¢lj1ƒ!N}z¤Þn»3ܦ֦u”ehqF+ž[ü †ˆç`Žx‰Ý'>ŠÜʱ}w±}¼³ãæcªƒä.ª%>sáÈžÄú!³$²›\ž[ï%÷KSÛ×+ÙI[Ð{Ý;r’Ñ'1×±æ&°“ÑaÑä¾åƒjÒ=_ƒ.¾S| mÄw¨[¾‡NâôR~„â'è-~Tñ«¿+IÀÍô îþ¯Ÿ‹¸ !ÞÅ?S‰ ™„¾“ƒäsî•ÅRZjß›¹Áõf×ì$têG`êÆ)N]ð¾Ñ\Út«8Ów%á,ÉÅ orJý)F% %:(Ý Q AW¥;:è= Ué J/8^I…iJ?˜­¤Á<%ÝŸjOÈ“U€¥îTQÕžÐÊTS|p‰ë¸Ó E×v;qÈ[[¸ÊalD«UˆÝZ¨â„8ñO *ô¨QK ìw#Ý%žßò’üþÝ@ÑÐÎýçP:êU•2ºðÄbz1¤fî–›¸^¡ƒsªP; !õ$§WÝ¢Ðnr0½á‘›ˆ÷?¼Ê!né*½Í+N6táŸÝ$Ï®‡¹%Ãâû` ­óíÙ„@&¡’!rDnR|v#+KÞ(3줽”B7¦º“Ú'ÅhDì°v´Ov[ ñZøã'Åwo„kÝH†=ò~'m=ãMÇA› €@ %·IKT‘&1>)~^#d§%ï;œNVšáõÉ.·´t(TʆkAm Ä)94• ÑÌz'é>ôWîŠæÔ¤øÑHÄ=p÷,)£¤ø>RüN‚²{ã“5ygIþÂð}™íŒìÃæÁqöŠý ÷¶î˜Tøù6ÁAÖaŒDíLþ³f46{ êàÎ-ˆß Øx!-¨ºÉt‡ ÝËâpÈmBfS$cŸDVÃõ ž¨íߎ´pN8ò÷oC,)³î¥Où‰—(?óåWÞ üÆOU~çW*Í|¿ªòÇU¿¨êü ÕàÿVMþ¾jñU›¢øjþ£š ¸ÚAtTƒ¢?¦©Åµ ²|²ÈR»Š\5$ŽUû‹±j†(P3Å\u ˜¯‹Ôab‰:\,WUêq’:RÔ«£Ä5[\¤Ž—«ÇŠj¾Ø¢Ž;Ôñ¢I îP÷¨“Ä#êdqH"žP Å3j‘xM&¾P§‹fu†b¨³”êl%U£d©ó”õåXu¾2^] ÌS*j‰R­†•zu‰r¦ºT¹@]¦lPOT.S—+Wª•ʵj•²M­‘ÖóVhÑ+Þ罨Ÿ¯òÞÔŽ—Àó¼;4QÀ&ð¾ô.PÌeCx*¦T1Ÿ äý0¥‰E,ƒ§aJ‡»Ä{.Ä˼?=Ì€‡Ä‹<]¾ûD«ÝªuÏð¬»Òι_盚àªY”³¡+ŠžÏ&%%<àé ý®¦O8Ðèµ![,r"—Òˆ&9JÓå¢XK#ÜnwGv‰ÒWÒÇÇØc´d}È’9¨íÜÈ>óm™k»jÙ—¥E®sûä7B&Vã½Àyе =Ú#÷àh{Z¼åZs4á}ÎÎ÷Lx´my¸uKGîBt³GZkæšÖ6„@w²£·þ¥.çn„·”´?Et»Ôè™1*þG·_ñÿ¥ÛgþMÝÞKµG[%Ôð¿?ï)tÖ&à¶ýTÐÕÓ ½z:tTÏ€$u ôPÏTõ\ª®‡,uŒV/|õR§^SÕË!¬^ËÔMP¥n†Õêµ°V½ÎS·À%¸!»Rݛհ]½nVo„;Ô[à^u'ìSoƒGÕÛáqu<£Þ/«wÂ{ênøXÝŸ©{áõê½LQïcíÕûÙPõËRdóÔ‡Y©ú[¦>Ê*Õƒì"õqv•ú»F}’]«þ‹mWŸb7¨Ï±[ÕçÙõöú"{L}‰ýS}™=¥¾Â^Qß`Ÿ©o²ßÕ·¸¦¾ÍÔó>ê;|„ú¥¾ÏsÕxú!Ÿ£~ÄOT?á•ê§¼Fýœ_ª~ůR¿ö/\ÛûŠ EÛÝ8%ñÓݲq|Ï”ª"̇òRU,ヅÓBU ôUÅý®ªø!͹]q„ë1wÔƒüEJŽ|›z„ø£ îh™öQZ†˜¤Û‘»åÆh Òc/ *¤1†$ý%!EÑšx;¢öèñƒÙ7žîÀ*Ôå±=ØûXœï¨WG<ä鬉UMGUA¥#c_T½£lµ¡,AEÓôP«M£[üóèÀP…¼©d£²ý ‘@²HÉý?T!8ê‘)[… ×=ë¯÷*²G •o‘õý}_ˆ&°²š]gÍ{; Õ)‰XÒ1'é>7)þò&<)o•UWñûá ¸’ñÃðŒ¿eŠY~¯Ì;ú*ŠP_ý†útPA]õ+êªß¡—zFªÍ0J0VS HS¡XÓ`¶fÀ|Í„¥šUZ4hmáL-.ÐÚÁÅZ\­u€ë´ ìÐ:B“ÖnÓ’à.-ÖºÂãZ7xF ÁËZwxMë ïh½à­7|«õ_´¾pXKem´46@Ë`õL6[ÈJ´Al­6”Ý `·i#Ù.-‹Ý­bû´lö€v,{TÃžÖÆ²×´<ö––ÏÞÑ Ø‡Ú8ö¥vÚ$Ô&ónÚž¦ò\­ˆOÕŽçÅZ1Ÿ¡Mã'hÓy6ƒ¯ÑfñuÚ~®6߬-ä·k‹ø­„ß«Uðûµù~m9D«äOhUü%­š¿¥ÕðµZþ¹Vï¿ý/ru™³y‰“âûÑYÄË7X?¸ú­^j5#ùR«qÅ÷I­Öòðnˆ§ÕømXjâjÝï¸1dª7ÅZ§µjˆ]4WM¡ ÉlŽã©MÍ?$ËMf®SŸR&‘î'ÕÁòó Úª™Ae+,¡Û|ç½½S¸x–æ½H *”×£Qzšž1ê´Ç}†R¥ž¥à9ç2Ö`œk _AG Ae;œ"a®lh¢Ô†n…2wtoX­L)s #Æ6h°ç},þxìuî†×¹.íØõæoqK»†EC~!ŠÐG‡æ jÔ’Äu"tÁe>Tí4h£ŽKtŒÐÖ@¾¶&jgÃñÚE(g—ÀbíR¨Ô.ƒS´+àíJhÔ®‚·µMð‰v-ü¬maº¶•%kl®¶‰-Ònd5hVh7±›´]('w°Ýšó§l¸ ùP6ù¨rù0LéL‡i²LgÉn™ïÂÒõ§ÏDîwyVe{]›œÏVñáòTw6+“Ÿ†XÌæÊOC¨dEòK=µãñ±öŽ@­;ã·Eîñ[¦*yÔû¡w·fóœ(;œ›ŸÕ(OÆ =¿ùňÍMK!¦¦·a©aó²aóGÉÜ;J~Éw|qhj>ˆ_vŠ’¤8D‹ó‰ˆ“ÞO¼égÕ ²ì~•Þ–ŽuºùíMOR¤¤•"Gð·"ôÁ˜h$ZÓšä«L'¬™¶Î@Er£ß,†›A3hl‡/e#s°Óvðð*¦жcç”Ça¹¼U"&aìÁ¨}ÐÌ”‘‘Ù7Ñv#\ê–eYîé뉵[@ÊŠžô%Zþ²%õϲ]dZt1"]l·‹MŒ·=` ÿŽjãªR)Ot8|¸ zPwH±I’=¨o‡ ¢gn8³Ñcf¾Ø²ŒtœùñG´Ý(?­‘Ó0ÝÒ,ë,MK+KZ§yZšæ^àÿ`‘¯»ÕµÍf Ta÷‚…V¯ƒö$jû¡«ö ¤iAºö0ªðGPu‚™Ú?¡D{Ý£'à í)X¯= iÏÃeÚ+°M{îG5ø¤öº>o—Ú[ð›öohÖÞc\{Ÿ™Ú,Nûõ×>fÓµOÙ,í3V¦}ÎÎÔþ‹nÐWl«ö#»]ûUû/ìíW¶_û=§f/kÍì 8×·t…·ÕUÞA×x'Ýà#ô¶|´ÏÇëíød=¯·ç3ô|¶ä+ô$~–Þ“oÐ{ó«ô>|³Þ—_¯§ò›ô~ü žÉŸÑðçõü ló®>‚¡gñõlQ¤ç‹ÙzX£ëõñb·>A¼¥g‰÷õâ?z‘ø%ì'}†ÂõYÊD}R¬/Tæé‹”µXv¾>M¹X_ª\«/SvèåÒD=íùõÎG ²øUPÀGbÊäë`¾4G†˜ gó,ª롘bô¨ý+ø–gc­É?`ªÓŽgÛy5¥˜Þée¤Ê–ø.’= ñ%4:g\dŽ\C—¦œ%̓tå ž+ Ý¥N?Û‹–†®YÜ*o[UÆÅÍò¹´ÖbCz,ã˜<³M^åÃ$m9äT{Òù™/ú¨ú[#è“S‚Œ<¯hx Éù¼ŸÊ˜Û(ÞkÄ©&:Êö4ÏJ+e™ÃÉѦ»ç¸`\°Í6¸ÄéjCH2Ú!78Q¿AÞùcùòDý ,!¸Á¸Ì` æ&ên+éFL¢~FÂç¨ß<æYàï]¶ÉjÍ[_Pu[ªþoŒS×ÜÔ\Mk¤%6Á<‡Ä´^$ƽ[¼™÷¨;Xô"{µhuÄÓùiº7îæøì(†QÁðŽp6€^ –^õzè¬7@o}ŒÖOéú©0K?æëgÀýL¨ÔÏ‚Uú8E_ éë`›~6Ü­Ÿ‡ôsá)ýÖ/†Ÿô˘¢_É,ý*ÖF¿†õͬ³~-KÒ·°úVÖ_odõml˜~=Ë×w°‰ú l†~3+×oeúmì$ýv¶BßÅ.ÓïbÛô»Ùý^ö°~{FßÇ~аßõ¹­?Äãôƒ|˜þÏÖŸäÇéÏòôçxµþoÐ_äçê¯òõúk|Ÿþ.߯¿ÇÑßçOêðôùkú'üý?ü}ýSþ©þÿAÿ‚ÿ®)tý+§-Bú7¢·þè§/ÒõÄ ýG1JÿMŒÑ‹qz³˜b€Xbpq±¡‹M†)n3,ñ¦7â]£øÄHßíÅïF…AE1:*¦ÑIio$)}deˆ‘¢]• Fw¥Èè¡”=•£²Ö諜c¤)—ý•+tåZ#CÙmd*÷”gŒAÊ+Æ`åucˆòoc¨ò±1LùÖ©6²TÕ¥v4²ÕDc´ÚÓ8VM3ƨÇùêXc¼ZdLPÇ©×SÕ‡ãÕ1ÿ™1SýÞ˜­þdÌQ›¹Zã­·1_g,Ò¦‹µ¹F©t²Þ†Ž,zó±ä2±0‘çÉÔ6è*Ë,‚$y=g‹ËÜ+À€çÉë>[}zò|tvÚª³à Y§\ÉñrÆ”×YG=Ô"¸ݰÙô]‹6ßû L›Æ'Hת£6Þ=Cè¬H'K@om„{z6]3ùDºH„Y冕ÖY-î–Î’Ô±ÒÝ2øzñ<Ÿ„=L¾_l•§gV l2ŸâÞ \âüІLƒÖG¯ì¤øžL9n]«3ÝäÀmÐ))~äõÐ.9>~æË]–ÓÔüAR|‰¬Yâ×ÌrjžHŠ#kÆù5Ç85»’âGÉísM´ù²õ˺èq-\Èð`¤GÃøêèwRÍ{c QH¦ÏxvnDý’&óŠ4˜ô%NÁ.÷D±_4쯣º1€‡Ï ÷$ñ‹è¾ß½ïÖ±,‡ŽòtâÐøŠF©eNY44¾¾Q~µ»“Þ¨$|ë¢,â³gHÔéñâ¤Hç’Fȉî\LÅ|M4°ï|`}\`±˜,ý#Lžõ;çºÑWžƒÉ”èÎ5Q˜&ÕQÀ5Ì×E_àïÛ*ð“Zoøà1˜ïïá§W^?f5Ã}!fÈwt‘‡Ô,òŒjPhcœ F-t6ê¡‹ÑÝŒÐÛX iÆÉ0Ü8ƧÂTã4˜gœ'g@ƒq&œnœgka»±n3.„{ ð°qÕý! °”>•}Óq[Î=ÂɽN¢uNTÊrS6ƒÜ,¤¤d6Âtr’Rïo”:`*K‘©¤íò ‘3• :t+ n÷u*z³ï8ë݆ä29e°ÃåSzôd¶4Añ}>•è|¸Lg4”í’<øFù=½1Ùƒè}ÍübËÇùÆ@7>…dãsèkü²/!ßø ¦ß@Æ'ßÁ)Æ÷°ëÏ3~‚õÆÏ°Ãøn7~‡ûÃð”Ñ /bþuSøw1ãÑNÑ&Ÿžéçòãq=è a÷™~2TÈ0â°øß?¿é?Ý“ñpW¡?,⬑íüÔ{×{Zém¼~ô^ù@Ð33wC7Z²mô¸myY'ÁÑ;º4yés»óSë¶"£Zm=ÅÃí£ ×%RäC¼ sŸ·X£ëecóF牢šöuÍÚ<Ì}©¡þý—jÓáÓþÖK ìñ¢Ø_ÓøI•LËü‚‰JüêÏùE g™ºúWdéΘm$lºH?°1m`—x—¥ðŒ0Û€jÆA'3ú˜ ÐßlÍ Œ3;ÂD³3L6¡ÈL†éf ,4»Â™f8Çì ëÍ^p‘Ù.5ûÀf_¸ÚìfÜ`ö‡›Ì Øi€ÛÌp‡9î6‡À½æP8`ƒ‡Í‘ð¸™/˜£àm3Þ3sàC3>5GÃwf3Ì|ÖÅ,`=Íql€9žå™Ø 's›gNf‹Í)l…YÈÎ5§² Ìb¶ÁœË.1g°ËÌYl¿9=fžÀž1ç³—Íì³D Ñ `Â86^^O*0‘åKK…Él §Ÿ1Õ ˆårú!S]éÞ%'{׿0zÓ½0êÏöð™RIJ;8ýÔ©h!X³½O•³puÃã­H™…HŒHÕô[”ËGªGˆS”, 7Ò‚†<üpÄó7÷@ òñ*31ƒ’ÒΑö¦ ­ßÞŸyßK‹œ_ÑYGJ:O‘JL¿j«Ÿ’³a¯LJ¯c«ÜÅ:™)pÌa®ðj(3¹Ö¦h;\÷õ‡ º_4¼ähN‡ÃÞ# Ä´9JëÊë´tçK[$ÏÀ°(hÒ—TæASkí†,q«pžæ¾‚¤p´‚ö¦ ‘jAûûjØ¿Þ%hÌðÎF¦ÃqM08ænº=÷:©’cÔƒîœ[!Ä;”s×Þ!h®ûDÛ{%¡8ÑÑÑD¶¸+ç0šUðð«äÅ»ÞTG(@E²ÚšÐÁ¬„D³ zšÕ¨Pj Û< F›õ0Öl€ æ 8Þ\ óÍ3 Ì<–šgÁIæXa®…ÕæÙpªyœaž‹Šå<Øl®‡ëÍ á óRøÆ¼ ›W¡RØ„Ja+f6²qæ66ÕÜŽJáz¶ÜÜÁ*Í›Xy k0w²SÍ[Ùæ.vŽy*‡;Ùfó.¶Õ¼›m7w³&s»Ã¼Å>öŠy?{×|€}aîçÌ<ÀÛ›ñŽæÃ<Ñ|„‡ÌGùPó1>Î<Ä'šOð"óI^l>Ïg˜ÿâ³Ì§ù:ó~ù"¿Ú|•o1_ãMæëü6ó ~ù&À|‹2¡<l*¤ÈÛe“̓éGY0–Çó9ò9énIõbðY!•ý&Åã®òéÀwK•à ‘ï’*‡£?p#Ÿ+­~=Ÿ'ñ³ù©àTÍ/ ®å!þ |¾ë—íq^•±1¾ü¼44ÇŒe§%ÝÉø&²lÃöŽa4å¨[4¯Kß­Ð?‰dc;ª­Ú|©s×#y+”Ëí¨™ò˜!7 ˜ž»&Ê$¦G¤ø…[ᘤøÌ­0(‰ÎíûK¯%v8í¶’×8ªY>%¨ìaºü)À?Mjþˆfñ'°ÌÃo6C¢Å ›Å¡·%`¼¥ÁdK‡bË€– gZm`ÕεâáB+.µÚÃSVGøÒêßYI𣕠ÍV Ó¬®Ì¶ºù~6Òßÿ.à˜5p_@¾7œ gó…r›¡ _$7Ç®g _ìššÝÈOÈ3bRrR™ûKc“†ÆrvIc“Hçf:ò?6‰tîÀ­0"†\ô¶Äÿý‹$#и•/:Ò¼RáŽðÞ)0–›nd“Ü‚;Š™ðkŽ`#«ÕÛðh`ÄF)G²‘ÝZÇ©½2å7-tcO<”B<4(EòP ñP,œÀQH¡çA¥Q@Š¢€ä¥HFL!F<&E²` ±#¢z ¶9êMÍ×¹,¨¹L jAÕ¡iß2Ô5²dŸ¦qHÓ¶ÿ§4]݈[!Ä!^â°µ›£ìe »ad¥Ê­mï× ¯6v¬­ŽE$Ó.ˆõ$œÛ³N:¯Ñ-gÔùè«K›‘¿Ð8¢~€«¤[ý¡Ä'Yƒa…5Nµ†¢ØC±—XÇÀUÖ¸Ö û­lxÄÊÇ­\xÉ⟿Xù ¬¦ZãYŠ5‘¶¦°|«g±3­b¶ÝšÉš¬Yìk6»Ó:=fÍgOX‹Ø³Öbö²UÊÞ°ÊØV˜}j-a_YKy‚µœw²*xŠUÉûYU|’UË ­:>ݪçs¬¾ÐZÁ—Y«x½µšŸfÌϱNå—Y§ñ+­Óù^k ÀZË?µÎå_Zëù÷Ö…üWkƒH±.=¬ËDªu¹8κÆ÷œg¥JRÀ¼T~[q'tæeòÛŠBØæÔòé°™‡å6‘§ØÄ$©Ä˜L-’Ækɹn¡Î–x[R¾Ï5O÷º[Ò¢­ô£ƒ“æ´g‰1'vyG)Ÿ~”ò9G)Ÿz”ò‚#ÊÓ¼ÏZóÖs#Pͣώ9“_—a¢Yî`­dù–ë”Íoüß]мòÿçë‚æ‘oÏŠ=ôÈ"³2Px®ÕÚk ´®‡aÖ˜`ÝS¬&XdÝ aëXeÝ §Yÿ@aº®±î†MÖn¸ ÅÖ=°×º´îC¡Ú/[÷ÃëÖð޵Þ·†O­GÐÎ>Š6ö1&¬ƒhg¡ý' Zÿbý¬§Ø(ëi¶gØTëYVf=ÇVX/°ÕÖ‹ìTë%¶Öz™]m½Ân²^c;­7ØmÖÛìëßQ6ú^x·k£7±n|©dåÛ™å¾ä¿“é­¾ä_ÆË]=¡ÑÏB­$ÉIŽbÞ.¦Ãòü£”9Jùô¿Ù~ž_žyÐàìBig*92$ÏRŽøfR£ï$m„þiñ+GyVcˆá¦;¸üØRßä~l™¡ànú&“p$Ò¦ÕòŒçGÙ [Ør+K{:mcóþdšå Bsö.´™N‹½ˆÿ_ûð²yj²#>æß³©9ᯋO²ìqø&ÚbS—ìØ@wWT[ÙÖiåeó w«ìœô´ æˆ$ƒ}¼3Oò7mipŠæç(š_ h~‰¢ùŠæ7(šß¢h~¢ùŠæO(š?£hþŠ¢ù\bl²4Ún´ì³UxÐÖàQ[‡'m^¶-xݶá-;ïÙmàs;¾´ÛÃ7vøÞî¿Ø؉Lµ»0ÃNb¶Ìâìn¬“bÝíݓõµ{³4»˰û²Áv*f÷gYv;ÖÎdyö6ÅÈfÙƒØ{0+·‡°J{(«±‡±{8;ÃÎb—Û£Ø v6»ÍÎa÷Ù¹ìi{4{ÇÃ޷Dzì<ö…Ï™]Àìñv¿üö°åöíDÏ>*9α:ß«Ûçý çú`KH8óv:¦9IG|³¥ÕJE¡ÙJN$'m’?)+ÐýjÅv0¨XU²“6Êç´c½JáBM+“äcVòF˜ Ê^ËrSîW³¯±ósö~SùƒõT‘³¹4­Å/‡7yˆw•ˆÏñ:Òï°Ïqte2)“áf2(“îfÒ)CB™¶ˆ~Å]ìv§B(”µ Á÷÷ÈÛDJéÜ­‹mܯvËIÞ‚FœÆNF ýïHæŒÞ©ôÛ$ÖÚgÂyöØj¯…ìup«}6<`Ÿ‡Jé|THëáUûBøÐÞ€ è"h¶/fûÖξË5¨L6²ñö&v¼½•ÛÛP©lgaûzT&7°ÓíÙZ»‰­³ofÚ· RùÛl߯®·og;í;Øöìûnö’½›}Œé/ì½ì{ûö}Ü´÷ñxûžjïçãí<ŒåËí‡xýßhÿÓ;‚µåþUó`_.ïu2á}^!ÕÅ@x—Wº¿ùžÀ«äóÌ{`˜ó­<rܲ_¡Æ)c²6¼š×ÈßÞí~‚<˜­•çMŒå±Z~y-žZA¥2 !ÕzO;å_ç »£"×#è¿ çFâÖc#èíYÆ­RtH8¥éÊš-}Ì u£’n$¡&çØ0D%¡¤È‡"òÇVí§À¶Ÿ†¶ö³ÐÅ~úÛ/BžýL±_‰úa¯"W{ö‡^±WŒ.ÒuÞ_c³Ü?)Ò/É‘xù‡W´vÇBNòý* e¾ó'7ºE#¿ÅOÙA;ûcÚÿžö§jõ‡Cúù·hýäOäÒß5éìþE‹ tàõt7Šè4øNa³û‹?ž"UÎÀ¤EÊ"ù ¹ät?}oZä2_6!çȶdÂÉiiñ—ì¯Á²¿öö·ÐÝþ†Ù?ÀhûGÈ·Žúµîï ŒrÚÓO);ņþ¾¬»Ø÷9?¶ DnJúþí0+)=eèV(8bž†åÎÞ¸=C­0‡tLú^6€tÈ¥G=d“¿\vsR‹ßh`p|@…™˜?! ûç0×ÿí±>éxÕ¾ Î[ØÅ“}npx˜ÿIعÿ¯µkéi*ˆÂßÜñÂn{‰`¯©@PXhò*µJâÆÄÄÄ õøˆaã#å 1F„è† J1&®ˆ$@" þW.ÜúLPž¹¦·uã¦÷ÌLçœ3ÓsÎW¿Y*šëGÕX®\¡ŒSJ¨T…v zLsÿjDÝý¾kÜSê\T ýÁÿÂ*‚¢ZXtÜ##¨ £0?Ã4¿ h~…c~C£ùªçîn@’Î`"¸BmÕÛq‹¢˜£–©Ô…7Çuã=õàõâ'õé#.T F45 [Q5•ÕÔ[ý½:O³R[cî7PK ¦Nj6ò$±u"¹F4org/codehaus/plexus/util/xml/pull/MXSerializer.class­{ |TåÕþ9÷ÞÉÜ B¶& ‰„$BÀ`H@d†dÁI&ÎLXÜ«¸ÕºÔ¥T6Á¸Õ¢B Eq©Å­‹vѺ·¶Z­ýÔî«úÎ{ï,I?úýËï—w_Î{Îóžå½Ã Ÿ÷8•hƒ]´ŸL^˜Nws£É‹$_lòY’/1¹Iò¥’,3ùlÉ—KrŽ“WH¾R’U’¬–d$çJ²V’u’ø%Y/I³‹r‹“&opÑHn•Æ’´I²ÉäóLšÜnr‡4„$é”ä|IÂ’D$‰JÒåâͼÅä­²ê6i¹ÀÉ:ù"•ʉ.–üI.uQ‰µÙe’|E’ËeÖRÚ.É•’\%ÉÕÒq‹¯å¯š|É_3ùzÚo0ùF“o’â×M¾ÙÉ·¸è ¾U’ÛLþ†Lø¦É·›¼CŠ;M¾ÃÅwò]&ï2y·É{dâ^éÚ'¥»%ÙoòÉï1¹[ò{M¾Oòû%yÀä%ÿ–õÉãä$ß––ƒ’nò&?iòS&?mò÷L~ÆäïKÿ Iž5ù9“Ÿ7ù“_4ù&ÿÐä™üc“_2ùeaÉOLþ©É?3ùç.~…_5ù&¿&¯›ü†Éo yoÉZo›üŽÉ¿4ùW&¿kò¯MþÉï™ü¾É¿•©˜ü¡ þ‹?âßKò?’ƒæÌvòÇNþÄÉŸ29ÏYذvÙ’z&OÃ&ÿfIÐßÑZÒ ·u´Îdʨ uD¢þŽèÙþ`W€)Û¬ î¥KjjëÖ6Õ¯¬oœÏÄ+uYžÉ7¯®fé²%è©[R_ÓP¿²nÉÚš¥KÏ®iXV·vYSÝښŋš–.Y´øŒ:¦a±Á5 ëšÖÖ7.­[ÒX7—iôbŒ¨[²tEò2õsë—Ö,­_ÔÈ46Õˆ†úFÙxqÍ’š¥‹–0 ŽjXTkOÌèð·"õÑ@¸#ÐüQœw}W4°,¨é E¢áPçFœvp[GK #ê¶…:,–`r°­#Ðèô‡ýÑP˜É †šÕ&=ÔeÊ´øØ*YnÃàâPW447Ðô‡-‹Ã m[p Lt´:£™‚BU§¿Y•JiÖl‘4¸6ÔÕ]µU"‘ŽXk]Î5(^µöL°,ÜÚ7´u´E6 ÌN$º$ÂRƒ"¨5¡Ö J§G—ú[ë;šCíÁ@D˜-¡zÅ€(t ÇÒœ°¿ù¼@Tæ%jñFçœeóÖ6ÔAúú® By-ÜÈÒAƒ<ÍÍç5ö–VFhÃPØØÒI€Ü$!-èjïd˜Ô2G¶ØîßjÑÚØB°[D4 1I*Afª¶úÄT0¼ü‰VƒÒ‚Ig3µ¡ÙPæ5vµ¯„—ú×ru€àÙþp›ÔíF#º± g(m…[Kš1s£¿+RæmEÖm –lm–tvƒ% Ïi `n°í—êØÖ‰æ² úÃAÔ¡àà"ÂY†H‡:"]á@]0ÐŽsDjýv[t›XS"hÂ&BG`‹Urw-‘ÚPç6µ•îƒF›ÊFX‹Å±–´œ 4ö…× äF…0›ðG± hKqŒ•rð%rÕmmÆuïÁ8WkÒÔ”X‰öp`}W[°¥¾ÄytU\ê8/ f7 ¥Å!¬? IÞ aɃ‚'ÿAa÷ ÔË'¦  ©eÑúM樒Šc³¥+=ý»±hkò¢ù©Žu²i qE3´`R*ýŽA–ÎÁæ±!Éz('ZÔí55¤ o¿Ðž¶Åž_˜è¶f`—€¿}fj jÂÐa©g@S 6Z,í©Ø<7ÔÜÕ®Ø^ðå\ þµ‡KìP‹?’K?$Å ÀÖß)„p­À½£%±Mz\¥ý¯‚L:UZ§=%½#¡š³‚¡Ðy]‹Â¶>-û¿‰²—”¾Œ–•)g±èµÖ@Gf'¾§‰¥æZöJ ’̈ӮbdLƒ3-?µóŸ‚Ú:§=ØKo1 ©uâöéJ Ž@pñP©w‰&HY¦¶S"á¿CTFs0 4Å?R!<Î$KŠ~[ç¤5j” lnêR õ?'bZÁªÚúúÿËL=CÔÜ"gèß%p9«3‚NŽ€¨z8iá®fK;8aH-Ø;[BÍ-8 îK[kG(,†iùF߯‡cC°+ð Q<©‰ Èöõ&œTJ½u†ÖŒ%Œó»ÄwpIV§hŒ-k›"8’QEÔpÅ‹T é°ìH⻤wb¿¨eIY$D¡Wa“ú…¿Añ*« 6åÝqû[àTÄ—Ëí.{‰Zuœ¶3+›ƒ¶íw5…ºÂÍym2wp²©ž,˸éUúÓ‚ÑhgE‰Rä8Y$½ù´ dƒeÄ"“7FÛƒã"ñéŸÊTwEÅþ¸ßé¦oQ7Sù©®¨”Sq›í ¹é!™=ûä³;-óÓ–‚¢$ÇÉMß–ujÿOëˆ\‰9Én:HÝn:$ë±ËM‡¥vŒ¾ Ÿ«¯ Üô=î¦ã’ß·óvþ¬?gçÏÛù vþ¢ÊGŠ«êps‘çŠUgyÉ÷²Ýÿ;ÿ©gˆg¥òŸÛã^Qy1xék¨½NâbE}Gˆ}í0é>q˜>OÚarú<æaJ÷ñarù<“Û§¦ Ÿãqx˜ù|‡hÐqUδʹÓ`ãñešªcˆt ± õ=BY9Ó02üauŠ×‘ΡL¤#@c¹h4jch˜ÂF!JE4‘¦"-§2šF³i:I3i1UÒ ª¢5PJo¸lê,ô&½¥Ö†ïcŸólÒQ7A͈”UXØCÙ(ã\áÉ9B¹O$¨Hòáb5 ¢5”M~µò0k¶½²”~©Peˆ“híÁSí=î~åI2JÎ9ZñL¯ÌÁÖƒïCã!ÊÌá&a˜• Îq,ÚÎÜýÅ;ëÀ0üy<^骊cš|+ë’ûÇ&úÇ%÷c‘ñ’L$_’‰’H2I_â°ëÁv¢r€‘.Ú€C·â m‚‚”Oí€Kؾ‰*(L³èbZ@—Ð2º”ÖÒWÐz9uѨ]IÛé*º–®¦èº…¾J·Ó×è.ºžö¡%ÆÀa4žÞ(EHwÛ¬4Ä´8T¤¡í*áÐñJ¤™Î½ävHic792MǺªœ]ä4ºÉЫ¹ÂȰ*Œ¼#æèÙ†žs” }Ù€pf¯¾A½úå>æªp K˜9XÏv¨®n2QÒù²ÑÁ Í£ÁHom· ;Ç;ȇӕÒ.Àq7ú÷„{™}àç~pð5·¹êíR\¼+¡Ê„ÕÖ íÓ§ÑeôÅ‘DU'` Ï݃›i®Å^¥W[[øôr#˰·ÙG¢ûªò¶ë,-YFU/Ûn(…§¶¬Œ®ØG¥z¹#Ëa“Ð{¦+Ë¡f:d¦šÿĬ7 DŸÁâNè Ê€è<¼³Y£ñ¬S!;¨”Óh;i›´Ói 6vS„R¢‹8“®cÝ…ün΢ûyõðú>D(?‚ÞBý×+É=goǬ³a/-ì>¹÷£úN^ž4ÙŸìà4{ò<DÝCó|…p»úør¼ÜXCé|nÒ©]ñS» Ž XÓìs§Æ%2_$";€¥š.Þâ¼)÷PA²²^%Êú(­î³ÀéOÀ\wqÂ& È^˜DF‘EFQ2Ö¤"CÅ:Ç÷ªÓ‹{ ãaOQrÔ·>¿;ÀØžï”váþí+°ìÞG|7ó~*ã´„ï£~0zð¹Šý íá‡é?BßæGé‚’?L¯ñQzLÿÑŸø1úŒg'Ç|"¯ÕGßU&b‰3àH( ¡4¬Ï6äñÚVc3m#àôÂAZÛW >¤»œq;Õ’¢»²á£Xþß9¶ÿw¨7Y0ú‚ ?÷1kÆÎÞƒÖ¥‘ÑRwU«€B 2ÙÂJ…auŠ7—·Ÿ²²¥>$ËúvÇÝ_|”mÜ®£ðLîNrðA¡ËŸ8u# ÁYžÃ _ 7¿]ðÊáC¼DUü2ÍåŸÐz~…Úù¸ÿ¯Á*¿A×ó[à¸ÿ¿¤}軗ߣù}zˆ?ˆ_WÓÎQžÚ¥PÆ"¡×¬˜àïÄx{Èæ­”rU É [\QžÑ•ÁÑA °F?BëãD&µ)Ý 3Ùl™ÉÑ=ÔîÉ¥HpoHQì‚éŠ%Ÿœ ûEqì&a¿(Á¶Ép6‰?†Qû”*øOTÇ¡EÈ—ñ¿ÈÏÿ†ó9…ø Ú]¡iqìÖ@íZ,¨ 3[hWÆ™qehyp€û[íŒ{ãU3SZíÑqo¢Ìö&\q-ÚñZFÒ ®ø Þ”+d¦\Á“r…1p‡•Õ7ààð–´¡I:ÔçÓ¡¶}òR‚ði‡ò#¡í"+°†DÕXo+†¼­@"QÅ(¨× Kn¬;'ç»z±óZ·Ó‰›è,„;/·´©Ïð"kxfÒp¨Mg†ÙÃG)ÿ¤d…§UùËhȬ„a-<ÁÓ •_üCn´N°ÛÆ”RíFËäc]C“Ñ‚ ›m w¶·†b˜“>GÒDÜé´¬4Ç^õî0$+mJ…3Û™í8@’©¹Å²®ô˜Ùf¶!=ÈTO¶…Ú 6ÛÑØMéÛÓ€÷G‹Ÿ¥töÝØX¬¨¢FÛnCfNÔM­‰û²Úº.žº{èLKïõÏBJž:O]µuÓ Ù+–l±6áJûTÏy)Œ¹Gö+’}Xz¦ 8‚œZ6 Ðr(KË%Ÿ–G“µÑ4UóÒtm Uici¾6Ž–iãi…V@Am]£ÑZ1Ñ&Óq­„žÓN£—µ)ôs­ŒÞÔÊémmýC›ÁiZgi3y¬VÅÓ´jž­Íâ³´Ù¼R«áó´9Ü¥ÕòVm._ˆþ¯h øJíL¾N[Ä7k‹y§vß­5ñ=Ú2~X[Îiçð3Ú ~^[Å/k«ùMmfhË4—Öªy´ê>tÂ(®„Ï1ÚäÙ4a!…Hg1‚ÃïRîÇZÎG›øØòD¥#ßF,jAçgh¶ÕÆß¢51½© © mhLo¢í—ý\Øžd{0ðÊI~‚þ´Ü¾>¦&˜ÊÔŒÊô*hÓB Úó¾ÄÀ)0 (”s)ã¢LÒ(iJÀ*.oi¨²úû©Å–מº·ÕÒ:€•MÐÂÀH”fh›i¶¶…ê´­´HÛFKµ i•v15k—Ñ&írŠhWÐEÚWi»v]¯]Oû´èíFzR»IÉ« \ZyY¶ üŠ+å§ãêi›ÓRúL¤ÔËÉðÅ|Xv«6¢‡pˆñ;zó¼#Ï'í€êIV‰­˜:­¬×¡TkôngÿAGè|%jKƒmçY¤^¯n]":Òno¿IEÚíT®í¤¹Út¦v'µi»©SÛC7hûéfíîß=t¯ÖMßÒîK²õó¬5ùnóh¸íˆ=¤óÔë=<á–Q Í»?#³`?ô³ eÂ’†ä@5  ª-’~†È”ÔbáQô¤á‘µÍ—aO}7$T0†´‡h¨v&iS±ötˆj´Ã´@ƒ}ÓŽÐ:í(À÷(©côí8ݨ=Iû1ç~-ádºiWü­þHQ̈jmÖ+4ïMÀWtÔ—9Ÿq“€*“Ñe¹HVŸXx6§2rŸè@lI½ÖT)w+±Á( ·†Ô'šû¶Õ",³/aE©³œ‰¼¦=ÛD¼ÊG€ÕËè†g¯Xhêå[ÈŒ ¬`½ÀRsc¾Ü0öÒ`Õ6j¬øÍþ4ÑrXZê*ƒâ‹äÒ~@µ¢ýˆFj?¦ñÚKÍϘW(¤½Íô}]{‹vko ¿¢k¿aSû-Ò>à!Ú‡œ«ýŽóµx’ö{žª}ÌuÚ'ܨ}Ê+´?òZíϼAû whå-Ú?øRíŸ|öߦ}«õï†Ñ°O^ Ÿ\ÙQfÑQbÓq•ý9fÊ)Ò‘›gQrQ?J‚’A $“JõÁI¯Sâ”LQ_ƒY•þ®žkQâRe‹“©;Þ±©»Ñ~%›oQ'É·ˆœô%D /¶Á{ò\ÒëÁF=fèÃ([NEú:]Ϧ*}$ÍÓs’˜8?NúüLœòÿOff~Ÿ÷«Ì™hèKæhé™c@æX9dŽ?e2§þ¸yi_n.MÁÍ9 dú@f!È,™Å§LfÙÌËú’ù•dž2§€Ì© ³ dž2ËO™ÌÓÿ d^Þ—Ì+RY2g‚ÌJY%ߨ@æ¬S&³´Éø•ÿ ™)ÞQ¶§tn SP^ Êç‚ò:šªÏ£³ôzZ¡/H¢|eœò•)(Ÿºl°#uùùÃøÊàLLÜûqR=™ëPA‹°ûâ$·id??À6Ú~@ ÚL(ëZ_ªiÓs¥|¸ªÂÐ˺˜}L…Yi=T]îÌrfæï¡±YiYŽý4¨¨0Ë!Wƒ)Ežkf¥ëÊU¹‡&¤um|T7ÝåÌ;É8åÿÇÆ]ˆ½û(Š,c7 FæÚM.dé{¨,å._•4Ëy”®“‚R2±Å&'‡š_ƒtíaS=×÷6Ó¸ûóϲ»(SÖï¡Ô{¹YÔ—“ÂXNƒôsh´¾’Æê«`ÖP¹~.€¼–ëëèlÝO«õõÔ¬7Óf½….Òt¹¾®Ó[i—¾‘öëmt¿¾‰éíô¼ÞAoê!zWï¤ôóéz˜þ¦GèŸz”'諸PßÎ¥ú•\¡_ÅUúÕùdvÓAá¹OÂùÌuGèë …ê}p¹^çS¿BñúpõªÒÍêÓÖïí~ÜÁ²„ï>VÌŸ1šœ†—†c(ÏGñTмÜȧ*cbü“ïhÿâ0‡ç¨_œ£"®å¹ P(­³)m´}# ‹†Â‘ £÷ÎÊd…dE,“Eâ*2—½¶K~‚n)ºÊþÊýiÎʉ¸C´þÎÄŸüzjÉÛ9ÑZåµá/ub¢‹ñ7W+I}Ýç¹ExÓMwú<·Z¥›}žÛ¬Ò5>Ï7¬Ò%>Ï7­RÔç¹Ý*mòyvX¥u>ÏN«tvN¦w/¥çd^²ŸæÆ®ÆèËÉÌVÙC#èºäÚu} ´ÜG+ÆOiÝß`ÁFšq»¥~Þ¯à1œb9NÞTdcØb™ê ê†~^²¡:£z{£{TžhFÞd«n7ÅñÈdûõo¡AO ‹Ê–oøeê˜z¶©åkôÜçkÇ"NbĂަžƒ$;°Ð:•Q² 6/¾Ur1Þ9+»Ò7Ÿñ¸rÅ5ðÜÄ™wW´ç‰G»<¶½E` Ãò˜e±=ƒ Bžzu×g1nì` Aû˜º$Û ÚV—5¼ý–áws@8!ªuÊ4=I-ÝÕë>u=<®™#%{$uÔXþxÚÃÑè¼ÿ¤áÉmÇ¿ÍN¹õfÇMÎÇü¿[Ù8+ÃD’ïÔ¹Guã\ÑÓ.¦gx=&OOôÀŒzu˜H!¼Õ¬Ýlúõ€õN>cïFNYX$~ÃR°'Í~C±üœKß;‹™ŒrÓyãCaõ¹ð‘Z7 ËðŸ…-B­”d7Ðïøew5ýØDfXµ·N· „ƒ¶Y L³¤»uWY<,\2ì(|Ÿm·)â¡¢-=ðDǤç(ß0Åó¶):èF¼âÎq'ìs°Þò}g]dVÌh•¹={$6ìºxÒ¹›¼Õ–ß6×®SÏ[±ºÍÇáÊÝÔØ¥Žíú—¶+N8ÌÇ“÷Mw´nx|SË3Ý4zç­½gÝzw6^ˆ½‹¯Øcñƒ7ãø…š„y˜ÀÛÈ>¡0…xfzxñ\ €x>†ï Zˆáßáß‹áßáO/Æð§ˆÄðâåÎ ÎÆðCÄ8Xø<+±÷XE,ÆðˆÅðcÄ_ÆðW°„¾†oyÂþ1 \Cæ[Xÿ>lÀÓÄÎwð,Üyß'vžC.Ál‚êæANìlÁv‚yJ‚yyy;¡¿](„²ù/Eø‡H–AMXj‘föBù*Âû‘<ˆdõšåaäó³aòÇH¾ŽäO‘¬ÁÏ¡Ô#¬Ãq(ëhÕc£Ç¤±k@‘;éÃ5¡u30Ï$wš´Þ€‰\¹×—ý䉑¿T„[j5% ¨ÕA!¥VÓ Zå„´ZåN­N¤WN•†qFpFÕ?áöáR+ Å¸Úá 9ÿPK ¦Nj6øôøOÐÐ>org/codehaus/plexus/util/xml/pull/XmlPullParserException.classTÍsÛTÿ=Û±E©S7q(¥Å-lÙ©šú‡–:mÀi ¡¡|)Ê«£"[I†” ΜáОsá@š t¦igè Ã>IvœÄ0Æ3»«}ûÛ·ûÛõûëï?žÐñ¥‚£8ß—pAˆ‹.)H`RFIè)ï}YÆ•¼‹«2Ê2¦…kF|Ï 1'×D¢ëý˜Ç{Âz_FEÁn(¸‰ëª>`H®qß°l†‘Ê]ãkC·FM_ZwoŒU›—âd2°y 5»Uo1e5,ÿ2ar] EßµµR~™!1í¬q†TÅjð­ú*w—D6†tÅ1 {Ùp-ñ9þºå1LV·¦›„\7ZžÞ´ù©–oÙúFÝÖ›-ÛÖoÕí*éªázÜÝ0yÓ·œUÉ<‘|_1 ·{”xЋJ=©Æë^øha ãÎÌÐg®‘Ú_ãþL4‹Ñ\þ_¦1HQ;¬R¹hF²ï„†áÜþ8ŠÐX*@®F„ÎpÏt­¨È]µÝ\½ËMÿ¿jê:¹G„Öi1¸ëvþþ–£WÃÍq¹Q'€B/pÏ3j¼ÍÓî)Ø5{7¥ÅIzŠŽÒË§ŠÆKVB¬U O: &¶äIúª"F?`H+lƒi±Gˆ H¾N‘LF¡àRÁkäÉ„8¼ŽÓ@`½7)«Èž ³3znôí1+Ûè+¼€œNn"ÓþÞ‚”–Il¡Ÿd1:ÎFÇiE8ǃT;c{ò¤…s ‡Âc’»º)þ‰Qò¤„‹¬!aŵ±G8¼Óê)È$O£E­~K­~‡<¾‡†PÀÃ}œ Zצ:­? 8Ѻ°4ŠV‘è“wŒP!Ùz@Чý†Ã¿t®MγAj5 ˆR3ñgíŽý¼|®'x¼'8¾<ÑLïBþ‰Úˆ“.‹²_@Ѷ‘ÞÄù_qd¥òŒd4r‹)´§”ñ[-<ß„¼Px^|úîÆ%LQ¶)\ t7õW!¡ŒLù39K Ìá®ÑÉ|W•åN•oÞþPK ¦Nj6å%æ<`À5org/codehaus/plexus/util/xml/pull/XmlSerializer.class­”[oÓ0ÇG×ô²²nƒq ØR wúl“"M+¢hEåÉuÝ4“GŽƒ:>|>â$ ]¡flˆH‘›ŸÏÿ\|Žûíû—¯àÀ [ð„@)âzS+N`ÅÞ?¢Ÿ¨#hà9M­üÀ«·k‡hµ;d<Ô¾ " žZð ‘7!\6kmeôþVÉ+}L`Ó`5A#Ît=‰Wö&u&ïÓBE ׈uk[™È—ΡÓAÝàêЂçª'‚–ò5Wi&ó‘¦JïHx€níÓkx-¥à4Áƒî‰ð‚°bz ¼çÿzãìPå®jצªv°ký4¸K`Áð(¤ ›¶deVf…ÒÚßS@ël¹îKå9LvyŸÆ‘ >Ä%Ö¾p†ᄱ·hråSáÆ#ÆÚ¨Fq'ÖÐ?S”ÿ7ÝIKËi>Äþì‡ìü~_Ú߸î?eĺÎñnS28H¾>~Ç{h*ÉxážDZÅ,¹Ø=&£³º’u98Ù¾HE;‚·ú8ØYûg{"Žp6JM+Æ÷|pñ—¤¶“48笅@å÷ËI`ý¹BpŠWÊKïÆø¿…ÀÚ”QSSÍ',ª?ï¨ÛÓ<3<«9vÈá÷,~呿ÁBV€"®%(OíÍÁ|º·³½ú¨d» pÉ@¡j K°l +pÙ@¯ÀjF“lóH®Âµ4ëp#]ofëÜ2èoúÞ1ÚÞ…{Fºa ›`hÍHïé–‘>0Ò‡Fº=>Çäl*ø:ø{ýPK ¦Nj6É#Z 6org/codehaus/plexus/util/xml/SerializerXMLWriter.class­UýSU=›„, K€ Ŷ¶¨Ú퇵V°iPlÔDýtI¶°°ù˜Í¦ÒŽÿOµN)ƒÎ8þ挔ãy»Ë’†L§tœÌ¼}ï¾ûî9÷¼{_þù÷÷?¨xŘ•ñUÌF0‚›b¸%†¯û0‡oÄÆ¼ŒÛQZ²Â² †oÅðØ[”ñ½XÜGr2òQÄ1Û‡%,G°‚»2~QQ”mê–¡™ÆsÝ’p9W·6Õr½¢oi­¦Ú0õ]~Z¶aª»USm´LS]«šÿÈŒ„HM«ê͆VÖ%ÄsÛÚSM5µÚ¦Z°-£¶I‡^ÝÔ«zÍnJr÷€[+ïp;ªï–õ†mÔktlsÈM›ûáY£fØ7%,¤ŽG?1ßôª„Ð<HÈ5}©UÝЭ¢¶a:ôëeÍ\Õè͵g Ù[™]y;ÔÄZ>W² ÛÑFiÚšegÝü%$»d I„Iº[F]]\Î*Â!!/#i•ÊœÍ#-›ËÉnZtÜÑŸIèyª™-ž‹ü,¨õ][$æ|úS^³vZ qµŠÏ7˜bM»né>' £©®\…oÿ¦ngÛî3žJ¿Ñh¡Þ²Êú‚!äí¢ÜEqDÁy\ã-uTŒ‚38«àÆ|ˆÓ2~T°Š’‚5¬KîBLÁ縮àî+¸‚ "­à³Ü:%Sð“ˆõÎÆrç,K{&ØË ¯ ”eTèÂëÒIËâ Ôåm½L¥'Þ¥í¬z‚gû95XÔ6%”Þ­jÞã5ZÍ-¦Ñàæ6“>nbjGµl¼«ÿ‡g¶[¾Gœp¹Òt..ب³k©®Y†ÙLŽð±7{€ÇØÎïÁ¡\÷h?rŸ¯›&Ín7E³ù•âúãÜb¡Èæá¿û!¾ílþuÄEG8_ö¿QÈüöÒï<Æ9~ÌÕ‚üc™}H™?XßGp¡Ìôz2S{¿tÎ~Âq=ÏcŒ™`ÄSŒù)­çÜ(˜À$à̺äÌŸç)¤=Ô_<ÔñÌ+¢¼Bxêr%NCS¯Ñ[zH>3½èK'Æ(£E<csœ ƒIÚ§¹“&Òsºà39M¦ÚÃç4NoÁI¢çEÉsfrò?d2}€¾ƒ¥ÌŸÁ †}®Wiû‚ÖkÔá:s¼á g-á¡w*¢úŠ\âL(rÙWd‡káŸ<¨†@§}ˆuP¸EÛmZç(Æy®W}àm8á÷ÐEîÚVhÍ{™Üõqcm¸ 7áã~F¹\ܽí% îþ5baàƒA'û\fªk ¸,J´= u±ïóú:,FèsxýRÛõÄÃïa?ò°ÏsèoÄX÷qÖýð†„…*$(ÿQáÇ©@Æη؆Å(~žg=T‰…qÃÚuÖŒábE~Còd±øÕv<ªNLÅõöbJøÒñšùPK ¦Nj6&¶qÒ5,org/codehaus/plexus/util/xml/XMLWriter.classmŽ=nÂ@…ßògìð×ä Ái²H•*P PB»Ø#c²Øh™Ÿ"È¡¢Œ" SÌ›‘¾yo~~Ïß4†ú ½ÇK;*Xá1žmÍÑhkŠL/ØåEöúü!˜IÓ7–}í™Æw°û‡áÉåLKªÄüá2Ïûò{…ˆŠô–ÛŒk8Z”Þ%4Í­d VóÙg}à^jg…§Òe:)SÚÐ{K•ˆçÜêjgõVýò¾ÞRÂ…êj·$ -@´ÎEƒëÞ½jˆHHùWz½?PK ¦Nj6À‚(r¡ Ï*org/codehaus/plexus/util/xml/Xpp3Dom.classµW x\e™~ÿÌåL&'×f “Ø6€Òd&m¤t¤%¦)æÖ4½Ê$94S&3qfRZX•í²âe—Õ‚¢‚P@PŠmÚX¡r±]ÜÅ+ ¬Š‹»+¬®«{ßUV÷ýþsæÌd:Åð<ú<É9ÿÿŸïþßû}óµ_éqm*Äex´µø¢CAxìÍa³AøíÍ‘ Gå1'/Éã˜<¾,Çäñ¸<޸мŸÇ“Âù”<ž6ðÕ œÀÉ üž1°K6_3ð×üM˜ àY9úz¾o ï·dõmáýŽ¬È³YÞϱϋߖÇ3Bú‚p~·/â%!ù[aúžïцñ2~(«¿3ðJ? âïñü£¼Ä«x-€ à'"è§òøg‰Æó¢æg²ú™ âR5Eæêžþ¡‘Ñëûwt w*,¿b¡¼çtoìí[?Ü3°£{°]ï@×HïàÀŽþÁõ=;ºFF†{×méQ¨ìN%3ÙX2»Õv¶¡4WÏðe=ü§BcÉï]CC=ëÎZß³¡kKßÈŽÓêVX¶¹§oÃÚ>…bpkÏðp¯p/>•[lSX’S]R<ƒ¿6žŒg;Bͧ^vËV¦B7c*OZ3ScVz$6–ÐÉ‘%¶ÆÒqÙ;‡ÞìdœéÐÒ¼°ë•n è¤Sqþ÷*x2éq…ªy_)zÑ¥’ÒN'¦‘‚±ÓÊÚ’ê›[JÒ’À¹Ö@Æ]Öò´«HW¨¹¥¤6³–y[*t%ù2óø–—à+} br·x(¡ímYh®w”4lÌØÄ„£ÓØcŸ*Tä Ñ¡n‘ø,PÜšR¶,˜»r<•¼&¾s&ËÆSÔ*@”®t:¶×o&~=#[™3³;5#ÈâinaFU¤­©ÔnËqÊË@2´¾q{[N–!ˆš›¥òLž­öºt…Õ够HMÅ“1¹Âr—ž——;¸ÛJ§ã"{Q [Ȧ¥n¶×PC†¯kLýÍÌÍ¿÷È,4u³¿SK¬Öo½k&–ÈuœÁ±]ÖxvM ¯Ã“Û5öp>òÓ„„00ËLÚmÉŸ¶23 ^\ ›²«‹g×9™½ØO9…çfïos¼ Ñk³©-I+3›¶&r kÇN×$°0ƒ›S3éqkC\Z é¸ºR”›¸ _0±„ŸE% ËD?¨%ÿi#}ãXdb}&˜;L$e•’Õ4Þe"Œ‰,fLÜ€?RxëB‚/’&Lì•Ç;Ðkâècõã“ÿ2ñßøÿkâ—ø•‰×ñ KótÄ”¡T<ɹ8À ÆmmMzDl%›’©lÓ˜Õ”$Eä)ÍŠ Lü¿1A¼®”‰÷ÓNU†{L c³‰±ÏÄݲÝëLåQ^CùLåç‰ò ý6)¼ýÍ‚™僆2LPå¦ ªŠÜM1oz ü3ÇSScœ‚VJÊ4U¥ªb6¤p0Uµª2T©jUãš#Ï&þØô´•œö˜øn3qû8¨”ÊS"ûú2”¶²Ù½CdȺΰmÙ°âB:¥™x€9C·êç]²]L¤Ô¸D¼š7¹ÓÈk­½›-ig¹ñIãÑšyÄšÆÈ¦t.Kϼ¢D9—8cÑìÖsK•Iòé’_X‚|ªæÿúäé-­‰# ³—uæ¼t§ ’1Öän¬è\ÑL ‘…Ô£{g°6-—ÞÄtÍXöêºy>9SÓéÑÃNÈ-\’7Ï ¤²=SÓÙ½§ù½@ô6⇢ö”ÞijWÎÐMø$ËÍ.Pçü[à\<ü;ŽØå-[q1_ ^Ám®¼‚–úMÀÔo‚¶~:{Bß T|‡1Bz…-\—á"î·ì·q¿½`ßÁýhÑ÷Ë ö«¹¿¢`ßÎýÑ_9oßÀ5{ŸWódžM‘#P‘èa”EŽÁ3zÞÃðqéçÒ8ŒÀAÍãs1||vÒ¯KPŽKQ.,Ã:ŒéoZƵDzڨu‹Æ GãOÉ/F#ÑY”APÞ³0ùªì÷t.i}ün4´.YÕᄽѰwU³¨¾É£üæÇ¤©ð´{CÞ¤:“ÖŽ®yWAÝ,Ýä%Í«ySW±Yà•ÕЯj /ål^ÑJ®Wój.¢©Ý¼˜a¾·3HâÆF¤1a‘Ç‹3Ès v2Pkñ½òŠù®“£˜äŠ9õˆc—¾Ô&\K™ž²G;Ž·é@€a=„²G\#ýúðJ­Ø´ ÑJÚz æúbækJ2§ÜKî$µ\Œ_.¸>Ÿ >½–<‰‚ëó»žùuj‹bNެí¤=ç*ZºÏcXüˆ¬çpk–»9œY†¯ Ì¿¼¥UŒ8“ØÞ*q}Åçºslq´ 87h-÷b‘¼¢shÁ‹À«Šcpc ® nrrdœ–ˆ-ªõ>TCãhÝ[Ž`ÉqÍm—ê­í_U¾BÚˆÖ9,ó`[>ŠgÓ'àƒŒâ‡ ΂¸Kq+ýº çáv\Œ¿Ô¶5ÙZ]Û:Ûd%q–¸rxq¬\çD ŠJ}shÏk‹½¾«Àë*Wr•ÎR¥åí)!/‹ä)òî9¼\÷ºe|u8¢‘Yœ%FRèÙ-Ÿ•-ŽS®›û§X4>wи^ד’áÕѶÉɺer+¾û`<Šs$é||Ïá­âËÛøWœn_àÕdš.H·enºÝ€w;â_&—Ÿï« Å;8Ø/GsÌwtjàYr7Zå(äÍ]J‡/öÑãY,ß`«¬›·i,z®•‚fÑRl]„¥£uѪ'˜2O2ežÆrœÀ8I@z†)ñ4áéYmy'­»‹ðZîcjs`¨žT×â½”º”H|£)zá†ò*÷âþû_78¡¬w|õyr=|¨(~ß¡…ÏÓÖ âWïÆïOp“#s†\B¿<Ò8‹ˆD,0‡¨k¥ÕN Iá\¶*fKq3ùÝ{™ëÒµWX7?*¨—å®3ˬö“êOŒxn.+‹Óú'%òýn2ÏÈ•Åùsòüâ49ä¤êeZÖ>Þ‹$:q£m4ÚzoX9ŠóVÌb•ò]¨•µÇIŸó‡ã—Ôû+BÉëhäož=¦sFKuuG76|Dðg„2r5z>Ì°Ý ™;ÎçHØ^–Õð¬‚_^‹ž„÷ ·3R·š½µÃöÅìGu]»4[æ°]x?žbaWÅûQQØ¢;|žvÈö±7‡}!ÿª#6(IÓVsÕ[iÚ~Á Þvë ˜­³¸°Ý€£FÝE¢×ZoM]‡ÐS¯Ÿ’¥Ãwžö@(6¨ââ° ¬ê(„Ëu‰­é†üû±(<ªp0\Þzk FárgPïù¸îcd V°m´Á§VÁP«Q­Úq–ºç¨5X®.Æyê\¤ÖáÕw¨þ\¼ Wª^ĹO©~¤Õ v«Mü==Œ÷ª-¸YmÃ~5ŠO¨+q·º ««qHÅp\á5o) Ï©I¼Âo¯*»ÁÞºڄ3ñQÞœAH^¡SÚÏ$á/ôÙ!žIr—ã8Ëí\q/)….À‰ë~6“]Ì’4kîcle~þèíÑÆ!7‹ýNv¼†;tfÊêN|‚q0XZŸÔͯ/1 e´)ǧði·±Ûm±*rB.\Ây$š¯$ ßêÆðݪ÷ÀT7”i•«¹ÊÕ\åh-Ÿq»ÇiCZ‹*­åVj¹Z>J-·ÏkIÅZ”üè·e«J…îŒFkÞ‡¢O öÁ·(AZ@©ì$*[ù:!#D­ÈŽ©w‡ƒ‚õ6A½KP/»‚M² d%‡³¸8Gà³ |.à‘/GàÍl]€º‹éøi¦ã=¨R÷¢FÝz«ÕChWŸÇN9ÛÔ£L»CØCàüõ_}¹ ìwºpp'>ËD‘)ô}¸ÏAÇ.è?ìœUS»¶æm“…ʈv¿“ó”çêÜy½}^_|²Ïéì%óÎ}ö¹Ï=oÌ;Ù ]U= z êiœ¯¾ŠwªW' nÕrœððì~gpyÀ|'™íâêÒc¸”ý¸«ïÖFëºÕ¬ïod%dôgг¨¯³Ç}aõÍ‚€-ut¨ûA ü±Î »…Oö°«5îh]VZ«ç(6”RûÕ~—j_ääúRÚe®Ú3\µŽÚ>ÏAÅVÛ¤ zª®ý"Î9¨U¾‘-åÓÖyðÿPK ¦Nj6ÈÈÑ™u©1org/codehaus/plexus/util/xml/Xpp3DomBuilder.class•WÛs[Gÿ­.çÈòIìÄ•Õi¬‚ËŠT¥)uS¥4u| ne;ØŽc‡´åX:²Ž.HGŽÓPÚ’¶@©[ÒiCi.L)0é Øq mgx``†?ûÀ3<2ÃSà·GŠãÈ*•´ûí·ßå·û]Îê/×?ø@¿ò"ˆÇ½èÄrxRÅW½páñF蘖œ„Ir™’ÔŒŠY/Ëi9œTñ5/š`6"ƒ¬rr™—Ô×¥@AEыֲŠ%‡’æ¤Ô)IÍ{qOI‘3Rérãi9|S‚{FŠ<«â9¾åELgU:8$ Ž léÍe‹–žµ&t³d8yB! <”Φ­‡œÁ® Wo.i4ÅÓYc¸”™6 ãú´IÎöx.¡›z!-צ˚M"ñ\a&𠿬^*Fó¦1Ï©d¥Íè|ÆŒNæó÷õå2‡Ji3i¸§%)°??©ÏéÑt.:jèr¯«.K4¡læjÞþù„‘·Ò<­ŠT¼(0rÓÓ`6_²Æ,êg”™¦ž‰’“ÎÎÔÀ!î«iUÀcdi‚öä½mð!p¤^8ÇëÆã¢B†÷’× Ey/÷þÅ|ɤvÆ<Âùˆ­BnˆGýþ§‚›vX·íã›·]?pycFÖØ]÷Ugõ “ß='ˈ¥•æoP@-视íí‰Yæ7«-•ž)t™‰O2'g¶êC5]²ŒâXú)J7Úv•R)·’ ¼c‡Ø˜'N_Š[œ5ª4ë‰D)S2uËHN”¡­O¾‘é“F²“Ó42¥Ì¿ b•»áÆ•%ÜÅç]P¾‘pº⼇+ÂPI³ÝqŒÚ¯D¶ÎîÐ2Äû¶È^ŽŠÍì½µ²öá>Î ìs÷SJ*ïå,÷”ëW«´÷®ÓVÐ8ï·iD̶t b霤5´‡¦œÕ¦ºmS­e<„/6õ0r¿Úè#£çiTáܹ ×Ô2ÜÑО(NDv^ƒs…®Áãw]¹mÂýÕšq;vQeö\±‹®@·:lÆ!Ê   ‡Éà£õ° .Ä—5]­ë¬€“TwÔn§n/AUî«~‰³›sGðP8´‚­x‡‰Ò¹jÃöú]m|Äþî´çõh‡èo„c”9?&)qŒi1i£ @> ;*Q‘T$ì´1:6`ì¯sµ:POÜsiicÌÊ–ÿ$zb<­6T™‡yè-Ý.ŸËuQ<às¹/á-ò¶ ÄÜ«hšò»—ÑSÂ+ØF1Õ§¾ اº’+ØîÀÇhŠyü¿²„–°_YÁm£ºOðc¹5"ÊŒEl‹¬¢•þn_“ØAkgwƒ¯Á繂Ý!_à üļ6u©F¿â÷ú—Ðö|ƒXüïß±às©—°?bcq%»ÝŸ»£5¦ÐèN¢VÛÞdÈÔ%ÜSiÄ.õ¹”Kˆ‡×TÃRµ½|%RYH%. Í¯þ š_K¸k[Êv>Ç…Ï}Š_¹JgŸ—×¶xýÏ«è˜Ú~÷2v´Ÿ%=ø'σsx;p’™b2òY6…<ó À|µ˜‹sÌ™yÇ$ð4%ž!÷YœÂY¼€±À§Íyfêe¼Ì÷Á+ø-×ð%óœÃñ:þÊÇÉß)ñ oû|™ü‹Oã"þÃ×Çu\¼#|XíxWtâ=ƯÅ>üFÜ÷ÅAüNôaYƪÁïÅ(>´óéc´“ÊJûñ_æjX½ô߀GI5Ò!Îu˜˜†ÈsóDg1L …«3¬…8-,ðŽògÐæ¹‰¶ _Æ(å>±ý„J”˻ĺãÒ q²ºÄ‰JnKªR9bœõ5){ˆˆcŠ”“ ÕÇ{Œ³3¬¯¯ØQ9ñ?PK ¦Nj6á›é¡~0org/codehaus/plexus/util/xml/Xpp3DomWriter.class­U]SW~N²ËB²€Fc•*T!À*PZÅ*V ˆBA Ó™M²Kó5ËÆÒ©—þ‰ÞöÆëÞX±3^ö¢?£×ý êsN2€°­qÆdòî{Îyßçýzöäï×/_°°A £Æ"á‹Nc\j_Jí«&bSRûZŠi¹¼!µo¤¸)—·¤˜‘bÖÀœy¶)·âúÓádjU@›©îœ[qëå¼ã­Øùwb¹jÁ.­Úž+×ÍMÍßvwsUoË*ÐsÛ®ïZµ’³ÇGÝwKÖ^¹d=ªÕFg«å5ÏõoR@ÿIjÉÜŽýضܪÕA~tÉQʸúà»#wÓ@üN%„s”mjó<>¡4\%øì 1?m:Ï!L{ óO„Ö μ€vQ‡ У€Î5Œ¹Ó£2éÄg¸D( yù? õ È^Böƒì=Ùׄ¼Ñ„4ÒíÚŽƒõ³Ø#`>Çf»ÚYh´ž¤3Ïaì£=*‹áq-® ½ú =Cqm$«§z&¡?GdÑ0žjâÙ›hhfµð¸×Mcé„×GXàSçÿò¼3«'ô¿páâ¯è"Ä>ºBx†¨R»CHïã”ÀawÕLYɺ1Ì]cÆ×¹Æ(¿Ã,ÆywŒñ˜à‘ŘBÓØacʸ…:æñ n«|ÏZ/¡‹=àÀclj)V<ÅS©é²òƒþ,ÑàÖËþkš” ¶•‹ÙÀÕb2kª-LIQÈyåhîƒ-´2Aé|³Þn£rªá–û<¡”•¦E­b6 †>پѸÀ²êG—¬!³‘orˆKTy©ž0Š5/ ¹mäÒ…ÑäÒK@pŒ¸œÑ1•xYIÕS.U•á¶ÖÎîÍq[íS”RZèSÅ›mÂè•Ì*ÛLÁÞ‘wQD\ea%- ¿+üudH™xC–@Öé/2§§$Ä4K$ŠF©œ©¬¤x³n= {n3ðm¸[ïd;Äc ðzô\Þ¢G'C˜ƒ‰Ïñç‰PÜ9TljTÒD¿Sðý#é)$r<ê/  k {[RäPU nèÜ»Ã-bý-bme*³+œ‰Ïû»Ã¦/qA×¼æ1ë7NwrÂþäyðÎé^xx½åÚë¸ú؉"!“þT4>Œ!z®Ö‹î5Âåþµ¤;®C±q¨²±'ênÛ o[(…”)Á^®èÞ\òP…ŽeeUÒÑZI—Ã×YZ³qð²r!g£kPsÒ¼Ž¥ÁÁ×Ù«–0©GîÑ+nçz{ì¡::1{F„L0Öþ‰&“¿PK ¬Nj6ã÷]ot>META-INF/maven/org.codehaus.plexus/plexus-utils/pom.propertiesSvOÍK-J,IMQHªTðM,KÍãRN,2‹  ,­L­ŒL‚CŒ ̹ÊR‹Š3óól õLô ¹Ò‹òK A´ì/¤Ýorg/codehaus/plexus/util/FastMap$EntrySet.classPK ¦Nj6%`áóO/¤Žáorg/codehaus/plexus/util/FastMap$KeySet$1.classPK ¦Nj6׌£-¤jäorg/codehaus/plexus/util/FastMap$KeySet.classPK ¦Nj6[^T•N/¤wçorg/codehaus/plexus/util/FastMap$Values$1.classPK ¦Nj6GÄ#{œ-¤Yêorg/codehaus/plexus/util/FastMap$Values.classPK ¦Nj6ŽìÓ\®#&¤@íorg/codehaus/plexus/util/FastMap.classPK ¦Nj6pMg Ú6¤àýorg/codehaus/plexus/util/FileUtils$FilterWrapper.classPK ¦Nj6˜‹àŸ'ŸT(¤Tÿorg/codehaus/plexus/util/FileUtils.classPK ¦Nj6X¿[´%B¤9'org/codehaus/plexus/util/interpolation/EnvarBasedValueSource.classPK ¦Nj6wl«ù…ê@¤M*org/codehaus/plexus/util/interpolation/MapBasedValueSource.classPK ¦Nj6õÏÊ’C¤0,org/codehaus/plexus/util/interpolation/ObjectBasedValueSource.classPK ¦Nj6Èeí~lS C¤[.org/codehaus/plexus/util/interpolation/RegexBasedInterpolator.classPK ¦Nj6öW"˜Ê8¤(4org/codehaus/plexus/util/interpolation/ValueSource.classPK ¦Nj6b”&b‚c 8¤5org/codehaus/plexus/util/InterpolationFilterReader.classPK ¦Nj6x› Ó¥ó7¤î;org/codehaus/plexus/util/introspection/ClassMap$1.classPK ¦Nj6I®PvQÏ?¤è<org/codehaus/plexus/util/introspection/ClassMap$CacheMiss.classPK ¦Nj6A ¸„f¯@¤–>org/codehaus/plexus/util/introspection/ClassMap$MethodInfo.classPK ¦Nj63[*‚­ 5¤ZAorg/codehaus/plexus/util/introspection/ClassMap.classPK ¦Nj6 ™ë)ÝI¤ZMorg/codehaus/plexus/util/introspection/MethodMap$AmbiguousException.classPK ¦Nj6/Vp:í 6¤ÒNorg/codehaus/plexus/util/introspection/MethodMap.classPK ¦Nj6NIÈ E¤[org/codehaus/plexus/util/introspection/ReflectionValueExtractor.classPK ¦Nj6'Ú6ƒ… X%¤`org/codehaus/plexus/util/IOUtil.classPK ¦Nj6‡Ý;_â Ý>¤Xkorg/codehaus/plexus/util/LineOrientedInterpolatingReader.classPK ¦Nj6[è›û~ !¤–yorg/codehaus/plexus/util/Os.classPK ¦Nj6ðeBw—x '¤S€org/codehaus/plexus/util/PathTool.classPK ¦Nj6…_¡Ïœ,¤/†org/codehaus/plexus/util/PropertyUtils.classPK ¦Nj6ð’9ò³s%3¤H‰org/codehaus/plexus/util/reflection/Reflector.classPK ¦Nj6…½x <¤L›org/codehaus/plexus/util/reflection/ReflectorException.classPK ¦Nj6Ìnð…> .¤org/codehaus/plexus/util/ReflectionUtils.classPK ¦Nj6ÛuòAƒ p,¤¨¦org/codehaus/plexus/util/SelectorUtils.classPK ¦Nj6ú"kª0¤u²org/codehaus/plexus/util/StringInputStream.classPK ¦Nj6Ý`ÉCD1¤.µorg/codehaus/plexus/util/StringOutputStream.classPK ¦Nj6ž[@@]ˆC*¤À·org/codehaus/plexus/util/StringUtils.classPK ¦Nj6˜8=#uQ2¤eÖorg/codehaus/plexus/util/SweeperPool$Sweeper.classPK ¦Nj6þ{¶g *¤*Ûorg/codehaus/plexus/util/SweeperPool.classPK ¦Nj6XŒ—ÖZ&1=)¤xáorg/codehaus/plexus/util/TypeFormat.classPK ¦Nj6ÊÇ;yH{3¤org/codehaus/plexus/util/xml/CompactXMLWriter.classPK ¦Nj6g<ž{ 7¤² org/codehaus/plexus/util/xml/PrettyPrintXMLWriter.classPK ¦Nj6˜~™ÛeR¾¨0¤%org/codehaus/plexus/util/xml/pull/MXParser.classPK ¦Nj6ò$±u"¹F4¤Øgorg/codehaus/plexus/util/xml/pull/MXSerializer.classPK ¦Nj6;˜ Àç5 5¤ŸŠorg/codehaus/plexus/util/xml/pull/XmlPullParser.classPK ¦Nj6øôøOÐÐ>¤Ùorg/codehaus/plexus/util/xml/pull/XmlPullParserException.classPK ¦Nj6å%æ<`À5¤”org/codehaus/plexus/util/xml/pull/XmlSerializer.classPK ¦Nj6É#Z 6¤¸–org/codehaus/plexus/util/xml/SerializerXMLWriter.classPK ¦Nj6&¶qÒ5,¤f›org/codehaus/plexus/util/xml/XMLWriter.classPK ¦Nj6À‚(r¡ Ï*¤‚œorg/codehaus/plexus/util/xml/Xpp3Dom.classPK ¦Nj6ÈÈÑ™u©1¤kªorg/codehaus/plexus/util/xml/Xpp3DomBuilder.classPK ¦Nj6á›é¡~0¤/²org/codehaus/plexus/util/xml/Xpp3DomWriter.classPK ­Nj6íA¶META-INF/maven/PK ­Nj6#íAK¶META-INF/maven/org.codehaus.plexus/PK ­Nj60íAŒ¶META-INF/maven/org.codehaus.plexus/plexus-utils/PK £Nj6‹wToŽu7¤Ú¶META-INF/maven/org.codehaus.plexus/plexus-utils/pom.xmlPK ¬Nj6ã÷]ot>¤½¹META-INF/maven/org.codehaus.plexus/plexus-utils/pom.propertiesPKkkJ&ˆºmaven-shade-plugin-1.7.1/src/test/jars/test-artifact-1.0-SNAPSHOT.jar0000664000175000017500000000605311037411047024246 0ustar ebourgebourgPK v€ð8 META-INF/PK u€ð8˜÷вe{META-INF/MANIFEST.MFóMÌËLK-.Ñ K-*ÎÌϳR0Ô3àår,JÎÈ,K-Bä¤V”+À$x¹œ‹RKRSt*­ “3R|ËRóx¹œJ3sJÀâN®N®~Š®WJ6Èp=£xC3^.^.PK v€ð8org/PK v€ð8 org/apache/PK v€ð8org/apache/maven/PK v€ð8org/apache/maven/plugins/PK v€ð8org/apache/maven/plugins/shade/PK v€ð8ÕÌ m(org/apache/maven/plugins/shade/Lib.class…T[OAþ¦”î²,"QPñBÕ‚º Þ¼Ô j,…PB™.C»¸Ýmv·Šþ!_A!’裉?Êxf¶F¬$ôafΙsùÎ÷M÷篯ßÐ…xiÀƤ†) 7 ÜÂmƒÜw எ{Žã¾†=´?Ô1-í™ñÈ@îH÷c O4"ÿ?©­)†Kå ž Zþúì–#š±ø*r’„œq¼6‰F%h…Ž˜s%;:mÉ"ž™("Ïpᨚ £CÊ z.6’ 0 B ÏMÌbÌÄÌÉå,ÃE¢ßrH¸:oEVÓ[´µb׳¶žÕlyž‰.3ïßÄi Ó¬²@¢Ÿ¥ô³ÚúYJ?‹1qy/dç,N$9GhþOÃ…ê¦pHèÞ °ª<´«ü=´B´ Lt;ñ÷n¹ï’7gÐ+šQDò2œuÀÖ KJÈüuÓ‰8¦õY6íLz'v‘ÙQ £´f”SÃyZÍ$¨5è{p cíäQuCÑYmú6ØìAR£vìõv£ÔÄvG—á]R¸¢FÒ¥6dÉÌ2}ªR´g'öÀ¶KûèZ½öé]tW9i–ú§¢¡*‘/CuÇ1¡¼Y\SµtBô‡„iª!cûèYýãú³½{0W?Ãøˆ y¾ oÇ>£§cHƒÖ ¸õPK v€ð8META-INF/maven/PK v€ð8.META-INF/maven/org.apache.maven.plugins.shade/PK v€ð8<META-INF/maven/org.apache.maven.plugins.shade/test-artifact/PK ɵ]8{¤¶þ†CMETA-INF/maven/org.apache.maven.plugins.shade/test-artifact/pom.xml’AOÄ …ï&þ‡fï…nô`ÌÈÆ›{YMÖx'tlÙ´@€nôß‹@7´{1Þ˜÷É÷`÷5Õ­“Z=m¶¤Ùì«O(<»½©*0Ü¢Jç0qëå'~ß²œruJ-¼œî¬žLµí7\ôHF~FEÌ0uR9âzÞ"Ð9—¯epêãáùíøòútV#-°`Ô-Ù¾' i€.´˜úLÙ×£óõ<_µÅG\g¢Ý?TšìÀzïÍ#¥‰+C^ ¿fLµhPµ¨„D7ïë¢}g¥h{š”ôë /‹åÈÕóØwäl—¼ÑwB›Ôh:g$ºb*„^ðòË~PK v€ð8ÌðÂVƒJMETA-INF/maven/org.apache.maven.plugins.shade/test-artifact/pom.propertiesSvOÍK-J,IMQHªTðM,KÍãåRr½Js Í€ÈÊÀØÊÄXÁÙ58DÁÈÀÀ‚—«,µ¨83?ÏÖPÏ@7ØÏ1 ØÃ?„—+½(¿´À3Å6¿(]/± 19#U/dž^ANizf^±^qFbJ*/WbQIfZbr PiIjq‰.ŒÏËPK v€ð8 íAMETA-INF/PK u€ð8˜÷вe{¤'META-INF/MANIFEST.MFPK v€ð8íA¾org/PK v€ð8 íAàorg/apache/PK v€ð8íA org/apache/maven/PK v€ð8íA8org/apache/maven/plugins/PK v€ð8íAoorg/apache/maven/plugins/shade/PK v€ð8ÕÌ m(¤¬org/apache/maven/plugins/shade/Lib.classPK v€ð8íAÿMETA-INF/maven/PK v€ð8.íA,META-INF/maven/org.apache.maven.plugins.shade/PK v€ð8<íAxMETA-INF/maven/org.apache.maven.plugins.shade/test-artifact/PK ɵ]8{¤¶þ†C¤ÒMETA-INF/maven/org.apache.maven.plugins.shade/test-artifact/pom.xmlPK v€ð8ÌðÂVƒJ¤1META-INF/maven/org.apache.maven.plugins.shade/test-artifact/pom.propertiesPK ùmaven-shade-plugin-1.7.1/src/test/jars/test-project-1.0-SNAPSHOT.jar0000664000175000017500000000750210671114213024115 0ustar ebourgebourgPK Ó…w6 META-INF/PK Ò…w6(õÛh~META-INF/MANIFEST.MFóMÌËLK-.Ñ K-*ÎÌϳR0Ô3àår,JÎÈ,K-Bä¤V”+À$x¹œ‹RKRSt*­ “3R|ËRóx¹œJ3sJÀâYe‰yU•9¡]¯”lù¦zñæ¼\¼\PK Ò…w6META-INF/plexus/PK Ò…w6org/PK Ò…w6 org/codehaus/PK Ò…w6org/codehaus/mojo/PK Ò…w6org/codehaus/mojo/shade/PK Ò…w6MÐ-éÄMETA-INF/plexus/components.xmlíYQoÛ6~ׯàòÔ‘T´o›aÀKbÔXj‘»¢´t’ÙR¤FRQ ìÇïHI–¬8[’©Ú$±y<ß}÷}Ç“,O~ñ}ï’Å 4$ÄHb¶@fñ%’©©¨2—¥H¨aRW³hþšà‘<©H.Ñ%–Â(¶) xŽÐLä Œ‰\ìåj½8» )ãà%L×ÂÔ3[t`šTR}%)Æ¡IÂlRÊ hÈOAFUÂD†I‹bÙÖY PzË Ì´¶D󆮣º„XßN– ü^¥ §äOŒbË|¼!¯ÐÁ;i¶N^ÿæ>šÓÒRC—ÀM …A”)/8£"¯©h¡}n"È¡èL]D¦}7BçüÛSü†UUÔÁ ¤Ê¶ªði\F>Bõ¼‚ƒÖDÁ_%SÈæfGh@bºAxœVÄòiõp"cîJ!·";õt«r_Ž¡–Úw@ލðNfYD'ä÷Y´ˆNɧÅúýêãš|š]]Í–ëÅEDVWälµ<_¬«%®æd¶üìý±XžŸ@~0 ÜÊbG€ÌrI¯[Ú춬º€˜¥,Æ’DVÒ H&¯A Û ¨œi+ŸFl êŸ3ãZF{·ê <ߟzÞÄê…},Œ¯ÁL‘÷΢§N†ÎP¯Ñ¢$‡)ŠÑê’ÓkU†¥46‚Bj†'apŠMc‚Y³uµß¹t“Ð…êÇõ· 3%Ò’7ûµ©u²$¹SåJ{Œó:êmƒ˜uÝa¯ðïÇÇÓï¾1—.è£y°3Óaø»y!mYï±ñ8¨T`oª'Ûocq[E³‹O6`ðÞì £7MrW’cÙêÉ“wçfhî¬÷¯xâ°D(eÀ_ЦôÐYOÂÞf)<‚éÀ¨¿]ÿß«Ž^³Ã—Íÿêô6ßq ï/Þ)ËJu`E»ÙPcrïº ¸18D­óŠa»eçÒhô¸¦“p¿ì<ðòÉZžqªuAÍvjT “ð–y¯Ñ˜ßC$WòÈDr˜"ý¼ ÐÆ™ ±e oM@9x8}z–'cWâ@U¬å+Íð~§Ð-Ÿƒðîã~ÁK¬xLâ;Á½LÌNžBæ£SËaê‹4¶¬ü¾–¥ŠaL¬õÆY î®×\zE<ÉYH)×?Âa°%2©´{tÿ.­syq„Õ¸îFœ4Õ‘Û&b^& Ï¡‘€ˆè†ã£[ÏâHÂŃñîýÙ9à ãÓ°íáò»µw_ÁÝé÷†t›çèÜþyçn1£[<«/ãØœïF'A ê‡ÕÀþ³«[.æõú±xÛp†÷QŸô™îCžb“§}\«@K~ÝÃv&9KÒc™ßGPß üŸ¿9,±ÚÞªþÑêPK Ò…w6^v/©šš!org/codehaus/mojo/shade/App.class}RÛnÚ@=ËÍÆqBH/„ZšRëHU)ªRõµ‘hAjŸØÀ¢µ×ò¥j>+}Hª<äúQUÇ !ÑúafçÌÌ™³ãýýçîY¼Bß‚‰ƒ"᱉'ž¢aâÐBÏ h1ÞHOFo²ÝÞˆ!÷NÏCy =ñ1v'"øÌ'Šê@O¹ñ@&ñÌE 24:˜;Sê\ð8t\½ÔN¸à3áœùþ)•¹\z Ýoƒ%ÿÎ޹3ŒéÍOÓ¡<˜MmGšÁê8˜Š÷2háë¤ÈF–¶çxÁ`JéÖXjÖ6бñÇt§K­ œØè¢ÇÐøJ†Êfö§ÉRL£-hxFÂ%FS¢¾*µsA*#Ò*¸KZk;`ÃO"E¨ww/ ³¥ÌWâ¹8’j]ô…Ž´ C†ç®]ýƒè+Ú0è‡'_,ÙÙ=ŠòŒ|¾ v¦m²…,âY{U€Ê)VÁÃuóYJ”"SÍÞ WÍÿBa¼¡)Ñ[‘˜ÔZ¢Æ ]UÔÈ3ì§Õõ¿PK Ó…w6META-INF/maven/PK Ó…w6'META-INF/maven/org.codehaus.mojo.shade/PK Ó…w64META-INF/maven/org.codehaus.mojo.shade/test-project/PK ùmw6 |SçO1;META-INF/maven/org.codehaus.mojo.shade/test-project/pom.xml‘_Oà Åß÷)š¾˜ÛƒY°‰ošlnÉŒñm![j 追@§k·lúÆ=ç÷Ü VZ–ŒÚ¨¯+aâÂZµ‚°&-€(B ¤Îán»K€ŠrÕþKw]ºEàîšÃ÷Ízï.Ö$áÂX"(‹gQän¬L×’Ë¥øG»è„¤]ÐÞdqêZàZf¬zcÚ¸×Óð†ÍC¹–zÎR÷  Î,Hc@-K LA2†áàa¢-ÿ ÔºÒ2c“ã¾0žsÉ>IÎEž–Dcx*½Ù»ÏJö/»ýÓöÃv”Iš5’÷]¥WÖ€¡7=”1ÅDÆåÌxa,} µÑUÅúÆLÆðhÂIË+s>z`O.Á|2š3á(Iý®l·7ã‰9àþ"‡³ •jØ3†Ãù2álR‡uºÿ~%}PK Ó…w6é(žzBMETA-INF/maven/org.codehaus.mojo.shade/test-project/pom.properties ÊK ƒ0Ð}N1àÚµ(. ý.ú½@jFÐŒLF¡·¯»·xɲtðùÁÃnTra¿“!/ +ëCYœOäÆTjCŽžB“i“¶Ï㻽½:52­ËÝ5Ä£îÉádר¿4“Ž“u¨,‹l/{Œ’.L3ö¢þPK Ó…w6 íAMETA-INF/PK Ò…w6(õÛh~¤'META-INF/MANIFEST.MFPK Ò…w6íAÁMETA-INF/plexus/PK Ò…w6íAïorg/PK Ò…w6 íAorg/codehaus/PK Ò…w6íA<org/codehaus/mojo/PK Ò…w6íAlorg/codehaus/mojo/shade/PK Ò…w6MÐ-éĤ¢META-INF/plexus/components.xmlPK Ò…w6^v/©šš!¤ûorg/codehaus/mojo/shade/App.classPK Ó…w6íAÔMETA-INF/maven/PK Ó…w6'íAMETA-INF/maven/org.codehaus.mojo.shade/PK Ó…w64íAFMETA-INF/maven/org.codehaus.mojo.shade/test-project/PK ùmw6 |SçO1;¤˜META-INF/maven/org.codehaus.mojo.shade/test-project/pom.xmlPK Ó…w6é(žzB¤@ META-INF/maven/org.codehaus.mojo.shade/test-project/pom.propertiesPK maven-shade-plugin-1.7.1/src/test/java/0000775000175000017500000000000012236137667017242 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/test/java/org/0000775000175000017500000000000012236137667020031 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/test/java/org/apache/0000775000175000017500000000000012236137667021252 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/test/java/org/apache/maven/0000775000175000017500000000000012236137667022360 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/test/java/org/apache/maven/plugins/0000775000175000017500000000000012236137667024041 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/test/java/org/apache/maven/plugins/shade/0000775000175000017500000000000012236137667025125 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/test/java/org/apache/maven/plugins/shade/relocation/0000775000175000017500000000000012236137667027264 5ustar ebourgebourg././@LongLink0000644000000000000000000000015212236137670011647 Lustar rootrootmaven-shade-plugin-1.7.1/src/test/java/org/apache/maven/plugins/shade/relocation/SimpleRelocatorTest.javamaven-shade-plugin-1.7.1/src/test/java/org/apache/maven/plugins/shade/relocation/SimpleRelocatorTest0000664000175000017500000001411611760251671033147 0ustar ebourgebourgpackage org.apache.maven.plugins.shade.relocation; import junit.framework.TestCase; import java.util.Arrays; /** * Test for {@link SimpleRelocator}. * * @author Benjamin Bentmann * @version $Id: SimpleRelocatorTest.java 1342979 2012-05-26 22:05:45Z bimargulies $ */ public class SimpleRelocatorTest extends TestCase { public void testCanRelocatePath() { SimpleRelocator relocator; relocator = new SimpleRelocator( "org.foo", null, null, null ); assertEquals( true, relocator.canRelocatePath( "org/foo/Class" ) ); assertEquals( true, relocator.canRelocatePath( "org/foo/Class.class" ) ); assertEquals( true, relocator.canRelocatePath( "org/foo/bar/Class" ) ); assertEquals( true, relocator.canRelocatePath( "org/foo/bar/Class.class" ) ); assertEquals( false, relocator.canRelocatePath( "com/foo/bar/Class" ) ); assertEquals( false, relocator.canRelocatePath( "com/foo/bar/Class.class" ) ); assertEquals( false, relocator.canRelocatePath( "org/Foo/Class" ) ); assertEquals( false, relocator.canRelocatePath( "org/Foo/Class.class" ) ); relocator = new SimpleRelocator( "org.foo", null, null, Arrays.asList( new String[]{ "org.foo.Excluded", "org.foo.public.*", "org.foo.Public*Stuff" } ) ); assertEquals( true, relocator.canRelocatePath( "org/foo/Class" ) ); assertEquals( true, relocator.canRelocatePath( "org/foo/Class.class" ) ); assertEquals( true, relocator.canRelocatePath( "org/foo/excluded" ) ); assertEquals( false, relocator.canRelocatePath( "org/foo/Excluded" ) ); assertEquals( false, relocator.canRelocatePath( "org/foo/Excluded.class" ) ); assertEquals( false, relocator.canRelocatePath( "org/foo/public" ) ); assertEquals( false, relocator.canRelocatePath( "org/foo/public/Class" ) ); assertEquals( false, relocator.canRelocatePath( "org/foo/public/Class.class" ) ); assertEquals( true, relocator.canRelocatePath( "org/foo/publicRELOC/Class" ) ); assertEquals( true, relocator.canRelocatePath( "org/foo/PrivateStuff" ) ); assertEquals( true, relocator.canRelocatePath( "org/foo/PrivateStuff.class" ) ); assertEquals( false, relocator.canRelocatePath( "org/foo/PublicStuff" ) ); assertEquals( false, relocator.canRelocatePath( "org/foo/PublicStuff.class" ) ); assertEquals( false, relocator.canRelocatePath( "org/foo/PublicUtilStuff" ) ); assertEquals( false, relocator.canRelocatePath( "org/foo/PublicUtilStuff.class" ) ); } public void testCanRelocateClass() { SimpleRelocator relocator; relocator = new SimpleRelocator( "org.foo", null, null, null ); assertEquals( true, relocator.canRelocateClass( "org.foo.Class" ) ); assertEquals( true, relocator.canRelocateClass( "org.foo.bar.Class" ) ); assertEquals( false, relocator.canRelocateClass( "com.foo.bar.Class" ) ); assertEquals( false, relocator.canRelocateClass( "org.Foo.Class" ) ); relocator = new SimpleRelocator( "org.foo", null, null, Arrays.asList( new String[]{ "org.foo.Excluded", "org.foo.public.*", "org.foo.Public*Stuff" } ) ); assertEquals( true, relocator.canRelocateClass( "org.foo.Class" ) ); assertEquals( true, relocator.canRelocateClass( "org.foo.excluded" ) ); assertEquals( false, relocator.canRelocateClass( "org.foo.Excluded" ) ); assertEquals( false, relocator.canRelocateClass( "org.foo.public" ) ); assertEquals( false, relocator.canRelocateClass( "org.foo.public.Class" ) ); assertEquals( true, relocator.canRelocateClass( "org.foo.publicRELOC.Class" ) ); assertEquals( true, relocator.canRelocateClass( "org.foo.PrivateStuff" ) ); assertEquals( false, relocator.canRelocateClass( "org.foo.PublicStuff" ) ); assertEquals( false, relocator.canRelocateClass( "org.foo.PublicUtilStuff" ) ); } public void testCanRelocateRawString() { SimpleRelocator relocator; relocator = new SimpleRelocator( "org/foo", null, null, null, true ); assertEquals( true, relocator.canRelocatePath( "(I)org/foo/bar/Class;" ) ); relocator = new SimpleRelocator( "^META-INF/org.foo.xml$", null, null, null, true ); assertEquals( true, relocator.canRelocatePath( "META-INF/org.foo.xml" ) ); } //MSHADE-119, make sure that the easy part of this works. public void testCanRelocateAbsClassPath() { SimpleRelocator relocator = new SimpleRelocator( "org.apache.velocity", "org.apache.momentum", null, null ); assertEquals("/org/apache/momentum/mass.properties", relocator.relocatePath( "/org/apache/velocity/mass.properties" ) ); } public void testRelocatePath() { SimpleRelocator relocator; relocator = new SimpleRelocator( "org.foo", null, null, null ); assertEquals( "hidden/org/foo/bar/Class.class", relocator.relocatePath( "org/foo/bar/Class.class" ) ); relocator = new SimpleRelocator( "org.foo", "private.stuff", null, null ); assertEquals( "private/stuff/bar/Class.class", relocator.relocatePath( "org/foo/bar/Class.class" ) ); } public void testRelocateClass() { SimpleRelocator relocator; relocator = new SimpleRelocator( "org.foo", null, null, null ); assertEquals( "hidden.org.foo.bar.Class", relocator.relocateClass( "org.foo.bar.Class" ) ); relocator = new SimpleRelocator( "org.foo", "private.stuff", null, null ); assertEquals( "private.stuff.bar.Class", relocator.relocateClass( "org.foo.bar.Class" ) ); } public void testRelocateRawString() { SimpleRelocator relocator; relocator = new SimpleRelocator( "Lorg/foo", "Lhidden/org/foo", null, null, true ); assertEquals( "(I)Lhidden/org/foo/bar/Class;", relocator.relocatePath( "(I)Lorg/foo/bar/Class;" ) ); relocator = new SimpleRelocator( "^META-INF/org.foo.xml$", "META-INF/hidden.org.foo.xml", null, null, true ); assertEquals( "META-INF/hidden.org.foo.xml", relocator.relocatePath( "META-INF/org.foo.xml" ) ); } } ././@LongLink0000644000000000000000000000016312236137670011651 Lustar rootrootmaven-shade-plugin-1.7.1/src/test/java/org/apache/maven/plugins/shade/relocation/SimpleRelocatorParameterTest.javamaven-shade-plugin-1.7.1/src/test/java/org/apache/maven/plugins/shade/relocation/SimpleRelocatorPara0000664000175000017500000000337711727637632033132 0ustar ebourgebourgpackage org.apache.maven.plugins.shade.relocation; /* * 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 junit.framework.TestCase; import java.util.Collections; public class SimpleRelocatorParameterTest extends TestCase { protected void setUp() throws Exception { super.setUp(); } public void testThatNullPatternInConstructorShouldNotThrowNullPointerException() { constructThenFailOnNullPointerException( null, "" ); } public void testThatNullShadedPatternInConstructorShouldNotThrowNullPointerException() { constructThenFailOnNullPointerException( "", null ); } private void constructThenFailOnNullPointerException( String pattern, String shadedPattern ) { try { new SimpleRelocator( pattern, shadedPattern, Collections.EMPTY_LIST, Collections.EMPTY_LIST ); } catch ( NullPointerException e ) { fail( "Constructor should not throw null pointer exceptions" ); } } } maven-shade-plugin-1.7.1/src/test/java/org/apache/maven/plugins/shade/resource/0000775000175000017500000000000012236137667026754 5ustar ebourgebourg././@LongLink0000644000000000000000000000017112236137670011650 Lustar rootrootmaven-shade-plugin-1.7.1/src/test/java/org/apache/maven/plugins/shade/resource/ComponentsXmlResourceTransformerTest.javamaven-shade-plugin-1.7.1/src/test/java/org/apache/maven/plugins/shade/resource/ComponentsXmlResource0000664000175000017500000000467411727616373033230 0ustar ebourgebourgpackage org.apache.maven.plugins.shade.resource; /* * 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 junit.framework.TestCase; import org.codehaus.plexus.util.IOUtil; import org.custommonkey.xmlunit.Diff; import org.custommonkey.xmlunit.XMLAssert; import org.custommonkey.xmlunit.XMLUnit; import java.util.Collections; /** * Test for {@link ComponentsXmlResourceTransformer}. * * @author Brett Porter * @version $Id: ComponentsXmlResourceTransformerTest.java 1300050 2012-03-13 10:10:03Z olamy $ */ public class ComponentsXmlResourceTransformerTest extends TestCase { private ComponentsXmlResourceTransformer transformer; public void setUp() { this.transformer = new ComponentsXmlResourceTransformer(); } public void testConfigurationMerging() throws Exception { XMLUnit.setNormalizeWhitespace( true ); transformer.processResource( "components-1.xml", getClass().getResourceAsStream( "/components-1.xml" ), Collections.EMPTY_LIST ); transformer.processResource( "components-1.xml", getClass().getResourceAsStream( "/components-2.xml" ), Collections.EMPTY_LIST ); Diff diff = XMLUnit.compareXML( IOUtil.toString( getClass().getResourceAsStream( "/components-expected.xml" ), "UTF-8" ), IOUtil.toString( transformer.getTransformedResource(), "UTF-8" ) ); //assertEquals( IOUtil.toString( getClass().getResourceAsStream( "/components-expected.xml" ), "UTF-8" ), // IOUtil.toString( transformer.getTransformedResource(), "UTF-8" ).replaceAll("\r\n", "\n") ); XMLAssert.assertXMLIdentical( diff, true ); } }././@LongLink0000644000000000000000000000020212236137670011643 Lustar rootrootmaven-shade-plugin-1.7.1/src/test/java/org/apache/maven/plugins/shade/resource/ApacheNoticeResourceTransformerParameterTests.javamaven-shade-plugin-1.7.1/src/test/java/org/apache/maven/plugins/shade/resource/ApacheNoticeResourceT0000664000175000017500000000552711603600377033055 0ustar ebourgebourgpackage org.apache.maven.plugins.shade.resource; import java.io.ByteArrayInputStream; import java.io.IOException; import java.util.Collections; import java.util.List; import junit.framework.TestCase; /* * 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. */ /** * Tests {@link ApacheLicenseResourceTransformer} parameters. */ public class ApacheNoticeResourceTransformerParameterTests extends TestCase { private static final String NOTICE_RESOURCE = "META-INF/NOTICE"; private ApacheNoticeResourceTransformer subject; protected void setUp() throws Exception { super.setUp(); subject = new ApacheNoticeResourceTransformer(); } public void testNoParametersShouldNotThrowNullPointerWhenNoInput() throws IOException { processAndFailOnNullPointer(""); } public void testNoParametersShouldNotThrowNullPointerWhenNoLinesOfInput() throws IOException { processAndFailOnNullPointer("Some notice text"); } public void testNoParametersShouldNotThrowNullPointerWhenOneLineOfInput() throws IOException { processAndFailOnNullPointer("Some notice text\n"); } public void testNoParametersShouldNotThrowNullPointerWhenTwoLinesOfInput() throws IOException { processAndFailOnNullPointer("Some notice text\nSome notice text\n"); } public void testNoParametersShouldNotThrowNullPointerWhenLineStartsWithSlashSlash() throws IOException { processAndFailOnNullPointer("Some notice text\n//Some notice text\n"); } public void testNoParametersShouldNotThrowNullPointerWhenLineIsSlashSlash() throws IOException { processAndFailOnNullPointer("//\n"); } public void testNoParametersShouldNotThrowNullPointerWhenLineIsEmpty() throws IOException { processAndFailOnNullPointer("\n"); } private void processAndFailOnNullPointer(final String noticeText) throws IOException { try { final ByteArrayInputStream noticeInputStream = new ByteArrayInputStream(noticeText.getBytes()); final List emptyList = Collections.EMPTY_LIST; subject.processResource(NOTICE_RESOURCE, noticeInputStream, emptyList); } catch (NullPointerException e) { fail("Null pointer should not be thrown when no parameters are set."); } } } ././@LongLink0000644000000000000000000000015512236137670011652 Lustar rootrootmaven-shade-plugin-1.7.1/src/test/java/org/apache/maven/plugins/shade/resource/AppendingTransformerTest.javamaven-shade-plugin-1.7.1/src/test/java/org/apache/maven/plugins/shade/resource/AppendingTransformerT0000664000175000017500000000365611033327430033144 0ustar ebourgebourgpackage org.apache.maven.plugins.shade.resource; /* * 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.util.Locale; import junit.framework.TestCase; /** * Test for {@link AppendingTransformer}. * * @author Benjamin Bentmann * @version $Id: AppendingTransformerTest.java 673906 2008-07-04 05:03:20Z brett $ */ public class AppendingTransformerTest extends TestCase { private AppendingTransformer transformer; static { /* * NOTE: The Turkish locale has an usual case transformation for the letters "I" and "i", making it a prime * choice to test for improper case-less string comparisions. */ Locale.setDefault( new Locale( "tr" ) ); } public void setUp() { this.transformer = new AppendingTransformer(); } public void testCanTransformResource() { this.transformer.resource = "abcdefghijklmnopqrstuvwxyz"; assertTrue( this.transformer.canTransformResource( "abcdefghijklmnopqrstuvwxyz" ) ); assertTrue( this.transformer.canTransformResource( "ABCDEFGHIJKLMNOPQRSTUVWXYZ" ) ); assertFalse( this.transformer.canTransformResource( "META-INF/MANIFEST.MF" ) ); } } ././@LongLink0000644000000000000000000000017112236137670011650 Lustar rootrootmaven-shade-plugin-1.7.1/src/test/java/org/apache/maven/plugins/shade/resource/ApacheLicenseResourceTransformerTest.javamaven-shade-plugin-1.7.1/src/test/java/org/apache/maven/plugins/shade/resource/ApacheLicenseResource0000664000175000017500000000375611033327430033065 0ustar ebourgebourgpackage org.apache.maven.plugins.shade.resource; /* * 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.util.Locale; import junit.framework.TestCase; /** * Test for {@link ApacheLicenseResourceTransformer}. * * @author Benjamin Bentmann * @version $Id: ApacheLicenseResourceTransformerTest.java 673906 2008-07-04 05:03:20Z brett $ */ public class ApacheLicenseResourceTransformerTest extends TestCase { private ApacheLicenseResourceTransformer transformer; static { /* * NOTE: The Turkish locale has an usual case transformation for the letters "I" and "i", making it a prime * choice to test for improper case-less string comparisions. */ Locale.setDefault( new Locale( "tr" ) ); } public void setUp() { this.transformer = new ApacheLicenseResourceTransformer(); } public void testCanTransformResource() { assertTrue( this.transformer.canTransformResource( "META-INF/LICENSE" ) ); assertTrue( this.transformer.canTransformResource( "META-INF/LICENSE.TXT" ) ); assertTrue( this.transformer.canTransformResource( "META-INF/License.txt" ) ); assertFalse( this.transformer.canTransformResource( "META-INF/MANIFEST.MF" ) ); } } ././@LongLink0000644000000000000000000000017012236137670011647 Lustar rootrootmaven-shade-plugin-1.7.1/src/test/java/org/apache/maven/plugins/shade/resource/ApacheNoticeResourceTransformerTest.javamaven-shade-plugin-1.7.1/src/test/java/org/apache/maven/plugins/shade/resource/ApacheNoticeResourceT0000664000175000017500000000374611033327430033047 0ustar ebourgebourgpackage org.apache.maven.plugins.shade.resource; /* * 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.util.Locale; import junit.framework.TestCase; /** * Test for {@link ApacheNoticeResourceTransformer}. * * @author Benjamin Bentmann * @version $Id: ApacheNoticeResourceTransformerTest.java 673906 2008-07-04 05:03:20Z brett $ */ public class ApacheNoticeResourceTransformerTest extends TestCase { private ApacheNoticeResourceTransformer transformer; static { /* * NOTE: The Turkish locale has an usual case transformation for the letters "I" and "i", making it a prime * choice to test for improper case-less string comparisions. */ Locale.setDefault( new Locale( "tr" ) ); } public void setUp() { this.transformer = new ApacheNoticeResourceTransformer(); } public void testCanTransformResource() { assertTrue( this.transformer.canTransformResource( "META-INF/NOTICE" ) ); assertTrue( this.transformer.canTransformResource( "META-INF/NOTICE.TXT" ) ); assertTrue( this.transformer.canTransformResource( "META-INF/Notice.txt" ) ); assertFalse( this.transformer.canTransformResource( "META-INF/MANIFEST.MF" ) ); } } ././@LongLink0000644000000000000000000000016012236137670011646 Lustar rootrootmaven-shade-plugin-1.7.1/src/test/java/org/apache/maven/plugins/shade/resource/XmlAppendingTransformerTest.javamaven-shade-plugin-1.7.1/src/test/java/org/apache/maven/plugins/shade/resource/XmlAppendingTransform0000664000175000017500000000367511033327430033153 0ustar ebourgebourgpackage org.apache.maven.plugins.shade.resource; /* * 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.util.Locale; import junit.framework.TestCase; /** * Test for {@link XmlAppendingTransformer}. * * @author Benjamin Bentmann * @version $Id: XmlAppendingTransformerTest.java 673906 2008-07-04 05:03:20Z brett $ */ public class XmlAppendingTransformerTest extends TestCase { private XmlAppendingTransformer transformer; static { /* * NOTE: The Turkish locale has an usual case transformation for the letters "I" and "i", making it a prime * choice to test for improper case-less string comparisions. */ Locale.setDefault( new Locale( "tr" ) ); } public void setUp() { this.transformer = new XmlAppendingTransformer(); } public void testCanTransformResource() { this.transformer.resource = "abcdefghijklmnopqrstuvwxyz"; assertTrue( this.transformer.canTransformResource( "abcdefghijklmnopqrstuvwxyz" ) ); assertTrue( this.transformer.canTransformResource( "ABCDEFGHIJKLMNOPQRSTUVWXYZ" ) ); assertFalse( this.transformer.canTransformResource( "META-INF/MANIFEST.MF" ) ); } } maven-shade-plugin-1.7.1/src/test/java/org/apache/maven/plugins/shade/DefaultShaderTest.java0000664000175000017500000001022011427274340031325 0ustar ebourgebourgpackage org.apache.maven.plugins.shade; /* * 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.util.ArrayList; import java.util.Arrays; import java.util.LinkedHashSet; import java.util.List; import java.util.Set; import java.net.URLClassLoader; import java.net.URL; import junit.framework.TestCase; import org.apache.maven.plugins.shade.relocation.SimpleRelocator; import org.apache.maven.plugins.shade.resource.ComponentsXmlResourceTransformer; import org.codehaus.plexus.logging.Logger; import org.codehaus.plexus.logging.console.ConsoleLogger; /** * @author Jason van Zyl * @author Mauro Talevi */ public class DefaultShaderTest extends TestCase { private static final String[] EXCLUDES = new String[] { "org/codehaus/plexus/util/xml/Xpp3Dom", "org/codehaus/plexus/util/xml/pull.*" }; public void testShaderWithDefaultShadedPattern() throws Exception { shaderWithPattern( null, new File( "target/foo-default.jar" ), EXCLUDES ); } public void testShaderWithStaticInitializedClass() throws Exception { Shader s = newShader(); Set set = new LinkedHashSet(); set.add( new File( "src/test/jars/test-artifact-1.0-SNAPSHOT.jar" ) ); List relocators = new ArrayList(); relocators.add( new SimpleRelocator( "org.apache.maven.plugins.shade", null, null, null ) ); List resourceTransformers = new ArrayList(); List filters = new ArrayList(); File file = new File( "target/testShaderWithStaticInitializedClass.jar" ); s.shade( set, file, filters, relocators, resourceTransformers ); URLClassLoader cl = new URLClassLoader( new URL[]{file.toURI().toURL()} ); Class c = cl.loadClass( "hidden.org.apache.maven.plugins.shade.Lib" ); Object o = c.newInstance(); assertEquals( "foo.bar/baz", c.getDeclaredField( "CONSTANT" ).get( o ) ); } public void testShaderWithCustomShadedPattern() throws Exception { shaderWithPattern( "org/shaded/plexus/util", new File( "target/foo-custom.jar" ), EXCLUDES ); } public void testShaderWithoutExcludesShouldRemoveReferencesOfOriginalPattern() throws Exception { //FIXME: shaded jar should not include references to org/codehaus/* (empty dirs) or org.codehaus.* META-INF files. shaderWithPattern( "org/shaded/plexus/util", new File( "target/foo-custom-without-excludes.jar" ), new String[] {} ); } public void shaderWithPattern( String shadedPattern, File jar, String[] excludes ) throws Exception { DefaultShader s = newShader(); Set set = new LinkedHashSet(); set.add( new File( "src/test/jars/test-project-1.0-SNAPSHOT.jar" ) ); set.add( new File( "src/test/jars/plexus-utils-1.4.1.jar" ) ); List relocators = new ArrayList(); relocators.add( new SimpleRelocator( "org/codehaus/plexus/util", shadedPattern, null, Arrays.asList( excludes ) ) ); List resourceTransformers = new ArrayList(); resourceTransformers.add( new ComponentsXmlResourceTransformer() ); List filters = new ArrayList(); s.shade( set, jar, filters, relocators, resourceTransformers ); } private static DefaultShader newShader() { DefaultShader s = new DefaultShader(); s.enableLogging( new ConsoleLogger( Logger.LEVEL_INFO, "TEST" ) ); return s; } } maven-shade-plugin-1.7.1/src/test/java/org/apache/maven/plugins/shade/MockShader.java0000664000175000017500000000320611727671022030001 0ustar ebourgebourgpackage org.apache.maven.plugins.shade; /* * 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 org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugins.shade.filter.Filter; import org.apache.maven.plugins.shade.relocation.Relocator; import org.apache.maven.plugins.shade.resource.ResourceTransformer; import org.codehaus.plexus.component.annotations.Component; import java.io.File; import java.io.IOException; import java.util.List; import java.util.Set; /** * @author Olivier Lamy */ @Component( role = Shader.class, hint = "mock" ) public class MockShader implements Shader { public void shade( Set jars, File uberJar, List filters, List relocators, List resourceTransformers ) throws IOException, MojoExecutionException { System.out.println( "Executing MockShader#shade" ); } } maven-shade-plugin-1.7.1/src/test/java/org/apache/maven/plugins/shade/filter/0000775000175000017500000000000012236137667026412 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/test/java/org/apache/maven/plugins/shade/filter/SimpleFilterTest.java0000664000175000017500000000635511316637144032516 0ustar ebourgebourgpackage org.apache.maven.plugins.shade.filter; /* * 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.util.Collections; import junit.framework.TestCase; /** * @author Benjamin Bentmann */ public class SimpleFilterTest extends TestCase { public void testIsFiltered() { SimpleFilter filter; filter = new SimpleFilter( null, null, null ); assertFalse( filter.isFiltered( "a.properties" ) ); assertFalse( filter.isFiltered( "org/Test.class" ) ); filter = new SimpleFilter( null, Collections.EMPTY_SET, Collections.EMPTY_SET ); assertFalse( filter.isFiltered( "a.properties" ) ); assertFalse( filter.isFiltered( "org/Test.class" ) ); filter = new SimpleFilter( null, Collections.singleton( "org/Test.class" ), Collections.EMPTY_SET ); assertTrue( filter.isFiltered( "a.properties" ) ); assertFalse( filter.isFiltered( "org/Test.class" ) ); assertTrue( filter.isFiltered( "org/Test.properties" ) ); filter = new SimpleFilter( null, Collections.EMPTY_SET, Collections.singleton( "org/Test.class" ) ); assertFalse( filter.isFiltered( "a.properties" ) ); assertTrue( filter.isFiltered( "org/Test.class" ) ); assertFalse( filter.isFiltered( "org/Test.properties" ) ); filter = new SimpleFilter( null, Collections.singleton( "**/a.properties" ), Collections.EMPTY_SET ); assertFalse( filter.isFiltered( "a.properties" ) ); assertFalse( filter.isFiltered( "org/a.properties" ) ); assertFalse( filter.isFiltered( "org/maven/a.properties" ) ); assertTrue( filter.isFiltered( "org/maven/a.class" ) ); filter = new SimpleFilter( null, Collections.EMPTY_SET, Collections.singleton( "org/*" ) ); assertFalse( filter.isFiltered( "Test.class" ) ); assertTrue( filter.isFiltered( "org/Test.class" ) ); assertFalse( filter.isFiltered( "org/apache/Test.class" ) ); filter = new SimpleFilter( null, Collections.EMPTY_SET, Collections.singleton( "org/**" ) ); assertFalse( filter.isFiltered( "Test.class" ) ); assertTrue( filter.isFiltered( "org/Test.class" ) ); assertTrue( filter.isFiltered( "org/apache/Test.class" ) ); filter = new SimpleFilter( null, Collections.EMPTY_SET, Collections.singleton( "org/" ) ); assertFalse( filter.isFiltered( "Test.class" ) ); assertTrue( filter.isFiltered( "org/Test.class" ) ); assertTrue( filter.isFiltered( "org/apache/Test.class" ) ); } } maven-shade-plugin-1.7.1/src/test/java/org/apache/maven/plugins/shade/mojo/0000775000175000017500000000000012236137667026071 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/test/java/org/apache/maven/plugins/shade/mojo/ArtifactSelectorTest.java0000664000175000017500000000600511324611032033007 0ustar ebourgebourgpackage org.apache.maven.plugins.shade.mojo; /* * 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.util.Collection; import java.util.Collections; import junit.framework.TestCase; /** * @author Benjamin Bentmann */ public class ArtifactSelectorTest extends TestCase { private ArtifactSelector newSelector( Collection includes, Collection excludes, String groupPrefix ) { return new ArtifactSelector( includes, excludes, groupPrefix ); } public void testIsSelected() { ArtifactSelector selector; selector = newSelector( null, null, null ); assertTrue( selector.isSelected( new ArtifactId( "gid", "aid", "type", "cls" ) ) ); selector = newSelector( null, null, "" ); assertTrue( selector.isSelected( new ArtifactId( "gid", "aid", "type", "cls" ) ) ); selector = newSelector( null, null, "gid" ); assertTrue( selector.isSelected( new ArtifactId( "gid", "aid", "type", "cls" ) ) ); assertTrue( selector.isSelected( new ArtifactId( "gid.test", "aid", "type", "cls" ) ) ); assertFalse( selector.isSelected( new ArtifactId( "id", "aid", "type", "cls" ) ) ); selector = newSelector( Collections.EMPTY_SET, Collections.EMPTY_SET, null ); assertTrue( selector.isSelected( new ArtifactId( "gid", "aid", "type", "cls" ) ) ); selector = newSelector( Collections.singleton( "gid:aid" ), Collections.EMPTY_SET, null ); assertTrue( selector.isSelected( new ArtifactId( "gid", "aid", "type", "cls" ) ) ); assertFalse( selector.isSelected( new ArtifactId( "gid", "id", "type", "cls" ) ) ); selector = newSelector( Collections.EMPTY_SET, Collections.singleton( "gid:aid" ), null ); assertFalse( selector.isSelected( new ArtifactId( "gid", "aid", "type", "cls" ) ) ); assertTrue( selector.isSelected( new ArtifactId( "gid", "id", "type", "cls" ) ) ); selector = newSelector( Collections.singleton( "gid:*" ), Collections.singleton( "*:aid" ), null ); assertTrue( selector.isSelected( new ArtifactId( "gid", "id", "type", "cls" ) ) ); assertFalse( selector.isSelected( new ArtifactId( "gid", "aid", "type", "cls" ) ) ); assertFalse( selector.isSelected( new ArtifactId( "gid.test", "id", "type", "cls" ) ) ); } } maven-shade-plugin-1.7.1/src/test/java/org/apache/maven/plugins/shade/mojo/RelativizePathTest.java0000664000175000017500000000363011756543474032534 0ustar ebourgebourg/* * 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. */ package org.apache.maven.plugins.shade.mojo; import static org.junit.Assert.assertEquals; import java.io.File; import java.io.IOException; import org.junit.Test; public class RelativizePathTest { final static String[] PARENTS = { "rel-path-test-files/a/pom", "rel-path-test-files/a/b/pom", "rel-path-test-files/a/b/c/pom", "rel-path-test-files/a/c/d/pom" }; final static String[] CHILDREN = { "rel-path-test-files/a/b/pom", "rel-path-test-files/a/pom", "rel-path-test-files/a/b/c1/pom", "rel-path-test-files/a/c/d/pom" }; final static String[] ANSWER = { "../pom", "b/pom", "../c/pom", "pom" }; @Test public void runTests() throws IOException { for ( int x = 0; x < PARENTS.length; x++ ) { File parent = new File(PARENTS[x]).getCanonicalFile(); File child = new File(CHILDREN[x]).getCanonicalFile(); String answer = ANSWER[x]; String r = RelativizePath.convertToRelativePath( parent, child ); assertEquals(String.format("parent %s child %s", parent.toString(), child.toString()), answer, r ); } } } maven-shade-plugin-1.7.1/src/test/java/org/apache/maven/plugins/shade/mojo/ArtifactIdTest.java0000664000175000017500000002026311317102574031575 0ustar ebourgebourgpackage org.apache.maven.plugins.shade.mojo; /* * 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 junit.framework.TestCase; /** * @author Benjamin Bentmann */ public class ArtifactIdTest extends TestCase { public void testIdParsing() { ArtifactId id; id = new ArtifactId( (String) null ); assertEquals( "", id.getGroupId() ); id = new ArtifactId( "" ); assertEquals( "", id.getGroupId() ); id = new ArtifactId( "gid" ); assertEquals( "gid", id.getGroupId() ); assertEquals( "*", id.getArtifactId() ); assertEquals( "*", id.getType() ); assertEquals( "*", id.getClassifier() ); id = new ArtifactId( "gid:" ); assertEquals( "gid", id.getGroupId() ); assertEquals( "", id.getArtifactId() ); assertEquals( "*", id.getType() ); assertEquals( "*", id.getClassifier() ); id = new ArtifactId( ":aid" ); assertEquals( "", id.getGroupId() ); assertEquals( "aid", id.getArtifactId() ); assertEquals( "*", id.getType() ); assertEquals( "*", id.getClassifier() ); id = new ArtifactId( "gid:aid" ); assertEquals( "gid", id.getGroupId() ); assertEquals( "aid", id.getArtifactId() ); assertEquals( "*", id.getType() ); assertEquals( "*", id.getClassifier() ); id = new ArtifactId( "gid:aid:" ); assertEquals( "gid", id.getGroupId() ); assertEquals( "aid", id.getArtifactId() ); assertEquals( "*", id.getType() ); assertEquals( "", id.getClassifier() ); id = new ArtifactId( "gid:aid:cls" ); assertEquals( "gid", id.getGroupId() ); assertEquals( "aid", id.getArtifactId() ); assertEquals( "*", id.getType() ); assertEquals( "cls", id.getClassifier() ); id = new ArtifactId( "gid:aid:type:cls" ); assertEquals( "gid", id.getGroupId() ); assertEquals( "aid", id.getArtifactId() ); assertEquals( "type", id.getType() ); assertEquals( "cls", id.getClassifier() ); id = new ArtifactId( "gid:aid::cls" ); assertEquals( "gid", id.getGroupId() ); assertEquals( "aid", id.getArtifactId() ); assertEquals( "", id.getType() ); assertEquals( "cls", id.getClassifier() ); id = new ArtifactId( "gid:aid::" ); assertEquals( "gid", id.getGroupId() ); assertEquals( "aid", id.getArtifactId() ); assertEquals( "", id.getType() ); assertEquals( "", id.getClassifier() ); id = new ArtifactId( "*:aid:type:cls" ); assertEquals( "*", id.getGroupId() ); assertEquals( "aid", id.getArtifactId() ); assertEquals( "type", id.getType() ); assertEquals( "cls", id.getClassifier() ); id = new ArtifactId( "gid:*:type:cls" ); assertEquals( "gid", id.getGroupId() ); assertEquals( "*", id.getArtifactId() ); assertEquals( "type", id.getType() ); assertEquals( "cls", id.getClassifier() ); id = new ArtifactId( "gid:aid:*:cls" ); assertEquals( "gid", id.getGroupId() ); assertEquals( "aid", id.getArtifactId() ); assertEquals( "*", id.getType() ); assertEquals( "cls", id.getClassifier() ); id = new ArtifactId( "gid:aid:type:*" ); assertEquals( "gid", id.getGroupId() ); assertEquals( "aid", id.getArtifactId() ); assertEquals( "type", id.getType() ); assertEquals( "*", id.getClassifier() ); } public void testMatches() { assertTrue( new ArtifactId( "gid", "aid", "type", "cls" ).matches( new ArtifactId( "gid:aid:type:cls" ) ) ); assertFalse( new ArtifactId( "Gid", "aid", "type", "cls" ).matches( new ArtifactId( "gid:aid:type:cls" ) ) ); assertFalse( new ArtifactId( "gid", "Aid", "type", "cls" ).matches( new ArtifactId( "gid:aid:type:cls" ) ) ); assertFalse( new ArtifactId( "gid", "aid", "Type", "cls" ).matches( new ArtifactId( "gid:aid:type:cls" ) ) ); assertFalse( new ArtifactId( "gid", "aid", "type", "Cls" ).matches( new ArtifactId( "gid:aid:type:cls" ) ) ); assertTrue( new ArtifactId( "gid", "aid", "any", "cls" ).matches( new ArtifactId( "gid:aid:cls" ) ) ); assertTrue( new ArtifactId( "gid", "aid", "type", "cls" ).matches( new ArtifactId( "gid:aid:cls" ) ) ); assertFalse( new ArtifactId( "id", "aid", "type", "cls" ).matches( new ArtifactId( "gid:aid:cls" ) ) ); assertFalse( new ArtifactId( "gid", "id", "type", "cls" ).matches( new ArtifactId( "gid:aid:cls" ) ) ); assertFalse( new ArtifactId( "gid", "id", "type", "ls" ).matches( new ArtifactId( "gid:aid:cls" ) ) ); assertTrue( new ArtifactId( "gid", "aid", "type", "" ).matches( new ArtifactId( "gid:aid" ) ) ); assertTrue( new ArtifactId( "gid", "aid", "any", "tests" ).matches( new ArtifactId( "gid:aid" ) ) ); assertFalse( new ArtifactId( "id", "aid", "type", "" ).matches( new ArtifactId( "gid:aid" ) ) ); assertFalse( new ArtifactId( "gid", "id", "type", "" ).matches( new ArtifactId( "gid:aid" ) ) ); assertTrue( new ArtifactId( "gid", "aid", "type", "" ).matches( new ArtifactId( "gid" ) ) ); assertTrue( new ArtifactId( "gid", "id", "any", "any" ).matches( new ArtifactId( "gid" ) ) ); assertFalse( new ArtifactId( "id", "aid", "type", "" ).matches( new ArtifactId( "gid" ) ) ); assertTrue( new ArtifactId( "gid", "aid", "type", "cls" ).matches( new ArtifactId( "*:aid:type:cls" ) ) ); assertTrue( new ArtifactId( "any", "aid", "type", "cls" ).matches( new ArtifactId( "*:aid:type:cls" ) ) ); assertFalse( new ArtifactId( "any", "id", "type", "cls" ).matches( new ArtifactId( "*:aid:type:cls" ) ) ); assertTrue( new ArtifactId( "gid", "aid", "type", "cls" ).matches( new ArtifactId( "gid:*:type:cls" ) ) ); assertTrue( new ArtifactId( "gid", "any", "type", "cls" ).matches( new ArtifactId( "gid:*:type:cls" ) ) ); assertFalse( new ArtifactId( "id", "any", "type", "cls" ).matches( new ArtifactId( "gid:*:type:cls" ) ) ); assertTrue( new ArtifactId( "gid", "aid", "type", "cls" ).matches( new ArtifactId( "gid:aid:*:cls" ) ) ); assertTrue( new ArtifactId( "gid", "aid", "any", "cls" ).matches( new ArtifactId( "gid:aid:*:cls" ) ) ); assertFalse( new ArtifactId( "id", "aid", "any", "cls" ).matches( new ArtifactId( "gid:aid:*:cls" ) ) ); assertTrue( new ArtifactId( "gid", "aid", "type", "cls" ).matches( new ArtifactId( "gid:aid:type:*" ) ) ); assertTrue( new ArtifactId( "gid", "aid", "type", "any" ).matches( new ArtifactId( "gid:aid:type:*" ) ) ); assertFalse( new ArtifactId( "id", "aid", "type", "any" ).matches( new ArtifactId( "gid:aid:type:*" ) ) ); assertTrue( new ArtifactId( "gid", "aid", "type", "cls" ).matches( new ArtifactId( "gid:a*d" ) ) ); assertTrue( new ArtifactId( "gid", "ad", "type", "cls" ).matches( new ArtifactId( "gid:a*d" ) ) ); assertTrue( new ArtifactId( "gid", "a---d", "type", "cls" ).matches( new ArtifactId( "gid:a*d" ) ) ); assertTrue( new ArtifactId( "gid", "aid", "type", "cls" ).matches( new ArtifactId( "gid:a?d" ) ) ); assertTrue( new ArtifactId( "gid", "a-d", "type", "cls" ).matches( new ArtifactId( "gid:a?d" ) ) ); assertFalse( new ArtifactId( "gid", "ad", "type", "cls" ).matches( new ArtifactId( "gid:a?d" ) ) ); assertFalse( new ArtifactId( "gid", "a---d", "type", "cls" ).matches( new ArtifactId( "gid:a?d" ) ) ); } } maven-shade-plugin-1.7.1/src/test/java/org/apache/maven/plugins/shade/mojo/ShadeMojoTest.java0000664000175000017500000002054111727670673031452 0ustar ebourgebourgpackage org.apache.maven.plugins.shade.mojo; /* * 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 org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.DefaultArtifact; import org.apache.maven.artifact.factory.ArtifactFactory; import org.apache.maven.artifact.handler.ArtifactHandler; import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.artifact.resolver.ArtifactNotFoundException; import org.apache.maven.artifact.resolver.ArtifactResolutionException; import org.apache.maven.artifact.resolver.ArtifactResolver; import org.apache.maven.artifact.resolver.DefaultArtifactResolver; import org.apache.maven.artifact.versioning.VersionRange; import org.apache.maven.plugins.shade.Shader; import org.apache.maven.plugins.shade.filter.Filter; import org.apache.maven.plugins.shade.relocation.Relocator; import org.apache.maven.plugins.shade.relocation.SimpleRelocator; import org.apache.maven.plugins.shade.resource.ComponentsXmlResourceTransformer; import org.apache.maven.project.MavenProject; import org.codehaus.plexus.PlexusTestCase; import java.io.File; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.net.URL; import java.net.URLClassLoader; import java.util.ArrayList; import java.util.Arrays; import java.util.LinkedHashSet; import java.util.List; import java.util.Set; /** * @author Jason van Zyl * @author Mauro Talevi */ public class ShadeMojoTest extends PlexusTestCase { public void testShaderWithDefaultShadedPattern() throws Exception { shaderWithPattern( null, new File( "target/foo-default.jar" ) ); } public void testShaderWithCustomShadedPattern() throws Exception { shaderWithPattern( "org/shaded/plexus/util", new File( "target/foo-custom.jar" ) ); } public void testShaderWithExclusions() throws Exception { File jarFile = new File( getBasedir(), "target/unit/foo-bar.jar" ); Shader s = (Shader) lookup( Shader.ROLE, "default" ); Set set = new LinkedHashSet(); set.add( new File( getBasedir(), "src/test/jars/test-artifact-1.0-SNAPSHOT.jar" ) ); List relocators = new ArrayList(); relocators.add( new SimpleRelocator( "org.codehaus.plexus.util", "hidden", null, Arrays.asList( new String[]{ "org.codehaus.plexus.util.xml.Xpp3Dom", "org.codehaus.plexus.util.xml.pull.*" } ) ) ); List resourceTransformers = new ArrayList(); List filters = new ArrayList(); s.shade( set, jarFile, filters, relocators, resourceTransformers ); ClassLoader cl = new URLClassLoader( new URL[]{ jarFile.toURI().toURL() } ); Class c = cl.loadClass( "org.apache.maven.plugins.shade.Lib" ); Field field = c.getDeclaredField( "CLASS_REALM_PACKAGE_IMPORT" ); assertEquals( "org.codehaus.plexus.util.xml.pull", field.get( null ) ); Method method = c.getDeclaredMethod( "getClassRealmPackageImport", new Class[0] ); assertEquals( "org.codehaus.plexus.util.xml.pull", method.invoke( null, new Object[0] ) ); } /** * Tests if a Filter is installed correctly, also if createSourcesJar is set to true. * * @throws Exception */ public void testShadeWithFilter() throws Exception { ShadeMojo mojo = new ShadeMojo(); // set createSourcesJar = true Field createSourcesJar = ShadeMojo.class.getDeclaredField( "createSourcesJar" ); createSourcesJar.setAccessible( true ); createSourcesJar.set( mojo, Boolean.TRUE ); // configure artifactFactory for mojo ArtifactFactory artifactFactory = (ArtifactFactory) lookup( ArtifactFactory.ROLE ); Field artifactFactoryField = ShadeMojo.class.getDeclaredField( "artifactFactory" ); artifactFactoryField.setAccessible( true ); artifactFactoryField.set( mojo, artifactFactory ); // configure artifactResolver (mocked) for mojo ArtifactResolver mockArtifactResolver = new DefaultArtifactResolver() { public void resolve( Artifact artifact, List remoteRepos, ArtifactRepository repo ) throws ArtifactResolutionException, ArtifactNotFoundException { // artifact is resolved artifact.setResolved( true ); // set file artifact.setFile( new File( artifact.getArtifactId() + "-" + artifact.getVersion() + ( artifact.getClassifier() != null ? "-" + artifact.getClassifier() : "" ) + ".jar" ) ); } }; Field artifactResolverField = ShadeMojo.class.getDeclaredField( "artifactResolver" ); artifactResolverField.setAccessible( true ); artifactResolverField.set( mojo, mockArtifactResolver ); // create and configure MavenProject MavenProject project = new MavenProject(); ArtifactHandler artifactHandler = (ArtifactHandler) lookup( ArtifactHandler.ROLE ); Artifact artifact = new DefaultArtifact( "org.apache.myfaces.core", "myfaces-impl", VersionRange.createFromVersion( "2.0.1-SNAPSHOT" ), "compile", "jar", null, artifactHandler ); mockArtifactResolver.resolve( artifact, null, null ); // setFile and setResolved project.setArtifact( artifact ); Field projectField = ShadeMojo.class.getDeclaredField( "project" ); projectField.setAccessible( true ); projectField.set( mojo, project ); // create and configure the ArchiveFilter ArchiveFilter archiveFilter = new ArchiveFilter(); Field archiveFilterArtifact = ArchiveFilter.class.getDeclaredField( "artifact" ); archiveFilterArtifact.setAccessible( true ); archiveFilterArtifact.set( archiveFilter, "org.apache.myfaces.core:myfaces-impl" ); // add ArchiveFilter to mojo Field filtersField = ShadeMojo.class.getDeclaredField( "filters" ); filtersField.setAccessible( true ); filtersField.set( mojo, new ArchiveFilter[]{ archiveFilter } ); // invoke getFilters() Method getFilters = ShadeMojo.class.getDeclaredMethod( "getFilters", new Class[0] ); getFilters.setAccessible( true ); List filters = (List) getFilters.invoke( mojo, new Object[0] ); // assertions - there must be one filter assertEquals( 1, filters.size() ); // the filter must be able to filter the binary and the sources jar Filter filter = (Filter) filters.get( 0 ); assertTrue( filter.canFilter( new File( "myfaces-impl-2.0.1-SNAPSHOT.jar" ) ) ); // binary jar assertTrue( filter.canFilter( new File( "myfaces-impl-2.0.1-SNAPSHOT-sources.jar" ) ) ); // sources jar } public void shaderWithPattern( String shadedPattern, File jar ) throws Exception { Shader s = (Shader) lookup( Shader.ROLE ); Set set = new LinkedHashSet(); set.add( new File( getBasedir(), "src/test/jars/test-project-1.0-SNAPSHOT.jar" ) ); set.add( new File( getBasedir(), "src/test/jars/plexus-utils-1.4.1.jar" ) ); List relocators = new ArrayList(); relocators.add( new SimpleRelocator( "org/codehaus/plexus/util", shadedPattern, null, Arrays.asList( new String[]{ "org/codehaus/plexus/util/xml/Xpp3Dom", "org/codehaus/plexus/util/xml/pull.*" } ) ) ); List resourceTransformers = new ArrayList(); resourceTransformers.add( new ComponentsXmlResourceTransformer() ); List filters = new ArrayList(); s.shade( set, jar, filters, relocators, resourceTransformers ); } } maven-shade-plugin-1.7.1/src/test/resources/0000775000175000017500000000000012236137667020333 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/test/resources/components-expected.xml0000664000175000017500000000237611033327245025034 0ustar ebourgebourg org.apache.maven.wagon.Wagon http org.apache.maven.wagon.providers.http.LightweightHttpWagon per-lookup LightweightHttpWagon false User-Agent Apache Maven/${project.version} org.apache.maven.wagon.Wagon https org.apache.maven.wagon.providers.http.LightweightHttpsWagon per-lookup LIghtweightHttpsWagon false User-Agent Apache Maven/${project.version} maven-shade-plugin-1.7.1/src/test/resources/components-1.xml0000664000175000017500000000343611033327245023371 0ustar ebourgebourg org.apache.maven.wagon.Wagon http org.apache.maven.wagon.providers.http.LightweightHttpWagon per-lookup LightweightHttpWagon false org.apache.maven.wagon.Wagon https org.apache.maven.wagon.providers.http.LightweightHttpsWagon per-lookup LIghtweightHttpsWagon false User-Agent Apache Maven/${project.version} maven-shade-plugin-1.7.1/src/test/resources/components-2.xml0000664000175000017500000000343611033327245023372 0ustar ebourgebourg org.apache.maven.wagon.Wagon http org.apache.maven.wagon.providers.http.LightweightHttpWagon per-lookup LightweightHttpWagon false User-Agent Apache Maven/${project.version} org.apache.maven.wagon.Wagon https org.apache.maven.wagon.providers.http.LightweightHttpsWagon per-lookup LIghtweightHttpsWagon false maven-shade-plugin-1.7.1/src/test/projects/0000775000175000017500000000000012236137667020152 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/test/projects/test-artifact/0000775000175000017500000000000012236137667022724 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/test/projects/test-artifact/src/0000775000175000017500000000000012236137667023513 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/test/projects/test-artifact/src/main/0000775000175000017500000000000012236137667024437 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/test/projects/test-artifact/src/main/java/0000775000175000017500000000000012236137667025360 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/test/projects/test-artifact/src/main/java/org/0000775000175000017500000000000012236137667026147 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/test/projects/test-artifact/src/main/java/org/apache/0000775000175000017500000000000012236137667027370 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/test/projects/test-artifact/src/main/java/org/apache/maven/0000775000175000017500000000000012236137667030476 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/test/projects/test-artifact/src/main/java/org/apache/maven/plugins/0000775000175000017500000000000012236137667032157 5ustar ebourgebourg././@LongLink0000644000000000000000000000014712236137670011653 Lustar rootrootmaven-shade-plugin-1.7.1/src/test/projects/test-artifact/src/main/java/org/apache/maven/plugins/shade/maven-shade-plugin-1.7.1/src/test/projects/test-artifact/src/main/java/org/apache/maven/plugins/shad0000775000175000017500000000000012236137667033017 5ustar ebourgebourg././@LongLink0000644000000000000000000000015712236137670011654 Lustar rootrootmaven-shade-plugin-1.7.1/src/test/projects/test-artifact/src/main/java/org/apache/maven/plugins/shade/Lib.javamaven-shade-plugin-1.7.1/src/test/projects/test-artifact/src/main/java/org/apache/maven/plugins/shad0000664000175000017500000000151311123544663033011 0ustar ebourgebourgpackage org.apache.maven.plugins.shade; /** * Hello world! * */ public class Lib { // simulate the type of call for static loggers that currently fails private static final String name = new String( Lib.class.getName() ); public static final String CONSTANT = "foo.bar/baz"; // constant shouldn't be changed if "org.codehaus.plexus.util.xml.pull.*" is excluded from relocation. public static final String CLASS_REALM_PACKAGE_IMPORT = "org.codehaus.plexus.util.xml.pull"; public static String getClassRealmPackageImport() { // argument shouldn't be changed if "org.codehaus.plexus.util.xml.pull.*" is excluded from relocation. return importFrom( "org.codehaus.plexus.util.xml.pull" ); } private static String importFrom( String packageName ) { return packageName; } } maven-shade-plugin-1.7.1/src/test/projects/test-artifact/pom.xml0000664000175000017500000000116110761712427024232 0ustar ebourgebourg projects-parent org.apache.maven.plugins.shade 1.0-SNAPSHOT 4.0.0 org.apache.maven.plugins.shade test-artifact test-artifact 1.0-SNAPSHOT http://maven.apache.org junit junit 3.8.1 test maven-shade-plugin-1.7.1/src/test/projects/no-relocation-project/0000775000175000017500000000000012236137667024367 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/test/projects/no-relocation-project/pom.xml0000664000175000017500000000465710771725006025710 0ustar ebourgebourg 4.0.0 org.apache.maven.plugins.shade no-relocation-project no-relocation-project jar 1.0-SNAPSHOT http://maven.apache.org org.apache.maven.plugins.shade test-project ${pom.version} org.apache.maven.plugins maven-shade-plugin package shade classworlds:classworlds junit:junit jmock:jmock xml-apis:xml-apis maven-shade-plugin-1.7.1/src/test/projects/test-project/0000775000175000017500000000000012236137667022575 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/test/projects/test-project/src/0000775000175000017500000000000012236137667023364 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/test/projects/test-project/src/test/0000775000175000017500000000000012236137667024343 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/test/projects/test-project/src/test/java/0000775000175000017500000000000012236137667025264 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/test/projects/test-project/src/test/java/org/0000775000175000017500000000000012236137667026053 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/test/projects/test-project/src/test/java/org/apache/0000775000175000017500000000000012236137667027274 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/test/projects/test-project/src/test/java/org/apache/maven/0000775000175000017500000000000012236137667030402 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/test/projects/test-project/src/test/java/org/apache/maven/plugins/0000775000175000017500000000000012236137667032063 5ustar ebourgebourg././@LongLink0000644000000000000000000000014612236137670011652 Lustar rootrootmaven-shade-plugin-1.7.1/src/test/projects/test-project/src/test/java/org/apache/maven/plugins/shade/maven-shade-plugin-1.7.1/src/test/projects/test-project/src/test/java/org/apache/maven/plugins/shade0000775000175000017500000000000012236137667033070 5ustar ebourgebourg././@LongLink0000644000000000000000000000016212236137670011650 Lustar rootrootmaven-shade-plugin-1.7.1/src/test/projects/test-project/src/test/java/org/apache/maven/plugins/shade/AppTest.javamaven-shade-plugin-1.7.1/src/test/projects/test-project/src/test/java/org/apache/maven/plugins/shade0000664000175000017500000000267211123544663033071 0ustar ebourgebourg/* * 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. */ package org.apache.maven.plugins.shade; import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; /** * Unit test for simple App. */ public class AppTest extends TestCase { /** * Create the test case * * @param testName name of the test case */ public AppTest( String testName ) { super( testName ); } /** * @return the suite of tests being tested */ public static Test suite() { return new TestSuite( AppTest.class ); } /** * Rigourous Test :-) */ public void testApp() { assertTrue( true ); } } maven-shade-plugin-1.7.1/src/test/projects/test-project/src/main/0000775000175000017500000000000012236137667024310 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/test/projects/test-project/src/main/java/0000775000175000017500000000000012236137667025231 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/test/projects/test-project/src/main/java/org/0000775000175000017500000000000012236137667026020 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/test/projects/test-project/src/main/java/org/apache/0000775000175000017500000000000012236137667027241 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/test/projects/test-project/src/main/java/org/apache/maven/0000775000175000017500000000000012236137667030347 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/test/projects/test-project/src/main/java/org/apache/maven/plugins/0000775000175000017500000000000012236137667032030 5ustar ebourgebourg././@LongLink0000644000000000000000000000014612236137670011652 Lustar rootrootmaven-shade-plugin-1.7.1/src/test/projects/test-project/src/main/java/org/apache/maven/plugins/shade/maven-shade-plugin-1.7.1/src/test/projects/test-project/src/main/java/org/apache/maven/plugins/shade0000775000175000017500000000000012236137667033035 5ustar ebourgebourg././@LongLink0000644000000000000000000000015612236137670011653 Lustar rootrootmaven-shade-plugin-1.7.1/src/test/projects/test-project/src/main/java/org/apache/maven/plugins/shade/App.javamaven-shade-plugin-1.7.1/src/test/projects/test-project/src/main/java/org/apache/maven/plugins/shade0000664000175000017500000000206411123544663033031 0ustar ebourgebourg/* * 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. */ package org.apache.maven.plugins.shade; import org.codehaus.plexus.util.*; /** * Hello world! * */ public class App { public static void main( String[] args ) { System.out.println( "Hello World!" ); StringUtils.isEmpty( "foo" ); } } maven-shade-plugin-1.7.1/src/test/projects/test-project/src/main/resources/0000775000175000017500000000000012236137667026322 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/test/projects/test-project/src/main/resources/META-INF/0000775000175000017500000000000012236137667027462 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/test/projects/test-project/src/main/resources/META-INF/plexus/0000775000175000017500000000000012236137667031002 5ustar ebourgebourg././@LongLink0000644000000000000000000000015212236137670011647 Lustar rootrootmaven-shade-plugin-1.7.1/src/test/projects/test-project/src/main/resources/META-INF/plexus/components.xmlmaven-shade-plugin-1.7.1/src/test/projects/test-project/src/main/resources/META-INF/plexus/component0000664000175000017500000001670410771725006032727 0ustar ebourgebourg org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout default org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout legacy org.apache.maven.artifact.repository.layout.LegacyRepositoryLayout org.apache.maven.artifact.handler.manager.ArtifactHandlerManager org.apache.maven.artifact.handler.manager.DefaultArtifactHandlerManager org.apache.maven.artifact.handler.ArtifactHandler artifactHandlers org.apache.maven.artifact.handler.ArtifactHandler ejb org.apache.maven.artifact.handler.DefaultArtifactHandler ejb jar java true org.apache.maven.artifact.handler.ArtifactHandler jar org.apache.maven.artifact.handler.DefaultArtifactHandler jar java true org.apache.maven.artifact.handler.ArtifactHandler test-jar org.apache.maven.artifact.handler.DefaultArtifactHandler tests jar test-jar jar java true org.apache.maven.artifact.handler.ArtifactHandler maven-plugin org.apache.maven.artifact.handler.DefaultArtifactHandler maven-plugin jar java true org.apache.maven.artifact.handler.ArtifactHandler pom org.apache.maven.artifact.handler.DefaultArtifactHandler pom org.apache.maven.artifact.handler.ArtifactHandler java-source org.apache.maven.artifact.handler.DefaultArtifactHandler sources java-source jar java false org.apache.maven.artifact.handler.ArtifactHandler javadoc org.apache.maven.artifact.handler.DefaultArtifactHandler javadoc javadoc jar java true org.apache.maven.artifact.handler.ArtifactHandler war org.apache.maven.artifact.handler.DefaultArtifactHandler war true java false org.apache.maven.artifact.handler.ArtifactHandler ear org.apache.maven.artifact.handler.DefaultArtifactHandler ear true java false org.apache.maven.artifact.handler.ArtifactHandler ejb-client org.apache.maven.artifact.handler.DefaultArtifactHandler ejb-client jar ejb client java true org.apache.maven.artifact.handler.ArtifactHandler par org.apache.maven.artifact.handler.DefaultArtifactHandler par java true org.apache.maven.artifact.handler.ArtifactHandler ejb3 org.apache.maven.artifact.handler.DefaultArtifactHandler ejb3 java true org.apache.maven.artifact.factory.ArtifactFactory org.apache.maven.artifact.factory.DefaultArtifactFactory org.apache.maven.artifact.handler.manager.ArtifactHandlerManager org.apache.maven.artifact.resolver.ArtifactCollector org.apache.maven.artifact.resolver.DefaultArtifactCollector maven-shade-plugin-1.7.1/src/test/projects/test-project/pom.xml0000664000175000017500000000344410771725006024107 0ustar ebourgebourg 4.0.0 org.apache.maven.plugins.shade test-project test-project jar 1.0-SNAPSHOT http://maven.apache.org ${project.groupId} test-artifact ${project.version} org.codehaus.plexus plexus-utils 1.4.1 junit junit 3.8.1 test maven-shade-plugin-1.7.1/src/test/projects/default-config-project/0000775000175000017500000000000012236137667024505 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/test/projects/default-config-project/pom.xml0000664000175000017500000000366710771725006026026 0ustar ebourgebourg 4.0.0 org.apache.maven.plugins.shade default-config-project default-config-project jar 1.0-SNAPSHOT http://maven.apache.org org.apache.maven.plugins.shade test-project ${pom.version} org.apache.maven.plugins maven-shade-plugin package shade maven-shade-plugin-1.7.1/src/test/projects/shaded-project/0000775000175000017500000000000012236137667023046 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/test/projects/shaded-project/pom.xml0000664000175000017500000000555510771725006024365 0ustar ebourgebourg 4.0.0 org.apache.maven.plugins.shade shaded-project shaded-project jar 1.0-SNAPSHOT http://maven.apache.org org.apache.maven.plugins.shade test-project ${pom.version} org.apache.maven.plugins maven-shade-plugin package shade classworlds:classworlds junit:junit jmock:jmock xml-apis:xml-apis org.codehaus.plexus.util org.shaded.plexus.util org.codehaus.plexus.util.xml.Xpp3Dom org.codehaus.plexus.util.xml.pull.* maven-shade-plugin-1.7.1/src/test/projects/shaded-renamed-project/0000775000175000017500000000000012236137667024457 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/test/projects/shaded-renamed-project/pom.xml0000664000175000017500000000530610771725006025770 0ustar ebourgebourg 4.0.0 org.apache.maven.plugins.shade shaded-renamed-project shaded-renamed-project jar 1.0-SNAPSHOT http://maven.apache.org org.apache.maven.plugins.shade test-project ${pom.version} org.apache.maven.plugins maven-shade-plugin package shade renamed-artifact classworlds:classworlds junit:junit jmock:jmock xml-apis:xml-apis org.codehaus.plexus.util org.codehaus.plexus.util.xml.Xpp3Dom org.codehaus.plexus.util.xml.pull.* maven-shade-plugin-1.7.1/src/test/projects/pom.xml0000664000175000017500000000304110771725006021455 0ustar ebourgebourg 4.0.0 org.apache.maven.plugins.shade projects-parent projects-parent pom 1.0-SNAPSHOT http://maven.apache.org test-project no-relocation-project shaded-project shaded-renamed-project shaded-attached-project test-artifact maven-shade-plugin-1.7.1/src/test/projects/shaded-attached-project/0000775000175000017500000000000012236137667024621 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/test/projects/shaded-attached-project/pom.xml0000664000175000017500000000604710771725006026135 0ustar ebourgebourg 4.0.0 org.apache.maven.plugins.shade shaded-attached-project shaded-attached-project jar 1.0-SNAPSHOT http://maven.apache.org org.apache.maven.plugins.shade test-project ${pom.version} org.apache.maven.plugins maven-shade-plugin package shade shaded-artifact true jackofall classworlds:classworlds junit:junit jmock:jmock xml-apis:xml-apis org.codehaus.plexus.util org.codehaus.plexus.util.xml.Xpp3Dom org.codehaus.plexus.util.xml.pull.* maven-shade-plugin-1.7.1/src/main/0000775000175000017500000000000012236137667016266 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/main/java/0000775000175000017500000000000012236137667017207 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/main/java/org/0000775000175000017500000000000012236137667017776 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/main/java/org/apache/0000775000175000017500000000000012236137667021217 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/main/java/org/apache/maven/0000775000175000017500000000000012236137667022325 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/0000775000175000017500000000000012236137667024006 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/0000775000175000017500000000000012236137667025072 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/pom/0000775000175000017500000000000012236137667025665 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/pom/MavenJDOMWriter.java0000664000175000017500000026460111727616337031456 0ustar ebourgebourgpackage org.apache.maven.plugins.shade.pom; /* * 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. */ //package org.apache.maven.model.io.jdom; //---------------------------------/ //- Imported classes and packages -/ //---------------------------------/ import org.apache.maven.model.ActivationFile; import org.apache.maven.model.ActivationOS; import org.apache.maven.model.ActivationProperty; import org.apache.maven.model.Build; import org.apache.maven.model.BuildBase; import org.apache.maven.model.CiManagement; import org.apache.maven.model.ConfigurationContainer; import org.apache.maven.model.Contributor; import org.apache.maven.model.Dependency; import org.apache.maven.model.DependencyManagement; import org.apache.maven.model.DeploymentRepository; import org.apache.maven.model.Developer; import org.apache.maven.model.DistributionManagement; import org.apache.maven.model.Exclusion; import org.apache.maven.model.Extension; import org.apache.maven.model.FileSet; import org.apache.maven.model.IssueManagement; import org.apache.maven.model.License; import org.apache.maven.model.MailingList; import org.apache.maven.model.Model; import org.apache.maven.model.ModelBase; import org.apache.maven.model.Notifier; import org.apache.maven.model.Organization; import org.apache.maven.model.Parent; import org.apache.maven.model.PatternSet; import org.apache.maven.model.Plugin; import org.apache.maven.model.PluginConfiguration; import org.apache.maven.model.PluginContainer; import org.apache.maven.model.PluginExecution; import org.apache.maven.model.PluginManagement; import org.apache.maven.model.Prerequisites; import org.apache.maven.model.Profile; import org.apache.maven.model.Relocation; import org.apache.maven.model.ReportPlugin; import org.apache.maven.model.ReportSet; import org.apache.maven.model.Reporting; import org.apache.maven.model.Repository; import org.apache.maven.model.RepositoryBase; import org.apache.maven.model.RepositoryPolicy; import org.apache.maven.model.Resource; import org.apache.maven.model.Scm; import org.apache.maven.model.Site; import org.codehaus.plexus.util.xml.Xpp3Dom; import org.jdom.Content; import org.jdom.DefaultJDOMFactory; import org.jdom.Document; import org.jdom.Element; import org.jdom.Text; import org.jdom.output.Format; import org.jdom.output.XMLOutputter; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.Writer; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.ListIterator; import java.util.Map; /** * Class MavenJDOMWriter. * * @version $Revision: 1300048 $ $Date: 2012-03-13 11:09:35 +0100 (Tue, 13 Mar 2012) $ */ public class MavenJDOMWriter { // --------------------------/ // - Class/Member Variables -/ // --------------------------/ /** * Field factory */ private DefaultJDOMFactory factory; /** * Field lineSeparator */ private String lineSeparator; // ----------------/ // - Constructors -/ // ----------------/ public MavenJDOMWriter() { factory = new DefaultJDOMFactory(); lineSeparator = "\n"; } // -- org.apache.maven.model.io.jdom.MavenJDOMWriter() // -----------/ // - Methods -/ // -----------/ /** * Method findAndReplaceProperties * * @param counter * @param props * @param name * @param parent */ protected Element findAndReplaceProperties( Counter counter, Element parent, String name, Map props ) { boolean shouldExist = props != null && !props.isEmpty(); Element element = updateElement( counter, parent, name, shouldExist ); if ( shouldExist ) { Iterator it = props.keySet().iterator(); Counter innerCounter = new Counter( counter.getDepth() + 1 ); while ( it.hasNext() ) { String key = (String) it.next(); findAndReplaceSimpleElement( innerCounter, element, key, (String) props.get( key ), null ); } ArrayList lst = new ArrayList( props.keySet() ); it = element.getChildren().iterator(); while ( it.hasNext() ) { Element elem = (Element) it.next(); String key = elem.getName(); if ( !lst.contains( key ) ) { it.remove(); } } } return element; } // -- Element findAndReplaceProperties(Counter, Element, String, Map) /** * Method findAndReplaceSimpleElement * * @param counter * @param defaultValue * @param text * @param name * @param parent */ protected Element findAndReplaceSimpleElement( Counter counter, Element parent, String name, String text, String defaultValue ) { if ( defaultValue != null && text != null && defaultValue.equals( text ) ) { Element element = parent.getChild( name, parent.getNamespace() ); // if exist and is default value or if doesn't exist.. just keep the way it is.. if ( ( element != null && defaultValue.equals( element.getText() ) ) || element == null ) { return element; } } boolean shouldExist = text != null && text.trim().length() > 0; Element element = updateElement( counter, parent, name, shouldExist ); if ( shouldExist ) { element.setText( text ); } return element; } // -- Element findAndReplaceSimpleElement(Counter, Element, String, String, String) /** * Method findAndReplaceSimpleLists * * @param counter * @param childName * @param parentName * @param list * @param parent */ protected Element findAndReplaceSimpleLists( Counter counter, Element parent, java.util.Collection list, String parentName, String childName ) { boolean shouldExist = list != null && list.size() > 0; Element element = updateElement( counter, parent, parentName, shouldExist ); if ( shouldExist ) { Iterator it = list.iterator(); Iterator elIt = element.getChildren( childName, element.getNamespace() ).iterator(); if ( !elIt.hasNext() ) { elIt = null; } Counter innerCount = new Counter( counter.getDepth() + 1 ); while ( it.hasNext() ) { String value = (String) it.next(); Element el; if ( elIt != null && elIt.hasNext() ) { el = (Element) elIt.next(); if ( !elIt.hasNext() ) { elIt = null; } } else { el = factory.element( childName, element.getNamespace() ); insertAtPreferredLocation( element, el, innerCount ); } el.setText( value ); innerCount.increaseCount(); } if ( elIt != null ) { while ( elIt.hasNext() ) { elIt.next(); elIt.remove(); } } } return element; } // -- Element findAndReplaceSimpleLists(Counter, Element, java.util.Collection, String, String) /** * Method findAndReplaceXpp3DOM * * @param counter * @param dom * @param name * @param parent */ protected Element findAndReplaceXpp3DOM( Counter counter, Element parent, String name, Xpp3Dom dom ) { boolean shouldExist = dom != null && ( dom.getChildCount() > 0 || dom.getValue() != null ); Element element = updateElement( counter, parent, name, shouldExist ); if ( shouldExist ) { replaceXpp3DOM( element, dom, new Counter( counter.getDepth() + 1 ) ); } return element; } // -- Element findAndReplaceXpp3DOM(Counter, Element, String, Xpp3Dom) /** * Method insertAtPreferredLocation * * @param parent * @param counter * @param child */ protected void insertAtPreferredLocation( Element parent, Element child, Counter counter ) { int contentIndex = 0; int elementCounter = 0; Iterator it = parent.getContent().iterator(); Text lastText = null; int offset = 0; while ( it.hasNext() && elementCounter <= counter.getCurrentIndex() ) { Object next = it.next(); offset = offset + 1; if ( next instanceof Element ) { elementCounter = elementCounter + 1; contentIndex = contentIndex + offset; offset = 0; } if ( next instanceof Text && it.hasNext() ) { lastText = (Text) next; } } if ( lastText != null && lastText.getTextTrim().length() == 0 ) { lastText = (Text) lastText.clone(); } else { String starter = lineSeparator; for ( int i = 0; i < counter.getDepth(); i++ ) { starter = starter + " "; // TODO make settable? } lastText = factory.text( starter ); } if ( parent.getContentSize() == 0 ) { Text finalText = (Text) lastText.clone(); finalText.setText( finalText.getText().substring( 0, finalText.getText().length() - " ".length() ) ); parent.addContent( contentIndex, finalText ); } parent.addContent( contentIndex, child ); parent.addContent( contentIndex, lastText ); } // -- void insertAtPreferredLocation(Element, Element, Counter) /** * Method iterateContributor * * @param counter * @param childTag * @param parentTag * @param list * @param parent */ protected void iterateContributor( Counter counter, Element parent, java.util.Collection list, java.lang.String parentTag, java.lang.String childTag ) { boolean shouldExist = list != null && list.size() > 0; Element element = updateElement( counter, parent, parentTag, shouldExist ); if ( shouldExist ) { Iterator it = list.iterator(); Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator(); if ( !elIt.hasNext() ) { elIt = null; } Counter innerCount = new Counter( counter.getDepth() + 1 ); while ( it.hasNext() ) { Contributor value = (Contributor) it.next(); Element el; if ( elIt != null && elIt.hasNext() ) { el = (Element) elIt.next(); if ( !elIt.hasNext() ) { elIt = null; } } else { el = factory.element( childTag, element.getNamespace() ); insertAtPreferredLocation( element, el, innerCount ); } updateContributor( value, childTag, innerCount, el ); innerCount.increaseCount(); } if ( elIt != null ) { while ( elIt.hasNext() ) { elIt.next(); elIt.remove(); } } } } // -- void iterateContributor(Counter, Element, java.util.Collection, java.lang.String, java.lang.String) /** * Method iterateDependency * * @param counter * @param childTag * @param parentTag * @param list * @param parent */ protected void iterateDependency( Counter counter, Element parent, java.util.Collection list, java.lang.String parentTag, java.lang.String childTag ) { boolean shouldExist = list != null && list.size() > 0; Element element = updateElement( counter, parent, parentTag, shouldExist ); if ( shouldExist ) { Iterator it = list.iterator(); Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator(); if ( !elIt.hasNext() ) { elIt = null; } Counter innerCount = new Counter( counter.getDepth() + 1 ); while ( it.hasNext() ) { Dependency value = (Dependency) it.next(); Element el; if ( elIt != null && elIt.hasNext() ) { el = (Element) elIt.next(); if ( !elIt.hasNext() ) { elIt = null; } } else { el = factory.element( childTag, element.getNamespace() ); insertAtPreferredLocation( element, el, innerCount ); } updateDependency( value, childTag, innerCount, el ); innerCount.increaseCount(); } if ( elIt != null ) { while ( elIt.hasNext() ) { elIt.next(); elIt.remove(); } } } } // -- void iterateDependency(Counter, Element, java.util.Collection, java.lang.String, java.lang.String) /** * Method iterateDeveloper * * @param counter * @param childTag * @param parentTag * @param list * @param parent */ protected void iterateDeveloper( Counter counter, Element parent, java.util.Collection list, java.lang.String parentTag, java.lang.String childTag ) { boolean shouldExist = list != null && list.size() > 0; Element element = updateElement( counter, parent, parentTag, shouldExist ); if ( shouldExist ) { Iterator it = list.iterator(); Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator(); if ( !elIt.hasNext() ) { elIt = null; } Counter innerCount = new Counter( counter.getDepth() + 1 ); while ( it.hasNext() ) { Developer value = (Developer) it.next(); Element el; if ( elIt != null && elIt.hasNext() ) { el = (Element) elIt.next(); if ( !elIt.hasNext() ) { elIt = null; } } else { el = factory.element( childTag, element.getNamespace() ); insertAtPreferredLocation( element, el, innerCount ); } updateDeveloper( value, childTag, innerCount, el ); innerCount.increaseCount(); } if ( elIt != null ) { while ( elIt.hasNext() ) { elIt.next(); elIt.remove(); } } } } // -- void iterateDeveloper(Counter, Element, java.util.Collection, java.lang.String, java.lang.String) /** * Method iterateExclusion * * @param counter * @param childTag * @param parentTag * @param list * @param parent */ protected void iterateExclusion( Counter counter, Element parent, java.util.Collection list, java.lang.String parentTag, java.lang.String childTag ) { boolean shouldExist = list != null && list.size() > 0; Element element = updateElement( counter, parent, parentTag, shouldExist ); if ( shouldExist ) { Iterator it = list.iterator(); Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator(); if ( !elIt.hasNext() ) { elIt = null; } Counter innerCount = new Counter( counter.getDepth() + 1 ); while ( it.hasNext() ) { Exclusion value = (Exclusion) it.next(); Element el; if ( elIt != null && elIt.hasNext() ) { el = (Element) elIt.next(); if ( !elIt.hasNext() ) { elIt = null; } } else { el = factory.element( childTag, element.getNamespace() ); insertAtPreferredLocation( element, el, innerCount ); } updateExclusion( value, childTag, innerCount, el ); innerCount.increaseCount(); } if ( elIt != null ) { while ( elIt.hasNext() ) { elIt.next(); elIt.remove(); } } } } // -- void iterateExclusion(Counter, Element, java.util.Collection, java.lang.String, java.lang.String) /** * Method iterateExtension * * @param counter * @param childTag * @param parentTag * @param list * @param parent */ protected void iterateExtension( Counter counter, Element parent, java.util.Collection list, java.lang.String parentTag, java.lang.String childTag ) { boolean shouldExist = list != null && list.size() > 0; Element element = updateElement( counter, parent, parentTag, shouldExist ); if ( shouldExist ) { Iterator it = list.iterator(); Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator(); if ( !elIt.hasNext() ) { elIt = null; } Counter innerCount = new Counter( counter.getDepth() + 1 ); while ( it.hasNext() ) { Extension value = (Extension) it.next(); Element el; if ( elIt != null && elIt.hasNext() ) { el = (Element) elIt.next(); if ( !elIt.hasNext() ) { elIt = null; } } else { el = factory.element( childTag, element.getNamespace() ); insertAtPreferredLocation( element, el, innerCount ); } updateExtension( value, childTag, innerCount, el ); innerCount.increaseCount(); } if ( elIt != null ) { while ( elIt.hasNext() ) { elIt.next(); elIt.remove(); } } } } // -- void iterateExtension(Counter, Element, java.util.Collection, java.lang.String, java.lang.String) /** * Method iterateLicense * * @param counter * @param childTag * @param parentTag * @param list * @param parent */ protected void iterateLicense( Counter counter, Element parent, java.util.Collection list, java.lang.String parentTag, java.lang.String childTag ) { boolean shouldExist = list != null && list.size() > 0; Element element = updateElement( counter, parent, parentTag, shouldExist ); if ( shouldExist ) { Iterator it = list.iterator(); Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator(); if ( !elIt.hasNext() ) { elIt = null; } Counter innerCount = new Counter( counter.getDepth() + 1 ); while ( it.hasNext() ) { License value = (License) it.next(); Element el; if ( elIt != null && elIt.hasNext() ) { el = (Element) elIt.next(); if ( !elIt.hasNext() ) { elIt = null; } } else { el = factory.element( childTag, element.getNamespace() ); insertAtPreferredLocation( element, el, innerCount ); } updateLicense( value, childTag, innerCount, el ); innerCount.increaseCount(); } if ( elIt != null ) { while ( elIt.hasNext() ) { elIt.next(); elIt.remove(); } } } } // -- void iterateLicense(Counter, Element, java.util.Collection, java.lang.String, java.lang.String) /** * Method iterateMailingList * * @param counter * @param childTag * @param parentTag * @param list * @param parent */ protected void iterateMailingList( Counter counter, Element parent, java.util.Collection list, java.lang.String parentTag, java.lang.String childTag ) { boolean shouldExist = list != null && list.size() > 0; Element element = updateElement( counter, parent, parentTag, shouldExist ); if ( shouldExist ) { Iterator it = list.iterator(); Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator(); if ( !elIt.hasNext() ) { elIt = null; } Counter innerCount = new Counter( counter.getDepth() + 1 ); while ( it.hasNext() ) { MailingList value = (MailingList) it.next(); Element el; if ( elIt != null && elIt.hasNext() ) { el = (Element) elIt.next(); if ( !elIt.hasNext() ) { elIt = null; } } else { el = factory.element( childTag, element.getNamespace() ); insertAtPreferredLocation( element, el, innerCount ); } updateMailingList( value, childTag, innerCount, el ); innerCount.increaseCount(); } if ( elIt != null ) { while ( elIt.hasNext() ) { elIt.next(); elIt.remove(); } } } } // -- void iterateMailingList(Counter, Element, java.util.Collection, java.lang.String, java.lang.String) /** * Method iterateNotifier * * @param counter * @param childTag * @param parentTag * @param list * @param parent */ protected void iterateNotifier( Counter counter, Element parent, java.util.Collection list, java.lang.String parentTag, java.lang.String childTag ) { boolean shouldExist = list != null && list.size() > 0; Element element = updateElement( counter, parent, parentTag, shouldExist ); if ( shouldExist ) { Iterator it = list.iterator(); Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator(); if ( !elIt.hasNext() ) { elIt = null; } Counter innerCount = new Counter( counter.getDepth() + 1 ); while ( it.hasNext() ) { Notifier value = (Notifier) it.next(); Element el; if ( elIt != null && elIt.hasNext() ) { el = (Element) elIt.next(); if ( !elIt.hasNext() ) { elIt = null; } } else { el = factory.element( childTag, element.getNamespace() ); insertAtPreferredLocation( element, el, innerCount ); } updateNotifier( value, childTag, innerCount, el ); innerCount.increaseCount(); } if ( elIt != null ) { while ( elIt.hasNext() ) { elIt.next(); elIt.remove(); } } } } // -- void iterateNotifier(Counter, Element, java.util.Collection, java.lang.String, java.lang.String) /** * Method iteratePlugin * * @param counter * @param childTag * @param parentTag * @param list * @param parent */ protected void iteratePlugin( Counter counter, Element parent, java.util.Collection list, java.lang.String parentTag, java.lang.String childTag ) { boolean shouldExist = list != null && list.size() > 0; Element element = updateElement( counter, parent, parentTag, shouldExist ); if ( shouldExist ) { Iterator it = list.iterator(); Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator(); if ( !elIt.hasNext() ) { elIt = null; } Counter innerCount = new Counter( counter.getDepth() + 1 ); while ( it.hasNext() ) { Plugin value = (Plugin) it.next(); Element el; if ( elIt != null && elIt.hasNext() ) { el = (Element) elIt.next(); if ( !elIt.hasNext() ) { elIt = null; } } else { el = factory.element( childTag, element.getNamespace() ); insertAtPreferredLocation( element, el, innerCount ); } updatePlugin( value, childTag, innerCount, el ); innerCount.increaseCount(); } if ( elIt != null ) { while ( elIt.hasNext() ) { elIt.next(); elIt.remove(); } } } } // -- void iteratePlugin(Counter, Element, java.util.Collection, java.lang.String, java.lang.String) /** * Method iteratePluginExecution * * @param counter * @param childTag * @param parentTag * @param list * @param parent */ protected void iteratePluginExecution( Counter counter, Element parent, java.util.Collection list, java.lang.String parentTag, java.lang.String childTag ) { boolean shouldExist = list != null && list.size() > 0; Element element = updateElement( counter, parent, parentTag, shouldExist ); if ( shouldExist ) { Iterator it = list.iterator(); Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator(); if ( !elIt.hasNext() ) { elIt = null; } Counter innerCount = new Counter( counter.getDepth() + 1 ); while ( it.hasNext() ) { PluginExecution value = (PluginExecution) it.next(); Element el; if ( elIt != null && elIt.hasNext() ) { el = (Element) elIt.next(); if ( !elIt.hasNext() ) { elIt = null; } } else { el = factory.element( childTag, element.getNamespace() ); insertAtPreferredLocation( element, el, innerCount ); } updatePluginExecution( value, childTag, innerCount, el ); innerCount.increaseCount(); } if ( elIt != null ) { while ( elIt.hasNext() ) { elIt.next(); elIt.remove(); } } } } // -- void iteratePluginExecution(Counter, Element, java.util.Collection, java.lang.String, java.lang.String) /** * Method iterateProfile * * @param counter * @param childTag * @param parentTag * @param list * @param parent */ protected void iterateProfile( Counter counter, Element parent, java.util.Collection list, java.lang.String parentTag, java.lang.String childTag ) { boolean shouldExist = list != null && list.size() > 0; Element element = updateElement( counter, parent, parentTag, shouldExist ); if ( shouldExist ) { Iterator it = list.iterator(); Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator(); if ( !elIt.hasNext() ) { elIt = null; } Counter innerCount = new Counter( counter.getDepth() + 1 ); while ( it.hasNext() ) { Profile value = (Profile) it.next(); Element el; if ( elIt != null && elIt.hasNext() ) { el = (Element) elIt.next(); if ( !elIt.hasNext() ) { elIt = null; } } else { el = factory.element( childTag, element.getNamespace() ); insertAtPreferredLocation( element, el, innerCount ); } updateProfile( value, childTag, innerCount, el ); innerCount.increaseCount(); } if ( elIt != null ) { while ( elIt.hasNext() ) { elIt.next(); elIt.remove(); } } } } // -- void iterateProfile(Counter, Element, java.util.Collection, java.lang.String, java.lang.String) /** * Method iterateReportPlugin * * @param counter * @param childTag * @param parentTag * @param list * @param parent */ protected void iterateReportPlugin( Counter counter, Element parent, java.util.Collection list, java.lang.String parentTag, java.lang.String childTag ) { boolean shouldExist = list != null && list.size() > 0; Element element = updateElement( counter, parent, parentTag, shouldExist ); if ( shouldExist ) { Iterator it = list.iterator(); Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator(); if ( !elIt.hasNext() ) { elIt = null; } Counter innerCount = new Counter( counter.getDepth() + 1 ); while ( it.hasNext() ) { ReportPlugin value = (ReportPlugin) it.next(); Element el; if ( elIt != null && elIt.hasNext() ) { el = (Element) elIt.next(); if ( !elIt.hasNext() ) { elIt = null; } } else { el = factory.element( childTag, element.getNamespace() ); insertAtPreferredLocation( element, el, innerCount ); } updateReportPlugin( value, childTag, innerCount, el ); innerCount.increaseCount(); } if ( elIt != null ) { while ( elIt.hasNext() ) { elIt.next(); elIt.remove(); } } } } // -- void iterateReportPlugin(Counter, Element, java.util.Collection, java.lang.String, java.lang.String) /** * Method iterateReportSet * * @param counter * @param childTag * @param parentTag * @param list * @param parent */ protected void iterateReportSet( Counter counter, Element parent, java.util.Collection list, java.lang.String parentTag, java.lang.String childTag ) { boolean shouldExist = list != null && list.size() > 0; Element element = updateElement( counter, parent, parentTag, shouldExist ); if ( shouldExist ) { Iterator it = list.iterator(); Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator(); if ( !elIt.hasNext() ) { elIt = null; } Counter innerCount = new Counter( counter.getDepth() + 1 ); while ( it.hasNext() ) { ReportSet value = (ReportSet) it.next(); Element el; if ( elIt != null && elIt.hasNext() ) { el = (Element) elIt.next(); if ( !elIt.hasNext() ) { elIt = null; } } else { el = factory.element( childTag, element.getNamespace() ); insertAtPreferredLocation( element, el, innerCount ); } updateReportSet( value, childTag, innerCount, el ); innerCount.increaseCount(); } if ( elIt != null ) { while ( elIt.hasNext() ) { elIt.next(); elIt.remove(); } } } } // -- void iterateReportSet(Counter, Element, java.util.Collection, java.lang.String, java.lang.String) /** * Method iterateRepository * * @param counter * @param childTag * @param parentTag * @param list * @param parent */ protected void iterateRepository( Counter counter, Element parent, java.util.Collection list, java.lang.String parentTag, java.lang.String childTag ) { boolean shouldExist = list != null && list.size() > 0; Element element = updateElement( counter, parent, parentTag, shouldExist ); if ( shouldExist ) { Iterator it = list.iterator(); Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator(); if ( !elIt.hasNext() ) { elIt = null; } Counter innerCount = new Counter( counter.getDepth() + 1 ); while ( it.hasNext() ) { Repository value = (Repository) it.next(); Element el; if ( elIt != null && elIt.hasNext() ) { el = (Element) elIt.next(); if ( !elIt.hasNext() ) { elIt = null; } } else { el = factory.element( childTag, element.getNamespace() ); insertAtPreferredLocation( element, el, innerCount ); } updateRepository( value, childTag, innerCount, el ); innerCount.increaseCount(); } if ( elIt != null ) { while ( elIt.hasNext() ) { elIt.next(); elIt.remove(); } } } } // -- void iterateRepository(Counter, Element, java.util.Collection, java.lang.String, java.lang.String) /** * Method iterateResource * * @param counter * @param childTag * @param parentTag * @param list * @param parent */ protected void iterateResource( Counter counter, Element parent, java.util.Collection list, java.lang.String parentTag, java.lang.String childTag ) { boolean shouldExist = list != null && list.size() > 0; Element element = updateElement( counter, parent, parentTag, shouldExist ); if ( shouldExist ) { Iterator it = list.iterator(); Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator(); if ( !elIt.hasNext() ) { elIt = null; } Counter innerCount = new Counter( counter.getDepth() + 1 ); while ( it.hasNext() ) { Resource value = (Resource) it.next(); Element el; if ( elIt != null && elIt.hasNext() ) { el = (Element) elIt.next(); if ( !elIt.hasNext() ) { elIt = null; } } else { el = factory.element( childTag, element.getNamespace() ); insertAtPreferredLocation( element, el, innerCount ); } updateResource( value, childTag, innerCount, el ); innerCount.increaseCount(); } if ( elIt != null ) { while ( elIt.hasNext() ) { elIt.next(); elIt.remove(); } } } } // -- void iterateResource(Counter, Element, java.util.Collection, java.lang.String, java.lang.String) /** * Method replaceXpp3DOM * * @param parent * @param counter * @param parentDom */ protected void replaceXpp3DOM( Element parent, Xpp3Dom parentDom, Counter counter ) { if ( parentDom.getChildCount() > 0 ) { Xpp3Dom[] childs = parentDom.getChildren(); Collection domChilds = new ArrayList(); for ( int i = 0; i < childs.length; i++ ) { domChilds.add( childs[i] ); } // int domIndex = 0; ListIterator it = parent.getChildren().listIterator(); while ( it.hasNext() ) { Element elem = (Element) it.next(); Iterator it2 = domChilds.iterator(); Xpp3Dom corrDom = null; while ( it2.hasNext() ) { Xpp3Dom dm = (Xpp3Dom) it2.next(); if ( dm.getName().equals( elem.getName() ) ) { corrDom = dm; break; } } if ( corrDom != null ) { domChilds.remove( corrDom ); replaceXpp3DOM( elem, corrDom, new Counter( counter.getDepth() + 1 ) ); counter.increaseCount(); } else { parent.removeContent( elem ); } } Iterator it2 = domChilds.iterator(); while ( it2.hasNext() ) { Xpp3Dom dm = (Xpp3Dom) it2.next(); Element elem = factory.element( dm.getName(), parent.getNamespace() ); insertAtPreferredLocation( parent, elem, counter ); counter.increaseCount(); replaceXpp3DOM( elem, dm, new Counter( counter.getDepth() + 1 ) ); } } else if ( parentDom.getValue() != null ) { parent.setText( parentDom.getValue() ); } } // -- void replaceXpp3DOM(Element, Xpp3Dom, Counter) /** * Method updateActivation * * @param value * @param element * @param counter * @param xmlTag */ /* * protected void updateActivation(Activation value, String xmlTag, Counter counter, Element element) { boolean * shouldExist = value != null; Element root = updateElement(counter, element, xmlTag, shouldExist); if * (shouldExist) { Counter innerCount = new Counter(counter.getDepth() + 1); findAndReplaceSimpleElement(innerCount, * root, "activeByDefault", !value.isActiveByDefault() ? null : String.valueOf( value.isActiveByDefault() ), * "false"); findAndReplaceSimpleElement(innerCount, root, "jdk", value.getJdk(), null); updateActivationOS( * value.getOs(), "os", innerCount, root); updateActivationProperty( value.getProperty(), "property", innerCount, * root); updateActivationFile( value.getFile(), "file", innerCount, root); updateActivationCustom( * value.getCustom(), "custom", innerCount, root); } } //-- void updateActivation(Activation, String, Counter, * Element) */ /** * Method updateActivationCustom * * @param value * @param element * @param counter * @param xmlTag */ /* * protected void updateActivationCustom(ActivationCustom value, String xmlTag, Counter counter, Element element) { * boolean shouldExist = value != null; Element root = updateElement(counter, element, xmlTag, shouldExist); if * (shouldExist) { Counter innerCount = new Counter(counter.getDepth() + 1); findAndReplaceXpp3DOM(innerCount, root, * "configuration", (Xpp3Dom)value.getConfiguration()); findAndReplaceSimpleElement(innerCount, root, "type", * value.getType(), null); } } //-- void updateActivationCustom(ActivationCustom, String, Counter, Element) */ /** * Method updateActivationFile * * @param value * @param element * @param counter * @param xmlTag */ protected void updateActivationFile( ActivationFile value, String xmlTag, Counter counter, Element element ) { boolean shouldExist = value != null; Element root = updateElement( counter, element, xmlTag, shouldExist ); if ( shouldExist ) { Counter innerCount = new Counter( counter.getDepth() + 1 ); findAndReplaceSimpleElement( innerCount, root, "missing", value.getMissing(), null ); findAndReplaceSimpleElement( innerCount, root, "exists", value.getExists(), null ); } } // -- void updateActivationFile(ActivationFile, String, Counter, Element) /** * Method updateActivationOS * * @param value * @param element * @param counter * @param xmlTag */ protected void updateActivationOS( ActivationOS value, String xmlTag, Counter counter, Element element ) { boolean shouldExist = value != null; Element root = updateElement( counter, element, xmlTag, shouldExist ); if ( shouldExist ) { Counter innerCount = new Counter( counter.getDepth() + 1 ); findAndReplaceSimpleElement( innerCount, root, "name", value.getName(), null ); findAndReplaceSimpleElement( innerCount, root, "family", value.getFamily(), null ); findAndReplaceSimpleElement( innerCount, root, "arch", value.getArch(), null ); findAndReplaceSimpleElement( innerCount, root, "version", value.getVersion(), null ); } } // -- void updateActivationOS(ActivationOS, String, Counter, Element) /** * Method updateActivationProperty * * @param value * @param element * @param counter * @param xmlTag */ protected void updateActivationProperty( ActivationProperty value, String xmlTag, Counter counter, Element element ) { boolean shouldExist = value != null; Element root = updateElement( counter, element, xmlTag, shouldExist ); if ( shouldExist ) { Counter innerCount = new Counter( counter.getDepth() + 1 ); findAndReplaceSimpleElement( innerCount, root, "name", value.getName(), null ); findAndReplaceSimpleElement( innerCount, root, "value", value.getValue(), null ); } } // -- void updateActivationProperty(ActivationProperty, String, Counter, Element) /** * Method updateBuild * * @param value * @param element * @param counter * @param xmlTag */ protected void updateBuild( Build value, String xmlTag, Counter counter, Element element ) { boolean shouldExist = value != null; Element root = updateElement( counter, element, xmlTag, shouldExist ); if ( shouldExist ) { Counter innerCount = new Counter( counter.getDepth() + 1 ); findAndReplaceSimpleElement( innerCount, root, "sourceDirectory", value.getSourceDirectory(), null ); findAndReplaceSimpleElement( innerCount, root, "scriptSourceDirectory", value.getScriptSourceDirectory(), null ); findAndReplaceSimpleElement( innerCount, root, "testSourceDirectory", value.getTestSourceDirectory(), null ); findAndReplaceSimpleElement( innerCount, root, "outputDirectory", value.getOutputDirectory(), null ); findAndReplaceSimpleElement( innerCount, root, "testOutputDirectory", value.getTestOutputDirectory(), null ); iterateExtension( innerCount, root, value.getExtensions(), "extensions", "extension" ); findAndReplaceSimpleElement( innerCount, root, "defaultGoal", value.getDefaultGoal(), null ); iterateResource( innerCount, root, value.getResources(), "resources", "resource" ); iterateResource( innerCount, root, value.getTestResources(), "testResources", "testResource" ); findAndReplaceSimpleElement( innerCount, root, "directory", value.getDirectory(), null ); findAndReplaceSimpleElement( innerCount, root, "finalName", value.getFinalName(), null ); findAndReplaceSimpleLists( innerCount, root, value.getFilters(), "filters", "filter" ); updatePluginManagement( value.getPluginManagement(), "pluginManagement", innerCount, root ); iteratePlugin( innerCount, root, value.getPlugins(), "plugins", "plugin" ); } } // -- void updateBuild(Build, String, Counter, Element) /** * Method updateBuildBase * * @param value * @param element * @param counter * @param xmlTag */ protected void updateBuildBase( BuildBase value, String xmlTag, Counter counter, Element element ) { boolean shouldExist = value != null; Element root = updateElement( counter, element, xmlTag, shouldExist ); if ( shouldExist ) { Counter innerCount = new Counter( counter.getDepth() + 1 ); findAndReplaceSimpleElement( innerCount, root, "defaultGoal", value.getDefaultGoal(), null ); iterateResource( innerCount, root, value.getResources(), "resources", "resource" ); iterateResource( innerCount, root, value.getTestResources(), "testResources", "testResource" ); findAndReplaceSimpleElement( innerCount, root, "directory", value.getDirectory(), null ); findAndReplaceSimpleElement( innerCount, root, "finalName", value.getFinalName(), null ); findAndReplaceSimpleLists( innerCount, root, value.getFilters(), "filters", "filter" ); updatePluginManagement( value.getPluginManagement(), "pluginManagement", innerCount, root ); iteratePlugin( innerCount, root, value.getPlugins(), "plugins", "plugin" ); } } // -- void updateBuildBase(BuildBase, String, Counter, Element) /** * Method updateCiManagement * * @param value * @param element * @param counter * @param xmlTag */ protected void updateCiManagement( CiManagement value, String xmlTag, Counter counter, Element element ) { boolean shouldExist = value != null; Element root = updateElement( counter, element, xmlTag, shouldExist ); if ( shouldExist ) { Counter innerCount = new Counter( counter.getDepth() + 1 ); findAndReplaceSimpleElement( innerCount, root, "system", value.getSystem(), null ); findAndReplaceSimpleElement( innerCount, root, "url", value.getUrl(), null ); iterateNotifier( innerCount, root, value.getNotifiers(), "notifiers", "notifier" ); } } // -- void updateCiManagement(CiManagement, String, Counter, Element) /** * Method updateConfigurationContainer * * @param value * @param element * @param counter * @param xmlTag */ protected void updateConfigurationContainer( ConfigurationContainer value, String xmlTag, Counter counter, Element element ) { boolean shouldExist = value != null; Element root = updateElement( counter, element, xmlTag, shouldExist ); if ( shouldExist ) { Counter innerCount = new Counter( counter.getDepth() + 1 ); findAndReplaceSimpleElement( innerCount, root, "inherited", value.getInherited(), null ); findAndReplaceXpp3DOM( innerCount, root, "configuration", (Xpp3Dom) value.getConfiguration() ); } } // -- void updateConfigurationContainer(ConfigurationContainer, String, Counter, Element) /** * Method updateContributor * * @param value * @param element * @param counter * @param xmlTag */ protected void updateContributor( Contributor value, String xmlTag, Counter counter, Element element ) { Element root = element; Counter innerCount = new Counter( counter.getDepth() + 1 ); findAndReplaceSimpleElement( innerCount, root, "name", value.getName(), null ); findAndReplaceSimpleElement( innerCount, root, "email", value.getEmail(), null ); findAndReplaceSimpleElement( innerCount, root, "url", value.getUrl(), null ); findAndReplaceSimpleElement( innerCount, root, "organization", value.getOrganization(), null ); findAndReplaceSimpleElement( innerCount, root, "organizationUrl", value.getOrganizationUrl(), null ); findAndReplaceSimpleLists( innerCount, root, value.getRoles(), "roles", "role" ); findAndReplaceSimpleElement( innerCount, root, "timezone", value.getTimezone(), null ); findAndReplaceProperties( innerCount, root, "properties", value.getProperties() ); } // -- void updateContributor(Contributor, String, Counter, Element) /** * Method updateDependency * * @param value * @param element * @param counter * @param xmlTag */ protected void updateDependency( Dependency value, String xmlTag, Counter counter, Element element ) { Element root = element; Counter innerCount = new Counter( counter.getDepth() + 1 ); findAndReplaceSimpleElement( innerCount, root, "groupId", value.getGroupId(), null ); findAndReplaceSimpleElement( innerCount, root, "artifactId", value.getArtifactId(), null ); findAndReplaceSimpleElement( innerCount, root, "version", value.getVersion(), null ); findAndReplaceSimpleElement( innerCount, root, "type", value.getType(), "jar" ); findAndReplaceSimpleElement( innerCount, root, "classifier", value.getClassifier(), null ); findAndReplaceSimpleElement( innerCount, root, "scope", value.getScope(), null ); findAndReplaceSimpleElement( innerCount, root, "systemPath", value.getSystemPath(), null ); iterateExclusion( innerCount, root, value.getExclusions(), "exclusions", "exclusion" ); findAndReplaceSimpleElement( innerCount, root, "optional", !value.isOptional() ? null : String.valueOf( value.isOptional() ), "false" ); } // -- void updateDependency(Dependency, String, Counter, Element) /** * Method updateDependencyManagement * * @param value * @param element * @param counter * @param xmlTag */ protected void updateDependencyManagement( DependencyManagement value, String xmlTag, Counter counter, Element element ) { boolean shouldExist = value != null; Element root = updateElement( counter, element, xmlTag, shouldExist ); if ( shouldExist ) { Counter innerCount = new Counter( counter.getDepth() + 1 ); iterateDependency( innerCount, root, value.getDependencies(), "dependencies", "dependency" ); } } // -- void updateDependencyManagement(DependencyManagement, String, Counter, Element) /** * Method updateDeploymentRepository * * @param value * @param element * @param counter * @param xmlTag */ protected void updateDeploymentRepository( DeploymentRepository value, String xmlTag, Counter counter, Element element ) { boolean shouldExist = value != null; Element root = updateElement( counter, element, xmlTag, shouldExist ); if ( shouldExist ) { Counter innerCount = new Counter( counter.getDepth() + 1 ); findAndReplaceSimpleElement( innerCount, root, "uniqueVersion", value.isUniqueVersion() ? null : String.valueOf( value.isUniqueVersion() ), "true" ); findAndReplaceSimpleElement( innerCount, root, "id", value.getId(), null ); findAndReplaceSimpleElement( innerCount, root, "name", value.getName(), null ); findAndReplaceSimpleElement( innerCount, root, "url", value.getUrl(), null ); findAndReplaceSimpleElement( innerCount, root, "layout", value.getLayout(), "default" ); } } // -- void updateDeploymentRepository(DeploymentRepository, String, Counter, Element) /** * Method updateDeveloper * * @param value * @param element * @param counter * @param xmlTag */ protected void updateDeveloper( Developer value, String xmlTag, Counter counter, Element element ) { Element root = element; Counter innerCount = new Counter( counter.getDepth() + 1 ); findAndReplaceSimpleElement( innerCount, root, "id", value.getId(), null ); findAndReplaceSimpleElement( innerCount, root, "name", value.getName(), null ); findAndReplaceSimpleElement( innerCount, root, "email", value.getEmail(), null ); findAndReplaceSimpleElement( innerCount, root, "url", value.getUrl(), null ); findAndReplaceSimpleElement( innerCount, root, "organization", value.getOrganization(), null ); findAndReplaceSimpleElement( innerCount, root, "organizationUrl", value.getOrganizationUrl(), null ); findAndReplaceSimpleLists( innerCount, root, value.getRoles(), "roles", "role" ); findAndReplaceSimpleElement( innerCount, root, "timezone", value.getTimezone(), null ); findAndReplaceProperties( innerCount, root, "properties", value.getProperties() ); } // -- void updateDeveloper(Developer, String, Counter, Element) /** * Method updateDistributionManagement * * @param value * @param element * @param counter * @param xmlTag */ protected void updateDistributionManagement( DistributionManagement value, String xmlTag, Counter counter, Element element ) { boolean shouldExist = value != null; Element root = updateElement( counter, element, xmlTag, shouldExist ); if ( shouldExist ) { Counter innerCount = new Counter( counter.getDepth() + 1 ); updateDeploymentRepository( value.getRepository(), "repository", innerCount, root ); updateDeploymentRepository( value.getSnapshotRepository(), "snapshotRepository", innerCount, root ); updateSite( value.getSite(), "site", innerCount, root ); findAndReplaceSimpleElement( innerCount, root, "downloadUrl", value.getDownloadUrl(), null ); updateRelocation( value.getRelocation(), "relocation", innerCount, root ); findAndReplaceSimpleElement( innerCount, root, "status", value.getStatus(), null ); } } // -- void updateDistributionManagement(DistributionManagement, String, Counter, Element) /** * Method updateElement * * @param counter * @param shouldExist * @param name * @param parent */ protected Element updateElement( Counter counter, Element parent, String name, boolean shouldExist ) { Element element = parent.getChild( name, parent.getNamespace() ); if ( element != null && shouldExist ) { counter.increaseCount(); } if ( element == null && shouldExist ) { element = factory.element( name, parent.getNamespace() ); insertAtPreferredLocation( parent, element, counter ); counter.increaseCount(); } if ( !shouldExist && element != null ) { int index = parent.indexOf( element ); if ( index > 0 ) { Content previous = parent.getContent( index - 1 ); if ( previous instanceof Text ) { Text txt = (Text) previous; if ( txt.getTextTrim().length() == 0 ) { parent.removeContent( txt ); } } } parent.removeContent( element ); } return element; } // -- Element updateElement(Counter, Element, String, boolean) /** * Method updateExclusion * * @param value * @param element * @param counter * @param xmlTag */ protected void updateExclusion( Exclusion value, String xmlTag, Counter counter, Element element ) { Element root = element; Counter innerCount = new Counter( counter.getDepth() + 1 ); findAndReplaceSimpleElement( innerCount, root, "artifactId", value.getArtifactId(), null ); findAndReplaceSimpleElement( innerCount, root, "groupId", value.getGroupId(), null ); } // -- void updateExclusion(Exclusion, String, Counter, Element) /** * Method updateExtension * * @param value * @param element * @param counter * @param xmlTag */ protected void updateExtension( Extension value, String xmlTag, Counter counter, Element element ) { Element root = element; Counter innerCount = new Counter( counter.getDepth() + 1 ); findAndReplaceSimpleElement( innerCount, root, "groupId", value.getGroupId(), null ); findAndReplaceSimpleElement( innerCount, root, "artifactId", value.getArtifactId(), null ); findAndReplaceSimpleElement( innerCount, root, "version", value.getVersion(), null ); } // -- void updateExtension(Extension, String, Counter, Element) /** * Method updateFileSet * * @param value * @param element * @param counter * @param xmlTag */ protected void updateFileSet( FileSet value, String xmlTag, Counter counter, Element element ) { boolean shouldExist = value != null; Element root = updateElement( counter, element, xmlTag, shouldExist ); if ( shouldExist ) { Counter innerCount = new Counter( counter.getDepth() + 1 ); findAndReplaceSimpleElement( innerCount, root, "directory", value.getDirectory(), null ); findAndReplaceSimpleLists( innerCount, root, value.getIncludes(), "includes", "include" ); findAndReplaceSimpleLists( innerCount, root, value.getExcludes(), "excludes", "exclude" ); } } // -- void updateFileSet(FileSet, String, Counter, Element) /** * Method updateIssueManagement * * @param value * @param element * @param counter * @param xmlTag */ protected void updateIssueManagement( IssueManagement value, String xmlTag, Counter counter, Element element ) { boolean shouldExist = value != null; Element root = updateElement( counter, element, xmlTag, shouldExist ); if ( shouldExist ) { Counter innerCount = new Counter( counter.getDepth() + 1 ); findAndReplaceSimpleElement( innerCount, root, "system", value.getSystem(), null ); findAndReplaceSimpleElement( innerCount, root, "url", value.getUrl(), null ); } } // -- void updateIssueManagement(IssueManagement, String, Counter, Element) /** * Method updateLicense * * @param value * @param element * @param counter * @param xmlTag */ protected void updateLicense( License value, String xmlTag, Counter counter, Element element ) { Element root = element; Counter innerCount = new Counter( counter.getDepth() + 1 ); findAndReplaceSimpleElement( innerCount, root, "name", value.getName(), null ); findAndReplaceSimpleElement( innerCount, root, "url", value.getUrl(), null ); findAndReplaceSimpleElement( innerCount, root, "distribution", value.getDistribution(), null ); findAndReplaceSimpleElement( innerCount, root, "comments", value.getComments(), null ); } // -- void updateLicense(License, String, Counter, Element) /** * Method updateMailingList * * @param value * @param element * @param counter * @param xmlTag */ protected void updateMailingList( MailingList value, String xmlTag, Counter counter, Element element ) { Element root = element; Counter innerCount = new Counter( counter.getDepth() + 1 ); findAndReplaceSimpleElement( innerCount, root, "name", value.getName(), null ); findAndReplaceSimpleElement( innerCount, root, "subscribe", value.getSubscribe(), null ); findAndReplaceSimpleElement( innerCount, root, "unsubscribe", value.getUnsubscribe(), null ); findAndReplaceSimpleElement( innerCount, root, "post", value.getPost(), null ); findAndReplaceSimpleElement( innerCount, root, "archive", value.getArchive(), null ); findAndReplaceSimpleLists( innerCount, root, value.getOtherArchives(), "otherArchives", "otherArchive" ); } // -- void updateMailingList(MailingList, String, Counter, Element) /** * Method updateModel * * @param value * @param element * @param counter * @param xmlTag */ protected void updateModel( Model value, String xmlTag, Counter counter, Element element ) { Element root = element; Counter innerCount = new Counter( counter.getDepth() + 1 ); updateParent( value.getParent(), "parent", innerCount, root ); findAndReplaceSimpleElement( innerCount, root, "modelVersion", value.getModelVersion(), null ); findAndReplaceSimpleElement( innerCount, root, "groupId", value.getGroupId(), null ); findAndReplaceSimpleElement( innerCount, root, "artifactId", value.getArtifactId(), null ); findAndReplaceSimpleElement( innerCount, root, "packaging", value.getPackaging(), "jar" ); findAndReplaceSimpleElement( innerCount, root, "name", value.getName(), null ); findAndReplaceSimpleElement( innerCount, root, "version", value.getVersion(), null ); findAndReplaceSimpleElement( innerCount, root, "description", value.getDescription(), null ); findAndReplaceSimpleElement( innerCount, root, "url", value.getUrl(), null ); updatePrerequisites( value.getPrerequisites(), "prerequisites", innerCount, root ); updateIssueManagement( value.getIssueManagement(), "issueManagement", innerCount, root ); updateCiManagement( value.getCiManagement(), "ciManagement", innerCount, root ); findAndReplaceSimpleElement( innerCount, root, "inceptionYear", value.getInceptionYear(), null ); iterateMailingList( innerCount, root, value.getMailingLists(), "mailingLists", "mailingList" ); iterateDeveloper( innerCount, root, value.getDevelopers(), "developers", "developer" ); iterateContributor( innerCount, root, value.getContributors(), "contributors", "contributor" ); iterateLicense( innerCount, root, value.getLicenses(), "licenses", "license" ); updateScm( value.getScm(), "scm", innerCount, root ); updateOrganization( value.getOrganization(), "organization", innerCount, root ); updateBuild( value.getBuild(), "build", innerCount, root ); iterateProfile( innerCount, root, value.getProfiles(), "profiles", "profile" ); findAndReplaceSimpleLists( innerCount, root, value.getModules(), "modules", "module" ); iterateRepository( innerCount, root, value.getRepositories(), "repositories", "repository" ); iterateRepository( innerCount, root, value.getPluginRepositories(), "pluginRepositories", "pluginRepository" ); iterateDependency( innerCount, root, value.getDependencies(), "dependencies", "dependency" ); findAndReplaceXpp3DOM( innerCount, root, "reports", (Xpp3Dom) value.getReports() ); updateReporting( value.getReporting(), "reporting", innerCount, root ); updateDependencyManagement( value.getDependencyManagement(), "dependencyManagement", innerCount, root ); updateDistributionManagement( value.getDistributionManagement(), "distributionManagement", innerCount, root ); findAndReplaceProperties( innerCount, root, "properties", value.getProperties() ); } // -- void updateModel(Model, String, Counter, Element) /** * Method updateModelBase * * @param value * @param element * @param counter * @param xmlTag */ protected void updateModelBase( ModelBase value, String xmlTag, Counter counter, Element element ) { boolean shouldExist = value != null; Element root = updateElement( counter, element, xmlTag, shouldExist ); if ( shouldExist ) { Counter innerCount = new Counter( counter.getDepth() + 1 ); findAndReplaceSimpleLists( innerCount, root, value.getModules(), "modules", "module" ); iterateRepository( innerCount, root, value.getRepositories(), "repositories", "repository" ); iterateRepository( innerCount, root, value.getPluginRepositories(), "pluginRepositories", "pluginRepository" ); iterateDependency( innerCount, root, value.getDependencies(), "dependencies", "dependency" ); findAndReplaceXpp3DOM( innerCount, root, "reports", (Xpp3Dom) value.getReports() ); updateReporting( value.getReporting(), "reporting", innerCount, root ); updateDependencyManagement( value.getDependencyManagement(), "dependencyManagement", innerCount, root ); updateDistributionManagement( value.getDistributionManagement(), "distributionManagement", innerCount, root ); findAndReplaceProperties( innerCount, root, "properties", value.getProperties() ); } } // -- void updateModelBase(ModelBase, String, Counter, Element) /** * Method updateNotifier * * @param value * @param element * @param counter * @param xmlTag */ protected void updateNotifier( Notifier value, String xmlTag, Counter counter, Element element ) { Element root = element; Counter innerCount = new Counter( counter.getDepth() + 1 ); findAndReplaceSimpleElement( innerCount, root, "type", value.getType(), "mail" ); findAndReplaceSimpleElement( innerCount, root, "sendOnError", value.isSendOnError() ? null : String.valueOf( value.isSendOnError() ), "true" ); findAndReplaceSimpleElement( innerCount, root, "sendOnFailure", value.isSendOnFailure() ? null : String.valueOf( value.isSendOnFailure() ), "true" ); findAndReplaceSimpleElement( innerCount, root, "sendOnSuccess", value.isSendOnSuccess() ? null : String.valueOf( value.isSendOnSuccess() ), "true" ); findAndReplaceSimpleElement( innerCount, root, "sendOnWarning", value.isSendOnWarning() ? null : String.valueOf( value.isSendOnWarning() ), "true" ); findAndReplaceSimpleElement( innerCount, root, "address", value.getAddress(), null ); findAndReplaceProperties( innerCount, root, "configuration", value.getConfiguration() ); } // -- void updateNotifier(Notifier, String, Counter, Element) /** * Method updateOrganization * * @param value * @param element * @param counter * @param xmlTag */ protected void updateOrganization( Organization value, String xmlTag, Counter counter, Element element ) { boolean shouldExist = value != null; Element root = updateElement( counter, element, xmlTag, shouldExist ); if ( shouldExist ) { Counter innerCount = new Counter( counter.getDepth() + 1 ); findAndReplaceSimpleElement( innerCount, root, "name", value.getName(), null ); findAndReplaceSimpleElement( innerCount, root, "url", value.getUrl(), null ); } } // -- void updateOrganization(Organization, String, Counter, Element) /** * Method updateParent * * @param value * @param element * @param counter * @param xmlTag */ protected void updateParent( Parent value, String xmlTag, Counter counter, Element element ) { boolean shouldExist = value != null; Element root = updateElement( counter, element, xmlTag, shouldExist ); if ( shouldExist ) { Counter innerCount = new Counter( counter.getDepth() + 1 ); findAndReplaceSimpleElement( innerCount, root, "artifactId", value.getArtifactId(), null ); findAndReplaceSimpleElement( innerCount, root, "groupId", value.getGroupId(), null ); findAndReplaceSimpleElement( innerCount, root, "version", value.getVersion(), null ); findAndReplaceSimpleElement( innerCount, root, "relativePath", value.getRelativePath(), "../pom.xml" ); } } // -- void updateParent(Parent, String, Counter, Element) /** * Method updatePatternSet * * @param value * @param element * @param counter * @param xmlTag */ protected void updatePatternSet( PatternSet value, String xmlTag, Counter counter, Element element ) { boolean shouldExist = value != null; Element root = updateElement( counter, element, xmlTag, shouldExist ); if ( shouldExist ) { Counter innerCount = new Counter( counter.getDepth() + 1 ); findAndReplaceSimpleLists( innerCount, root, value.getIncludes(), "includes", "include" ); findAndReplaceSimpleLists( innerCount, root, value.getExcludes(), "excludes", "exclude" ); } } // -- void updatePatternSet(PatternSet, String, Counter, Element) /** * Method updatePlugin * * @param value * @param element * @param counter * @param xmlTag */ protected void updatePlugin( Plugin value, String xmlTag, Counter counter, Element element ) { Element root = element; Counter innerCount = new Counter( counter.getDepth() + 1 ); findAndReplaceSimpleElement( innerCount, root, "groupId", value.getGroupId(), "org.apache.maven.plugins" ); findAndReplaceSimpleElement( innerCount, root, "artifactId", value.getArtifactId(), null ); findAndReplaceSimpleElement( innerCount, root, "version", value.getVersion(), null ); findAndReplaceSimpleElement( innerCount, root, "extensions", !value.isExtensions() ? null : String.valueOf( value.isExtensions() ), "false" ); iteratePluginExecution( innerCount, root, value.getExecutions(), "executions", "execution" ); iterateDependency( innerCount, root, value.getDependencies(), "dependencies", "dependency" ); findAndReplaceXpp3DOM( innerCount, root, "goals", (Xpp3Dom) value.getGoals() ); findAndReplaceSimpleElement( innerCount, root, "inherited", value.getInherited(), null ); findAndReplaceXpp3DOM( innerCount, root, "configuration", (Xpp3Dom) value.getConfiguration() ); } // -- void updatePlugin(Plugin, String, Counter, Element) /** * Method updatePluginConfiguration * * @param value * @param element * @param counter * @param xmlTag */ protected void updatePluginConfiguration( PluginConfiguration value, String xmlTag, Counter counter, Element element ) { boolean shouldExist = value != null; Element root = updateElement( counter, element, xmlTag, shouldExist ); if ( shouldExist ) { Counter innerCount = new Counter( counter.getDepth() + 1 ); updatePluginManagement( value.getPluginManagement(), "pluginManagement", innerCount, root ); iteratePlugin( innerCount, root, value.getPlugins(), "plugins", "plugin" ); } } // -- void updatePluginConfiguration(PluginConfiguration, String, Counter, Element) /** * Method updatePluginContainer * * @param value * @param element * @param counter * @param xmlTag */ protected void updatePluginContainer( PluginContainer value, String xmlTag, Counter counter, Element element ) { boolean shouldExist = value != null; Element root = updateElement( counter, element, xmlTag, shouldExist ); if ( shouldExist ) { Counter innerCount = new Counter( counter.getDepth() + 1 ); iteratePlugin( innerCount, root, value.getPlugins(), "plugins", "plugin" ); } } // -- void updatePluginContainer(PluginContainer, String, Counter, Element) /** * Method updatePluginExecution * * @param value * @param element * @param counter * @param xmlTag */ protected void updatePluginExecution( PluginExecution value, String xmlTag, Counter counter, Element element ) { Element root = element; Counter innerCount = new Counter( counter.getDepth() + 1 ); findAndReplaceSimpleElement( innerCount, root, "id", value.getId(), "default" ); findAndReplaceSimpleElement( innerCount, root, "phase", value.getPhase(), null ); findAndReplaceSimpleLists( innerCount, root, value.getGoals(), "goals", "goal" ); findAndReplaceSimpleElement( innerCount, root, "inherited", value.getInherited(), null ); findAndReplaceXpp3DOM( innerCount, root, "configuration", (Xpp3Dom) value.getConfiguration() ); } // -- void updatePluginExecution(PluginExecution, String, Counter, Element) /** * Method updatePluginManagement * * @param value * @param element * @param counter * @param xmlTag */ protected void updatePluginManagement( PluginManagement value, String xmlTag, Counter counter, Element element ) { boolean shouldExist = value != null; Element root = updateElement( counter, element, xmlTag, shouldExist ); if ( shouldExist ) { Counter innerCount = new Counter( counter.getDepth() + 1 ); iteratePlugin( innerCount, root, value.getPlugins(), "plugins", "plugin" ); } } // -- void updatePluginManagement(PluginManagement, String, Counter, Element) /** * Method updatePrerequisites * * @param value * @param element * @param counter * @param xmlTag */ protected void updatePrerequisites( Prerequisites value, String xmlTag, Counter counter, Element element ) { boolean shouldExist = value != null; Element root = updateElement( counter, element, xmlTag, shouldExist ); if ( shouldExist ) { Counter innerCount = new Counter( counter.getDepth() + 1 ); findAndReplaceSimpleElement( innerCount, root, "maven", value.getMaven(), "2.0" ); } } // -- void updatePrerequisites(Prerequisites, String, Counter, Element) /** * Method updateProfile * * @param value * @param element * @param counter * @param xmlTag */ protected void updateProfile( Profile value, String xmlTag, Counter counter, Element element ) { Element root = element; Counter innerCount = new Counter( counter.getDepth() + 1 ); findAndReplaceSimpleElement( innerCount, root, "id", value.getId(), "default" ); // updateActivation( value.getActivation(), "activation", innerCount, root); updateBuildBase( value.getBuild(), "build", innerCount, root ); findAndReplaceSimpleLists( innerCount, root, value.getModules(), "modules", "module" ); iterateRepository( innerCount, root, value.getRepositories(), "repositories", "repository" ); iterateRepository( innerCount, root, value.getPluginRepositories(), "pluginRepositories", "pluginRepository" ); iterateDependency( innerCount, root, value.getDependencies(), "dependencies", "dependency" ); findAndReplaceXpp3DOM( innerCount, root, "reports", (Xpp3Dom) value.getReports() ); updateReporting( value.getReporting(), "reporting", innerCount, root ); updateDependencyManagement( value.getDependencyManagement(), "dependencyManagement", innerCount, root ); updateDistributionManagement( value.getDistributionManagement(), "distributionManagement", innerCount, root ); findAndReplaceProperties( innerCount, root, "properties", value.getProperties() ); } // -- void updateProfile(Profile, String, Counter, Element) /** * Method updateRelocation * * @param value * @param element * @param counter * @param xmlTag */ protected void updateRelocation( Relocation value, String xmlTag, Counter counter, Element element ) { boolean shouldExist = value != null; Element root = updateElement( counter, element, xmlTag, shouldExist ); if ( shouldExist ) { Counter innerCount = new Counter( counter.getDepth() + 1 ); findAndReplaceSimpleElement( innerCount, root, "groupId", value.getGroupId(), null ); findAndReplaceSimpleElement( innerCount, root, "artifactId", value.getArtifactId(), null ); findAndReplaceSimpleElement( innerCount, root, "version", value.getVersion(), null ); findAndReplaceSimpleElement( innerCount, root, "message", value.getMessage(), null ); } } // -- void updateRelocation(Relocation, String, Counter, Element) /** * Method updateReportPlugin * * @param value * @param element * @param counter * @param xmlTag */ protected void updateReportPlugin( ReportPlugin value, String xmlTag, Counter counter, Element element ) { Element root = element; Counter innerCount = new Counter( counter.getDepth() + 1 ); findAndReplaceSimpleElement( innerCount, root, "groupId", value.getGroupId(), "org.apache.maven.plugins" ); findAndReplaceSimpleElement( innerCount, root, "artifactId", value.getArtifactId(), null ); findAndReplaceSimpleElement( innerCount, root, "version", value.getVersion(), null ); findAndReplaceSimpleElement( innerCount, root, "inherited", value.getInherited(), null ); findAndReplaceXpp3DOM( innerCount, root, "configuration", (Xpp3Dom) value.getConfiguration() ); iterateReportSet( innerCount, root, value.getReportSets(), "reportSets", "reportSet" ); } // -- void updateReportPlugin(ReportPlugin, String, Counter, Element) /** * Method updateReportSet * * @param value * @param element * @param counter * @param xmlTag */ protected void updateReportSet( ReportSet value, String xmlTag, Counter counter, Element element ) { Element root = element; Counter innerCount = new Counter( counter.getDepth() + 1 ); findAndReplaceSimpleElement( innerCount, root, "id", value.getId(), "default" ); findAndReplaceXpp3DOM( innerCount, root, "configuration", (Xpp3Dom) value.getConfiguration() ); findAndReplaceSimpleElement( innerCount, root, "inherited", value.getInherited(), null ); findAndReplaceSimpleLists( innerCount, root, value.getReports(), "reports", "report" ); } // -- void updateReportSet(ReportSet, String, Counter, Element) /** * Method updateReporting * * @param value * @param element * @param counter * @param xmlTag */ protected void updateReporting( Reporting value, String xmlTag, Counter counter, Element element ) { boolean shouldExist = value != null; Element root = updateElement( counter, element, xmlTag, shouldExist ); if ( shouldExist ) { Counter innerCount = new Counter( counter.getDepth() + 1 ); findAndReplaceSimpleElement( innerCount, root, "excludeDefaults", !value.isExcludeDefaults() ? null : String.valueOf( value.isExcludeDefaults() ), "false" ); findAndReplaceSimpleElement( innerCount, root, "outputDirectory", value.getOutputDirectory(), null ); iterateReportPlugin( innerCount, root, value.getPlugins(), "plugins", "plugin" ); } } // -- void updateReporting(Reporting, String, Counter, Element) /** * Method updateRepository * * @param value * @param element * @param counter * @param xmlTag */ protected void updateRepository( Repository value, String xmlTag, Counter counter, Element element ) { Element root = element; Counter innerCount = new Counter( counter.getDepth() + 1 ); updateRepositoryPolicy( value.getReleases(), "releases", innerCount, root ); updateRepositoryPolicy( value.getSnapshots(), "snapshots", innerCount, root ); findAndReplaceSimpleElement( innerCount, root, "id", value.getId(), null ); findAndReplaceSimpleElement( innerCount, root, "name", value.getName(), null ); findAndReplaceSimpleElement( innerCount, root, "url", value.getUrl(), null ); findAndReplaceSimpleElement( innerCount, root, "layout", value.getLayout(), "default" ); } // -- void updateRepository(Repository, String, Counter, Element) /** * Method updateRepositoryBase * * @param value * @param element * @param counter * @param xmlTag */ protected void updateRepositoryBase( RepositoryBase value, String xmlTag, Counter counter, Element element ) { boolean shouldExist = value != null; Element root = updateElement( counter, element, xmlTag, shouldExist ); if ( shouldExist ) { Counter innerCount = new Counter( counter.getDepth() + 1 ); findAndReplaceSimpleElement( innerCount, root, "id", value.getId(), null ); findAndReplaceSimpleElement( innerCount, root, "name", value.getName(), null ); findAndReplaceSimpleElement( innerCount, root, "url", value.getUrl(), null ); findAndReplaceSimpleElement( innerCount, root, "layout", value.getLayout(), "default" ); } } // -- void updateRepositoryBase(RepositoryBase, String, Counter, Element) /** * Method updateRepositoryPolicy * * @param value * @param element * @param counter * @param xmlTag */ protected void updateRepositoryPolicy( RepositoryPolicy value, String xmlTag, Counter counter, Element element ) { boolean shouldExist = value != null; Element root = updateElement( counter, element, xmlTag, shouldExist ); if ( shouldExist ) { Counter innerCount = new Counter( counter.getDepth() + 1 ); findAndReplaceSimpleElement( innerCount, root, "enabled", value.isEnabled() ? null : String.valueOf( value.isEnabled() ), "true" ); findAndReplaceSimpleElement( innerCount, root, "updatePolicy", value.getUpdatePolicy(), null ); findAndReplaceSimpleElement( innerCount, root, "checksumPolicy", value.getChecksumPolicy(), null ); } } // -- void updateRepositoryPolicy(RepositoryPolicy, String, Counter, Element) /** * Method updateResource * * @param value * @param element * @param counter * @param xmlTag */ protected void updateResource( Resource value, String xmlTag, Counter counter, Element element ) { Element root = element; Counter innerCount = new Counter( counter.getDepth() + 1 ); findAndReplaceSimpleElement( innerCount, root, "targetPath", value.getTargetPath(), null ); findAndReplaceSimpleElement( innerCount, root, "filtering", !value.isFiltering() ? null : String.valueOf( value.isFiltering() ), "false" ); findAndReplaceSimpleElement( innerCount, root, "directory", value.getDirectory(), null ); findAndReplaceSimpleLists( innerCount, root, value.getIncludes(), "includes", "include" ); findAndReplaceSimpleLists( innerCount, root, value.getExcludes(), "excludes", "exclude" ); } // -- void updateResource(Resource, String, Counter, Element) /** * Method updateScm * * @param value * @param element * @param counter * @param xmlTag */ protected void updateScm( Scm value, String xmlTag, Counter counter, Element element ) { boolean shouldExist = value != null; Element root = updateElement( counter, element, xmlTag, shouldExist ); if ( shouldExist ) { Counter innerCount = new Counter( counter.getDepth() + 1 ); findAndReplaceSimpleElement( innerCount, root, "connection", value.getConnection(), null ); findAndReplaceSimpleElement( innerCount, root, "developerConnection", value.getDeveloperConnection(), null ); findAndReplaceSimpleElement( innerCount, root, "tag", value.getTag(), "HEAD" ); findAndReplaceSimpleElement( innerCount, root, "url", value.getUrl(), null ); } } // -- void updateScm(Scm, String, Counter, Element) /** * Method updateSite * * @param value * @param element * @param counter * @param xmlTag */ protected void updateSite( Site value, String xmlTag, Counter counter, Element element ) { boolean shouldExist = value != null; Element root = updateElement( counter, element, xmlTag, shouldExist ); if ( shouldExist ) { Counter innerCount = new Counter( counter.getDepth() + 1 ); findAndReplaceSimpleElement( innerCount, root, "id", value.getId(), null ); findAndReplaceSimpleElement( innerCount, root, "name", value.getName(), null ); findAndReplaceSimpleElement( innerCount, root, "url", value.getUrl(), null ); } } // -- void updateSite(Site, String, Counter, Element) /** * Method write * * @param project * @param stream * @param document * @deprecated */ public void write( Model project, Document document, OutputStream stream ) throws java.io.IOException { updateModel( project, "project", new Counter( 0 ), document.getRootElement() ); XMLOutputter outputter = new XMLOutputter(); Format format = Format.getPrettyFormat(); format.setIndent( " " ).setLineSeparator( System.getProperty( "line.separator" ) ); outputter.setFormat( format ); outputter.output( document, stream ); } // -- void write(Model, Document, OutputStream) /** * Method write * * @param project * @param writer * @param document */ public void write( Model project, Document document, OutputStreamWriter writer ) throws java.io.IOException { Format format = Format.getRawFormat(); format.setEncoding( writer.getEncoding() ).setLineSeparator( System.getProperty( "line.separator" ) ); write( project, document, writer, format ); } // -- void write(Model, Document, OutputStreamWriter) /** * Method write * * @param project * @param jdomFormat * @param writer * @param document */ public void write( Model project, Document document, Writer writer, Format jdomFormat ) throws java.io.IOException { updateModel( project, "project", new Counter( 0 ), document.getRootElement() ); XMLOutputter outputter = new XMLOutputter(); outputter.setFormat( jdomFormat ); outputter.output( document, writer ); } // -- void write(Model, Document, Writer, Format) // -----------------/ // - Inner Classes -/ // -----------------/ /** * Class Counter. * * @version $Revision: 1300048 $ $Date: 2012-03-13 11:09:35 +0100 (Tue, 13 Mar 2012) $ */ public class Counter { // --------------------------/ // - Class/Member Variables -/ // --------------------------/ /** * Field currentIndex */ private int currentIndex = 0; /** * Field level */ private int level; // ----------------/ // - Constructors -/ // ----------------/ public Counter( int depthLevel ) { level = depthLevel; } // -- org.apache.maven.model.io.jdom.Counter(int) // -----------/ // - Methods -/ // -----------/ /** * Method getCurrentIndex */ public int getCurrentIndex() { return currentIndex; } // -- int getCurrentIndex() /** * Method getDepth */ public int getDepth() { return level; } // -- int getDepth() /** * Method increaseCount */ public void increaseCount() { currentIndex = currentIndex + 1; } // -- void increaseCount() } } maven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/pom/PomWriter.java0000664000175000017500000000503711727655521030463 0ustar ebourgebourgpackage org.apache.maven.plugins.shade.pom; /* * 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 org.apache.maven.model.Model; import org.jdom.Document; import org.jdom.Element; import org.jdom.Namespace; import org.jdom.output.Format; import java.io.IOException; import java.io.Writer; /** * @author Jason van Zyl */ public class PomWriter { public static void write( Writer w, Model newModel ) throws IOException { write( w, newModel, false ); } public static void write( Writer w, Model newModel, boolean namespaceDeclaration ) throws IOException { Element root = new Element( "project" ); if ( namespaceDeclaration ) { String modelVersion = newModel.getModelVersion(); Namespace pomNamespace = Namespace.getNamespace( "", "http://maven.apache.org/POM/" + modelVersion ); root.setNamespace( pomNamespace ); Namespace xsiNamespace = Namespace.getNamespace( "xsi", "http://www.w3.org/2001/XMLSchema-instance" ); root.addNamespaceDeclaration( xsiNamespace ); if ( root.getAttribute( "schemaLocation", xsiNamespace ) == null ) { root.setAttribute( "schemaLocation", "http://maven.apache.org/POM/" + modelVersion + " http://maven.apache.org/maven-v" + modelVersion.replace( '.', '_' ) + ".xsd", xsiNamespace ); } } Document doc = new Document( root ); MavenJDOMWriter writer = new MavenJDOMWriter(); String encoding = newModel.getModelEncoding() != null ? newModel.getModelEncoding() : "UTF-8"; Format format = Format.getPrettyFormat().setEncoding( encoding ); writer.write( newModel, doc, w, format ); } } maven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/ShadeConfiguration.java0000664000175000017500000000171111727655521031507 0ustar ebourgebourgpackage org.apache.maven.plugins.shade; /* * 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. */ /** * @author Jason van Zyl */ public interface ShadeConfiguration { // no op // olamy: what this class ?? } maven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/relocation/0000775000175000017500000000000012236137667027231 5ustar ebourgebourg././@LongLink0000644000000000000000000000014612236137670011652 Lustar rootrootmaven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/relocation/SimpleRelocator.javamaven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/relocation/SimpleRelocator.jav0000664000175000017500000001303711760251671033034 0ustar ebourgebourgpackage org.apache.maven.plugins.shade.relocation; /* * 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 org.codehaus.plexus.util.SelectorUtils; import java.util.Collection; import java.util.LinkedHashSet; import java.util.List; import java.util.Set; import java.util.regex.Pattern; /** * @author Jason van Zyl * @author Mauro Talevi */ public class SimpleRelocator implements Relocator { private final String pattern; private final String pathPattern; private final String shadedPattern; private final String shadedPathPattern; private final Set includes; private final Set excludes; private final boolean rawString; public SimpleRelocator( String patt, String shadedPattern, List includes, List excludes ) { this( patt, shadedPattern, includes, excludes, false ); } public SimpleRelocator( String patt, String shadedPattern, List includes, List excludes, boolean rawString ) { this.rawString = rawString; if ( rawString ) { this.pathPattern = patt; this.shadedPathPattern = shadedPattern; this.pattern = null; // not used for raw string relocator this.shadedPattern = null; // not used for raw string relocator } else { if ( patt == null ) { this.pattern = ""; this.pathPattern = ""; } else { this.pattern = patt.replace( '/', '.' ); this.pathPattern = patt.replace( '.', '/' ); } if ( shadedPattern != null ) { this.shadedPattern = shadedPattern.replace( '/', '.' ); this.shadedPathPattern = shadedPattern.replace( '.', '/' ); } else { this.shadedPattern = "hidden." + this.pattern; this.shadedPathPattern = "hidden/" + this.pathPattern; } } this.includes = normalizePatterns( includes ); this.excludes = normalizePatterns( excludes ); } private static Set normalizePatterns( Collection patterns ) { Set normalized = null; if ( patterns != null && !patterns.isEmpty() ) { normalized = new LinkedHashSet(); for ( String pattern : patterns ) { String classPattern = pattern.replace( '.', '/' ); normalized.add( classPattern ); if ( classPattern.endsWith( "/*" ) ) { String packagePattern = classPattern.substring( 0, classPattern.lastIndexOf( '/' ) ); normalized.add( packagePattern ); } } } return normalized; } private boolean isIncluded( String path ) { if ( includes != null && !includes.isEmpty() ) { for ( String include : includes ) { if ( SelectorUtils.matchPath( include, path, true ) ) { return true; } } return false; } return true; } private boolean isExcluded( String path ) { if ( excludes != null && !excludes.isEmpty() ) { for ( String exclude : excludes ) { if ( SelectorUtils.matchPath( exclude, path, true ) ) { return true; } } } return false; } public boolean canRelocatePath( String path ) { if ( rawString ) { return Pattern.compile( pathPattern ).matcher( path ).find(); } if ( path.endsWith( ".class" ) ) { path = path.substring( 0, path.length() - 6 ); } if ( !isIncluded( path ) || isExcluded( path ) ) { return false; } // Allow for annoying option of an extra / on the front of a path. See MSHADE-119; comes from getClass().getResource("/a/b/c.properties"). return path.startsWith( pathPattern ) || path.startsWith ( "/" + pathPattern ); } public boolean canRelocateClass( String clazz ) { return !rawString && clazz.indexOf( '/' ) < 0 && canRelocatePath( clazz.replace( '.', '/' ) ); } public String relocatePath( String path ) { if ( rawString ) { return path.replaceAll( pathPattern, shadedPathPattern ); } else { return path.replaceFirst( pathPattern, shadedPathPattern ); } } public String relocateClass( String clazz ) { return clazz.replaceFirst( pattern, shadedPattern ); } } maven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/relocation/Relocator.java0000664000175000017500000000217011123544663032016 0ustar ebourgebourgpackage org.apache.maven.plugins.shade.relocation; /* * 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. */ /** @author Jason van Zyl */ public interface Relocator { String ROLE = Relocator.class.getName(); boolean canRelocatePath( String clazz ); String relocatePath( String clazz ); boolean canRelocateClass( String clazz ); String relocateClass( String clazz ); } maven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/resource/0000775000175000017500000000000012236137667026721 5ustar ebourgebourg././@LongLink0000644000000000000000000000016512236137670011653 Lustar rootrootmaven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/resource/ComponentsXmlResourceTransformer.javamaven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/resource/ComponentsXmlResource0000664000175000017500000001524511727655473033175 0ustar ebourgebourgpackage org.apache.maven.plugins.shade.resource; /* * 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 org.apache.maven.plugins.shade.relocation.Relocator; import org.codehaus.plexus.util.IOUtil; import org.codehaus.plexus.util.ReaderFactory; import org.codehaus.plexus.util.WriterFactory; import org.codehaus.plexus.util.xml.Xpp3Dom; import org.codehaus.plexus.util.xml.Xpp3DomBuilder; import org.codehaus.plexus.util.xml.Xpp3DomWriter; import java.io.BufferedInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.Reader; import java.io.Writer; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.jar.JarEntry; import java.util.jar.JarOutputStream; /** * A resource processor that aggregates plexus components.xml files. */ public class ComponentsXmlResourceTransformer implements ResourceTransformer { private Map components = new LinkedHashMap(); public static final String COMPONENTS_XML_PATH = "META-INF/plexus/components.xml"; public boolean canTransformResource( String resource ) { return COMPONENTS_XML_PATH.equals( resource ); } public void processResource( String resource, InputStream is, List relocators ) throws IOException { Xpp3Dom newDom; try { BufferedInputStream bis = new BufferedInputStream( is ) { public void close() throws IOException { // leave ZIP open } }; Reader reader = ReaderFactory.newXmlReader( bis ); newDom = Xpp3DomBuilder.build( reader ); } catch ( Exception e ) { throw (IOException) new IOException( "Error parsing components.xml in " + is ).initCause( e ); } // Only try to merge in components if there are some elements in the component-set if ( newDom.getChild( "components" ) == null ) { return; } Xpp3Dom[] children = newDom.getChild( "components" ).getChildren( "component" ); for ( int i = 0; i < children.length; i++ ) { Xpp3Dom component = children[i]; String role = getValue( component, "role" ); role = getRelocatedClass( role, relocators ); setValue( component, "role", role ); String roleHint = getValue( component, "role-hint" ); String impl = getValue( component, "implementation" ); impl = getRelocatedClass( impl, relocators ); setValue( component, "implementation", impl ); String key = role + ':' + roleHint; if ( components.containsKey( key ) ) { // TODO: use the tools in Plexus to merge these properly. For now, I just need an all-or-nothing // configuration carry over Xpp3Dom dom = components.get( key ); if ( dom.getChild( "configuration" ) != null ) { component.addChild( dom.getChild( "configuration" ) ); } } Xpp3Dom requirements = component.getChild( "requirements" ); if ( requirements != null && requirements.getChildCount() > 0 ) { for ( int r = requirements.getChildCount() - 1; r >= 0; r-- ) { Xpp3Dom requirement = requirements.getChild( r ); String requiredRole = getValue( requirement, "role" ); requiredRole = getRelocatedClass( requiredRole, relocators ); setValue( requirement, "role", requiredRole ); } } components.put( key, component ); } } public void modifyOutputStream( JarOutputStream jos ) throws IOException { byte[] data = getTransformedResource(); jos.putNextEntry( new JarEntry( COMPONENTS_XML_PATH ) ); IOUtil.copy( data, jos ); components.clear(); } public boolean hasTransformedResource() { return !components.isEmpty(); } byte[] getTransformedResource() throws IOException { ByteArrayOutputStream baos = new ByteArrayOutputStream( 1024 * 4 ); Writer writer = WriterFactory.newXmlWriter( baos ); try { Xpp3Dom dom = new Xpp3Dom( "component-set" ); Xpp3Dom componentDom = new Xpp3Dom( "components" ); dom.addChild( componentDom ); for ( Iterator i = components.values().iterator(); i.hasNext(); ) { Xpp3Dom component = (Xpp3Dom) i.next(); componentDom.addChild( component ); } Xpp3DomWriter.write( writer, dom ); } finally { IOUtil.close( writer ); } return baos.toByteArray(); } private String getRelocatedClass( String className, List relocators ) { if ( className != null && className.length() > 0 && relocators != null ) { for ( Relocator relocator : relocators ) { if ( relocator.canRelocateClass( className ) ) { return relocator.relocateClass( className ); } } } return className; } private static String getValue( Xpp3Dom dom, String element ) { Xpp3Dom child = dom.getChild( element ); return ( child != null && child.getValue() != null ) ? child.getValue() : ""; } private static void setValue( Xpp3Dom dom, String element, String value ) { Xpp3Dom child = dom.getChild( element ); if ( child == null || value == null || value.length() <= 0 ) { return; } child.setValue( value ); } } ././@LongLink0000644000000000000000000000015712236137670011654 Lustar rootrootmaven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/resource/IncludeResourceTransformer.javamaven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/resource/IncludeResourceTransf0000664000175000017500000000371411727655473033126 0ustar ebourgebourgpackage org.apache.maven.plugins.shade.resource; /* * 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 org.apache.maven.plugins.shade.relocation.Relocator; import org.codehaus.plexus.util.IOUtil; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.List; import java.util.jar.JarEntry; import java.util.jar.JarOutputStream; /** * A resource processor that allows the addition of an arbitrary file * content into the shaded JAR. */ public class IncludeResourceTransformer implements ResourceTransformer { File file; String resource; public boolean canTransformResource( String r ) { return false; } public void processResource( String resource, InputStream is, List relocators ) throws IOException { // no op } public boolean hasTransformedResource() { return file != null ? file.exists() : false; } public void modifyOutputStream( JarOutputStream jos ) throws IOException { jos.putNextEntry( new JarEntry( resource ) ); InputStream in = new FileInputStream( file ); IOUtil.copy( in, jos ); in.close(); } } ././@LongLink0000644000000000000000000000016312236137670011651 Lustar rootrootmaven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/resource/DontIncludeResourceTransformer.javamaven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/resource/DontIncludeResourceTr0000664000175000017500000000334711727655473033105 0ustar ebourgebourgpackage org.apache.maven.plugins.shade.resource; /* * 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 org.apache.maven.plugins.shade.relocation.Relocator; import java.io.IOException; import java.io.InputStream; import java.util.List; import java.util.jar.JarOutputStream; /** * A resource processor that prevents the inclusion of an arbitrary * resource into the shaded JAR. */ public class DontIncludeResourceTransformer implements ResourceTransformer { String resource; public boolean canTransformResource( String r ) { if ( r.endsWith( resource ) ) { return true; } return false; } public void processResource( String resource, InputStream is, List relocators ) throws IOException { // no op } public boolean hasTransformedResource() { return false; } public void modifyOutputStream( JarOutputStream os ) throws IOException { // no op } } ././@LongLink0000644000000000000000000000016412236137670011652 Lustar rootrootmaven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/resource/ApacheNoticeResourceTransformer.javamaven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/resource/ApacheNoticeResourceT0000664000175000017500000002034011727655473033026 0ustar ebourgebourgpackage org.apache.maven.plugins.shade.resource; /* * 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 org.apache.maven.plugins.shade.relocation.Relocator; import org.codehaus.plexus.util.StringUtils; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.io.Writer; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Set; import java.util.TreeSet; import java.util.jar.JarEntry; import java.util.jar.JarOutputStream; /** * Merges META-INF/NOTICE.TXT files. */ public class ApacheNoticeResourceTransformer implements ResourceTransformer { Set entries = new LinkedHashSet(); Map organizationEntries = new LinkedHashMap(); String projectName = ""; // MSHADE-101 :: NullPointerException when projectName is missing boolean addHeader = true; String preamble1 = "// ------------------------------------------------------------------\n" + "// NOTICE file corresponding to the section 4d of The Apache License,\n" + "// Version 2.0, in this case for "; String preamble2 = "\n// ------------------------------------------------------------------\n"; String preamble3 = "This product includes software developed at\n"; //defaults overridable via config in pom String organizationName = "The Apache Software Foundation"; String organizationURL = "http://www.apache.org/"; String inceptionYear = "2006"; String copyright; /** * The file encoding of the NOTICE file. */ String encoding; private static final String NOTICE_PATH = "META-INF/NOTICE"; private static final String NOTICE_TXT_PATH = "META-INF/NOTICE.txt"; public boolean canTransformResource( String resource ) { if ( NOTICE_PATH.equalsIgnoreCase( resource ) || NOTICE_TXT_PATH.equalsIgnoreCase( resource ) ) { return true; } return false; } public void processResource( String resource, InputStream is, List relocators ) throws IOException { if ( entries.isEmpty() ) { String year = new SimpleDateFormat( "yyyy" ).format( new Date() ); if ( !inceptionYear.equals( year ) ) { year = inceptionYear + "-" + year; } //add headers if ( addHeader ) { entries.add( preamble1 + projectName + preamble2 ); } else { entries.add( "" ); } //fake second entry, we'll look for a real one later entries.add( projectName + "\nCopyright " + year + " " + organizationName + "\n" ); entries.add( preamble3 + organizationName + " (" + organizationURL + ").\n" ); } BufferedReader reader; if ( StringUtils.isNotEmpty( encoding ) ) { reader = new BufferedReader( new InputStreamReader( is, encoding ) ); } else { reader = new BufferedReader( new InputStreamReader( is ) ); } String line = reader.readLine(); StringBuffer sb = new StringBuffer(); Set currentOrg = null; int lineCount = 0; while ( line != null ) { String trimedLine = line.trim(); if ( !trimedLine.startsWith( "//" ) ) { if ( trimedLine.length() > 0 ) { if ( trimedLine.startsWith( "- " ) ) { //resource-bundle 1.3 mode if ( lineCount == 1 && sb.toString().indexOf( "This product includes/uses software(s) developed by" ) != -1 ) { currentOrg = (Set) organizationEntries.get( sb.toString().trim() ); if ( currentOrg == null ) { currentOrg = new TreeSet(); organizationEntries.put( sb.toString().trim(), currentOrg ); } sb = new StringBuffer(); } else if ( sb.length() > 0 && currentOrg != null ) { currentOrg.add( sb.toString() ); sb = new StringBuffer(); } } sb.append( line ).append( "\n" ); lineCount++; } else { String ent = sb.toString(); if ( ent.startsWith( projectName ) && ent.indexOf( "Copyright " ) != -1 ) { copyright = ent; } if ( currentOrg == null ) { entries.add( ent ); } else { currentOrg.add( ent ); } sb = new StringBuffer(); lineCount = 0; currentOrg = null; } } line = reader.readLine(); } if ( sb.length() > 0 ) { if ( currentOrg == null ) { entries.add( sb.toString() ); } else { currentOrg.add( sb.toString() ); } } } public boolean hasTransformedResource() { return true; } public void modifyOutputStream( JarOutputStream jos ) throws IOException { jos.putNextEntry( new JarEntry( NOTICE_PATH ) ); Writer pow; if ( StringUtils.isNotEmpty( encoding ) ) { pow = new OutputStreamWriter( jos, encoding ); } else { pow = new OutputStreamWriter( jos ); } PrintWriter writer = new PrintWriter( pow ); int count = 0; for ( Iterator itr = entries.iterator(); itr.hasNext(); ) { ++count; String line = (String) itr.next(); if ( line.equals( copyright ) && count != 2 ) { continue; } if ( count == 2 && copyright != null ) { writer.print( copyright ); writer.print( '\n' ); } else { writer.print( line ); writer.print( '\n' ); } if ( count == 3 ) { //do org stuff for ( Iterator oit = organizationEntries.entrySet().iterator(); oit.hasNext(); ) { Map.Entry entry = (Map.Entry) oit.next(); writer.print( entry.getKey().toString() ); writer.print( '\n' ); Set entrySet = (Set) entry.getValue(); for ( Iterator eit = entrySet.iterator(); eit.hasNext(); ) { writer.print( eit.next().toString() ); } writer.print( '\n' ); } } } writer.flush(); entries.clear(); } } ././@LongLink0000644000000000000000000000015012236137670011645 Lustar rootrootmaven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/resource/ResourceTransformer.javamaven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/resource/ResourceTransformer.j0000664000175000017500000000256411727655473033121 0ustar ebourgebourgpackage org.apache.maven.plugins.shade.resource; /* * 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 org.apache.maven.plugins.shade.relocation.Relocator; import java.io.IOException; import java.io.InputStream; import java.util.List; import java.util.jar.JarOutputStream; /** @author Jason van Zyl */ public interface ResourceTransformer { boolean canTransformResource( String resource ); void processResource( String resource, InputStream is, List relocators ) throws IOException; boolean hasTransformedResource(); void modifyOutputStream( JarOutputStream os ) throws IOException; } ././@LongLink0000644000000000000000000000015112236137670011646 Lustar rootrootmaven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/resource/AppendingTransformer.javamaven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/resource/AppendingTransformer.0000664000175000017500000000421611727655473033061 0ustar ebourgebourgpackage org.apache.maven.plugins.shade.resource; /* * 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 org.apache.maven.plugins.shade.relocation.Relocator; import org.codehaus.plexus.util.IOUtil; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.List; import java.util.jar.JarEntry; import java.util.jar.JarOutputStream; /** * A resource processor that appends content for a resource, separated by a newline. */ public class AppendingTransformer implements ResourceTransformer { String resource; ByteArrayOutputStream data = new ByteArrayOutputStream(); public boolean canTransformResource( String r ) { if ( resource != null && resource.equalsIgnoreCase( r ) ) { return true; } return false; } public void processResource( String resource, InputStream is, List relocators ) throws IOException { IOUtil.copy( is, data ); data.write( '\n' ); is.close(); } public boolean hasTransformedResource() { return data.size() > 0; } public void modifyOutputStream( JarOutputStream jos ) throws IOException { jos.putNextEntry( new JarEntry( resource ) ); IOUtil.copy( new ByteArrayInputStream( data.toByteArray() ), jos ); data.reset(); } } ././@LongLink0000644000000000000000000000016512236137670011653 Lustar rootrootmaven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/resource/ApacheLicenseResourceTransformer.javamaven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/resource/ApacheLicenseResource0000664000175000017500000000355511727655473033054 0ustar ebourgebourgpackage org.apache.maven.plugins.shade.resource; /* * 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.IOException; import java.io.InputStream; import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.jar.JarOutputStream; /** * Prevents duplicate copies of the license */ public class ApacheLicenseResourceTransformer implements ResourceTransformer { private static final String LICENSE_PATH = "META-INF/LICENSE"; private static final String LICENSE_TXT_PATH = "META-INF/LICENSE.txt"; public boolean canTransformResource( String resource ) { if ( LICENSE_PATH.equalsIgnoreCase( resource ) || LICENSE_TXT_PATH.regionMatches( true, 0, resource, 0, LICENSE_TXT_PATH.length() ) ) { return true; } return false; } public void processResource( String resource, InputStream is, List relocators ) throws IOException { } public boolean hasTransformedResource() { return false; } public void modifyOutputStream( JarOutputStream os ) throws IOException { } } ././@LongLink0000644000000000000000000000016012236137670011646 Lustar rootrootmaven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/resource/ManifestResourceTransformer.javamaven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/resource/ManifestResourceTrans0000664000175000017500000000663411727655473033147 0ustar ebourgebourgpackage org.apache.maven.plugins.shade.resource; /* * 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 org.apache.maven.plugins.shade.relocation.Relocator; import org.codehaus.plexus.util.IOUtil; import java.io.IOException; import java.io.InputStream; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.jar.Attributes; import java.util.jar.JarEntry; import java.util.jar.JarFile; import java.util.jar.JarOutputStream; import java.util.jar.Manifest; /** * A resource processor that allows the arbitrary addition of attributes to * the first MANIFEST.MF that is found in the set of JARs being processed, or * to a newly created manifest for the shaded JAR. * * @author Jason van Zyl * @since 1.2 */ public class ManifestResourceTransformer implements ResourceTransformer { // Configuration private String mainClass; private Map manifestEntries; // Fields private boolean manifestDiscovered; private Manifest manifest; public boolean canTransformResource( String resource ) { if ( JarFile.MANIFEST_NAME.equalsIgnoreCase( resource ) ) { return true; } return false; } public void processResource( String resource, InputStream is, List relocators ) throws IOException { // We just want to take the first manifest we come across as that's our project's manifest. This is the behavior // now which is situational at best. Right now there is no context passed in with the processing so we cannot // tell what artifact is being processed. if ( !manifestDiscovered ) { manifest = new Manifest( is ); manifestDiscovered = true; IOUtil.close( is ); } } public boolean hasTransformedResource() { return true; } public void modifyOutputStream( JarOutputStream jos ) throws IOException { // If we didn't find a manifest, then let's create one. if ( manifest == null ) { manifest = new Manifest(); } Attributes attributes = manifest.getMainAttributes(); if ( mainClass != null ) { attributes.put( Attributes.Name.MAIN_CLASS, mainClass ); } if ( manifestEntries != null ) { for ( Iterator i = manifestEntries.keySet().iterator(); i.hasNext(); ) { String key = (String) i.next(); attributes.put( new Attributes.Name( key ), manifestEntries.get( key ) ); } } jos.putNextEntry( new JarEntry( JarFile.MANIFEST_NAME ) ); manifest.write( jos ); } } ././@LongLink0000644000000000000000000000015412236137670011651 Lustar rootrootmaven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/resource/XmlAppendingTransformer.javamaven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/resource/XmlAppendingTransform0000664000175000017500000000774411727655473033146 0ustar ebourgebourgpackage org.apache.maven.plugins.shade.resource; /* * 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 org.apache.maven.plugins.shade.relocation.Relocator; import org.jdom.Attribute; import org.jdom.Content; import org.jdom.Document; import org.jdom.Element; import org.jdom.JDOMException; import org.jdom.input.SAXBuilder; import org.jdom.output.Format; import org.jdom.output.XMLOutputter; import org.xml.sax.EntityResolver; import org.xml.sax.InputSource; import org.xml.sax.SAXException; import java.io.IOException; import java.io.InputStream; import java.io.StringReader; import java.util.Iterator; import java.util.List; import java.util.jar.JarEntry; import java.util.jar.JarOutputStream; /** * Appends multiple occurrences of some XML file. */ public class XmlAppendingTransformer implements ResourceTransformer { public static final String XSI_NS = "http://www.w3.org/2001/XMLSchema-instance"; boolean ignoreDtd = true; String resource; Document doc; public boolean canTransformResource( String r ) { if ( resource != null && resource.equalsIgnoreCase( r ) ) { return true; } return false; } public void processResource( String resource, InputStream is, List relocators ) throws IOException { Document r; try { SAXBuilder builder = new SAXBuilder( false ); builder.setExpandEntities( false ); if ( ignoreDtd ) { builder.setEntityResolver( new EntityResolver() { public InputSource resolveEntity( String publicId, String systemId ) throws SAXException, IOException { return new InputSource( new StringReader( "" ) ); } } ); } r = builder.build( is ); } catch ( JDOMException e ) { throw new RuntimeException( "Error processing resource " + resource + ": " + e.getMessage(), e ); } if ( doc == null ) { doc = r; } else { Element root = r.getRootElement(); for ( Iterator itr = root.getAttributes().iterator(); itr.hasNext(); ) { Attribute a = (Attribute) itr.next(); itr.remove(); Element mergedEl = doc.getRootElement(); Attribute mergedAtt = mergedEl.getAttribute( a.getName(), a.getNamespace() ); if ( mergedAtt == null ) { mergedEl.setAttribute( a ); } } for ( Iterator itr = root.getChildren().iterator(); itr.hasNext(); ) { Content n = (Content) itr.next(); itr.remove(); doc.getRootElement().addContent( n ); } } } public boolean hasTransformedResource() { return doc != null; } public void modifyOutputStream( JarOutputStream jos ) throws IOException { jos.putNextEntry( new JarEntry( resource ) ); new XMLOutputter( Format.getPrettyFormat() ).output( doc, jos ); doc = null; } } ././@LongLink0000644000000000000000000000016012236137670011646 Lustar rootrootmaven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/resource/ServicesResourceTransformer.javamaven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/resource/ServicesResourceTrans0000664000175000017500000000701711727655473033160 0ustar ebourgebourgpackage org.apache.maven.plugins.shade.resource; /* * 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 org.apache.maven.plugins.shade.relocation.Relocator; import org.codehaus.plexus.util.IOUtil; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.jar.JarEntry; import java.util.jar.JarOutputStream; /** * Resources transformer that appends entries in META-INF/services resources into * a single resource. For example, if there are several META-INF/services/org.apache.maven.project.ProjectBuilder * resources spread across many JARs the individual entries will all be concatenated into a single * META-INF/services/org.apache.maven.project.ProjectBuilder resource packaged into the resultant JAR produced * by the shading process. * * @author jvanzyl */ public class ServicesResourceTransformer implements ResourceTransformer { private static final String SERVICES_PATH = "META-INF/services"; private Map serviceEntries = new HashMap(); public boolean canTransformResource( String resource ) { if ( resource.startsWith( SERVICES_PATH ) ) { return true; } return false; } public void processResource( String resource, InputStream is, List relocators ) throws IOException { ServiceStream out = serviceEntries.get( resource ); if ( out == null ) { out = new ServiceStream(); serviceEntries.put( resource, out ); } out.append( is ); is.close(); } public boolean hasTransformedResource() { return serviceEntries.size() > 0; } public void modifyOutputStream( JarOutputStream jos ) throws IOException { for ( Map.Entry entry : serviceEntries.entrySet() ) { String key = entry.getKey(); ServiceStream data = entry.getValue(); jos.putNextEntry( new JarEntry( key ) ); IOUtil.copy( data.toInputStream(), jos ); data.reset(); } } static class ServiceStream extends ByteArrayOutputStream { public ServiceStream() { super( 1024 ); } public void append( InputStream is ) throws IOException { if ( count > 0 && buf[count - 1] != '\n' && buf[count - 1] != '\r' ) { write( '\n' ); } IOUtil.copy( is, this ); } public InputStream toInputStream() { return new ByteArrayInputStream( buf, 0, count ); } } } maven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/Shader.java0000664000175000017500000000365711727655521027154 0ustar ebourgebourgpackage org.apache.maven.plugins.shade; /* * 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 org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugins.shade.filter.Filter; import org.apache.maven.plugins.shade.relocation.Relocator; import org.apache.maven.plugins.shade.resource.ResourceTransformer; import java.io.File; import java.io.IOException; import java.util.List; import java.util.Set; /** * Interface that defines the process of shading. */ public interface Shader { String ROLE = Shader.class.getName(); /** * Perform a shading operation. * * @param jars which jars * @param uberJar output jar * @param filters the filters * @param relocators the relocators * @param resourceTransformers the transformers * @throws IOException for IO errors reading the thing * @throws MojoExecutionException for anything else that goes wrong. */ void shade( Set jars, File uberJar, List filters, List relocators, List resourceTransformers ) throws IOException, MojoExecutionException; } maven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/ShadingResult.java0000664000175000017500000000170011727655521030505 0ustar ebourgebourgpackage org.apache.maven.plugins.shade; /* * 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. */ /** * @author Jason van Zyl */ public class ShadingResult { // no op // olamy: what this class ?? } maven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/DefaultShader.java0000664000175000017500000003232711727671022030447 0ustar ebourgebourgpackage org.apache.maven.plugins.shade; /* * 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 org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugins.shade.filter.Filter; import org.apache.maven.plugins.shade.relocation.Relocator; import org.apache.maven.plugins.shade.resource.ManifestResourceTransformer; import org.apache.maven.plugins.shade.resource.ResourceTransformer; import org.codehaus.plexus.component.annotations.Component; import org.codehaus.plexus.logging.AbstractLogEnabled; import org.codehaus.plexus.util.IOUtil; import org.objectweb.asm.ClassReader; import org.objectweb.asm.ClassVisitor; import org.objectweb.asm.ClassWriter; import org.objectweb.asm.commons.Remapper; import org.objectweb.asm.commons.RemappingClassAdapter; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.Enumeration; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Set; import java.util.jar.JarEntry; import java.util.jar.JarFile; import java.util.jar.JarOutputStream; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.zip.ZipException; /** * @author Jason van Zyl */ @Component( role = Shader.class, hint = "default" ) public class DefaultShader extends AbstractLogEnabled implements Shader { public void shade( Set jars, File uberJar, List filters, List relocators, List resourceTransformers ) throws IOException, MojoExecutionException { Set resources = new HashSet(); ResourceTransformer manifestTransformer = null; List transformers = new ArrayList( resourceTransformers ); for ( Iterator it = transformers.iterator(); it.hasNext(); ) { ResourceTransformer transformer = it.next(); if ( transformer instanceof ManifestResourceTransformer ) { manifestTransformer = transformer; it.remove(); } } RelocatorRemapper remapper = new RelocatorRemapper( relocators ); uberJar.getParentFile().mkdirs(); JarOutputStream jos = new JarOutputStream( new FileOutputStream( uberJar ) ); if ( manifestTransformer != null ) { for ( File jar : jars ) { JarFile jarFile = newJarFile( jar ); for ( Enumeration en = jarFile.entries(); en.hasMoreElements(); ) { JarEntry entry = (JarEntry) en.nextElement(); String resource = entry.getName(); if ( manifestTransformer.canTransformResource( resource ) ) { resources.add( resource ); manifestTransformer.processResource( resource, jarFile.getInputStream( entry ), relocators ); break; } } } if ( manifestTransformer.hasTransformedResource() ) { manifestTransformer.modifyOutputStream( jos ); } } for ( File jar : jars ) { getLogger().debug( "Processing JAR " + jar ); List jarFilters = getFilters( jar, filters ); JarFile jarFile = newJarFile( jar ); for ( Enumeration j = jarFile.entries(); j.hasMoreElements(); ) { JarEntry entry = j.nextElement(); String name = entry.getName(); if ( "META-INF/INDEX.LIST".equals( name ) ) { // we cannot allow the jar indexes to be copied over or the // jar is useless. Ideally, we could create a new one // later continue; } if ( !entry.isDirectory() && !isFiltered( jarFilters, name ) ) { InputStream is = jarFile.getInputStream( entry ); String mappedName = remapper.map( name ); int idx = mappedName.lastIndexOf( '/' ); if ( idx != -1 ) { // make sure dirs are created String dir = mappedName.substring( 0, idx ); if ( !resources.contains( dir ) ) { addDirectory( resources, jos, dir ); } } if ( name.endsWith( ".class" ) ) { addRemappedClass( remapper, jos, jar, name, is ); } else { if ( !resourceTransformed( transformers, mappedName, is, relocators ) ) { // Avoid duplicates that aren't accounted for by the resource transformers if ( resources.contains( mappedName ) ) { continue; } addResource( resources, jos, mappedName, is ); } } IOUtil.close( is ); } } jarFile.close(); } for ( Iterator i = transformers.iterator(); i.hasNext(); ) { ResourceTransformer transformer = (ResourceTransformer) i.next(); if ( transformer.hasTransformedResource() ) { transformer.modifyOutputStream( jos ); } } IOUtil.close( jos ); for ( Filter filter : filters ) { filter.finished(); } } private JarFile newJarFile( File jar ) throws IOException { try { return new JarFile( jar ); } catch ( ZipException zex ) { // JarFile is not very verbose and doesn't tell the user which file it was // so we will create a new Exception instead throw new ZipException( "error in opening zip file " + jar ); } } private List getFilters( File jar, List filters ) { List list = new ArrayList(); for ( Filter filter : filters ) { if ( filter.canFilter( jar ) ) { list.add( filter ); } } return list; } private void addDirectory( Set resources, JarOutputStream jos, String name ) throws IOException { if ( name.lastIndexOf( '/' ) > 0 ) { String parent = name.substring( 0, name.lastIndexOf( '/' ) ); if ( !resources.contains( parent ) ) { addDirectory( resources, jos, parent ); } } // directory entries must end in "/" JarEntry entry = new JarEntry( name + "/" ); jos.putNextEntry( entry ); resources.add( name ); } private void addRemappedClass( RelocatorRemapper remapper, JarOutputStream jos, File jar, String name, InputStream is ) throws IOException, MojoExecutionException { if ( !remapper.hasRelocators() ) { try { jos.putNextEntry( new JarEntry( name ) ); IOUtil.copy( is, jos ); } catch ( ZipException e ) { getLogger().warn( "We have a duplicate " + name + " in " + jar ); } return; } ClassReader cr = new ClassReader( is ); // We don't pass the ClassReader here. This forces the ClassWriter to rebuild the constant pool. // Copying the original constant pool should be avoided because it would keep references // to the original class names. This is not a problem at runtime (because these entries in the // constant pool are never used), but confuses some tools such as Felix' maven-bundle-plugin // that use the constant pool to determine the dependencies of a class. ClassWriter cw = new ClassWriter( 0 ); ClassVisitor cv = new RemappingClassAdapter( cw, remapper ); try { cr.accept( cv, ClassReader.EXPAND_FRAMES ); } catch ( Throwable ise ) { throw new MojoExecutionException( "Error in ASM processing class " + name, ise ); } byte[] renamedClass = cw.toByteArray(); // Need to take the .class off for remapping evaluation String mappedName = remapper.map( name.substring( 0, name.indexOf( '.' ) ) ); try { // Now we put it back on so the class file is written out with the right extension. jos.putNextEntry( new JarEntry( mappedName + ".class" ) ); IOUtil.copy( renamedClass, jos ); } catch ( ZipException e ) { getLogger().warn( "We have a duplicate " + mappedName + " in " + jar ); } } private boolean isFiltered( List filters, String name ) { for ( Filter filter : filters ) { if ( filter.isFiltered( name ) ) { return true; } } return false; } private boolean resourceTransformed( List resourceTransformers, String name, InputStream is, List relocators ) throws IOException { boolean resourceTransformed = false; for ( ResourceTransformer transformer : resourceTransformers ) { if ( transformer.canTransformResource( name ) ) { getLogger().debug( "Transforming " + name + " using " + transformer.getClass().getName() ); transformer.processResource( name, is, relocators ); resourceTransformed = true; break; } } return resourceTransformed; } private void addResource( Set resources, JarOutputStream jos, String name, InputStream is ) throws IOException { jos.putNextEntry( new JarEntry( name ) ); IOUtil.copy( is, jos ); resources.add( name ); } class RelocatorRemapper extends Remapper { private final Pattern classPattern = Pattern.compile( "(\\[*)?L(.+);" ); List relocators; public RelocatorRemapper( List relocators ) { this.relocators = relocators; } public boolean hasRelocators() { return !relocators.isEmpty(); } public Object mapValue( Object object ) { if ( object instanceof String ) { String name = (String) object; String value = name; String prefix = ""; String suffix = ""; Matcher m = classPattern.matcher( name ); if ( m.matches() ) { prefix = m.group( 1 ) + "L"; suffix = ";"; name = m.group( 2 ); } for ( Relocator r : relocators ) { if ( r.canRelocateClass( name ) ) { value = prefix + r.relocateClass( name ) + suffix; break; } else if ( r.canRelocatePath( name ) ) { value = prefix + r.relocatePath( name ) + suffix; break; } } return value; } return super.mapValue( object ); } public String map( String name ) { String value = name; String prefix = ""; String suffix = ""; Matcher m = classPattern.matcher( name ); if ( m.matches() ) { prefix = m.group( 1 ) + "L"; suffix = ";"; name = m.group( 2 ); } for ( Relocator r : relocators ) { if ( r.canRelocatePath( name ) ) { value = prefix + r.relocatePath( name ) + suffix; break; } } return value; } } } maven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/filter/0000775000175000017500000000000012236137667026357 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/filter/MinijarFilter.java0000664000175000017500000001531011760550707031754 0ustar ebourgebourgpackage org.apache.maven.plugins.shade.filter; /* * 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.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.Collections; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Set; import org.apache.maven.artifact.Artifact; import org.apache.maven.plugin.logging.Log; import org.apache.maven.project.MavenProject; import org.codehaus.plexus.util.IOUtil; import org.vafer.jdependency.Clazz; import org.vafer.jdependency.Clazzpath; import org.vafer.jdependency.ClazzpathUnit; /** * A filter that prevents the inclusion of classes not required in the final jar. * * @author Torsten Curdt */ public class MinijarFilter implements Filter { private Log log; private Set removable; private int classesKept; private int classesRemoved; public MinijarFilter( MavenProject project, Log log ) throws IOException { this( project, log, Collections.emptyList() ); } /** * * @since 1.6 */ @SuppressWarnings( { "unchecked", "rawtypes" } ) public MinijarFilter( MavenProject project, Log log, List simpleFilters ) throws IOException { this.log = log; Clazzpath cp = new Clazzpath(); ClazzpathUnit artifactUnit = cp.addClazzpathUnit( new FileInputStream( project.getArtifact().getFile() ), project.toString() ); for ( Iterator it = project.getArtifacts().iterator(); it.hasNext(); ) { Artifact dependency = (Artifact) it.next(); addDependencyToClasspath( cp, dependency ); } removable = cp.getClazzes(); removePackages( artifactUnit ); removable.removeAll( artifactUnit.getClazzes() ); removable.removeAll( artifactUnit.getTransitiveDependencies() ); removeSpecificallyIncludedClasses( project, simpleFilters == null ? Collections.emptyList() : simpleFilters ); } private ClazzpathUnit addDependencyToClasspath( Clazzpath cp, Artifact dependency ) throws IOException { InputStream is = null; ClazzpathUnit clazzpathUnit = null; try { is = new FileInputStream( dependency.getFile() ); clazzpathUnit = cp.addClazzpathUnit( is, dependency.toString() ); } catch( ArrayIndexOutOfBoundsException e ) { //trap ArrayIndexOutOfBoundsExceptions caused by malformed dependency classes (MSHADE-107) log.warn( dependency.toString() + " could not be analyzed for minimization; dependency is probably malformed." ); } finally { IOUtil.close( is ); } return clazzpathUnit; } private void removePackages( ClazzpathUnit artifactUnit ) { Set packageNames = new HashSet(); removePackages( artifactUnit.getClazzes(), packageNames ); removePackages( artifactUnit.getTransitiveDependencies(), packageNames ); } @SuppressWarnings( "rawtypes" ) private void removePackages( Set clazzes, Set packageNames ) { Iterator it = clazzes.iterator(); while ( it.hasNext() ) { Clazz clazz = (Clazz) it.next(); String name = clazz.getName(); while ( name.contains( "." ) ) { name = name.substring( 0, name.lastIndexOf( '.' ) ); if ( packageNames.add( name ) ) { removable.remove( new Clazz( name + ".package-info" ) ); } } } } @SuppressWarnings( "rawtypes" ) private void removeSpecificallyIncludedClasses( MavenProject project, List simpleFilters ) throws IOException { //remove classes specifically included in filters Clazzpath checkCp = new Clazzpath(); for ( Iterator it = project.getArtifacts().iterator(); it.hasNext(); ) { Artifact dependency = (Artifact) it.next(); File jar = dependency.getFile(); for ( Iterator i = simpleFilters.iterator(); i.hasNext(); ) { SimpleFilter simpleFilter = i.next(); if ( simpleFilter.canFilter( jar ) ) { ClazzpathUnit depClazzpathUnit = addDependencyToClasspath( checkCp, dependency ); if ( depClazzpathUnit != null ) { Iterator j = removable.iterator(); while ( j.hasNext() ) { Clazz clazz = j.next(); if ( depClazzpathUnit.getClazzes().contains( clazz ) && simpleFilter.isSpecificallyIncluded( clazz.getName().replace( '.', '/' ) ) ) { log.info( clazz.getName() + " not removed because it was specifically included" ); j.remove(); } } } } } } } public boolean canFilter( File jar ) { return true; } public boolean isFiltered( String classFile ) { String className = classFile.replace( '/', '.' ).replaceFirst( "\\.class$", "" ); Clazz clazz = new Clazz( className ); if ( removable.contains( clazz ) ) { log.debug( "Removing " + className ); classesRemoved += 1; return true; } classesKept += 1; return false; } public void finished() { int classes_total = classesRemoved + classesKept; log.info( "Minimized " + classes_total + " -> " + classesKept + " (" + (int) ( 100 * classesKept / classes_total ) + "%)" ); } } maven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/filter/SimpleFilter.java0000664000175000017500000000652511727655521031627 0ustar ebourgebourgpackage org.apache.maven.plugins.shade.filter; /* * 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 org.codehaus.plexus.util.SelectorUtils; import java.io.File; import java.util.HashSet; import java.util.Set; /** * @author David Blevins */ public class SimpleFilter implements Filter { private Set jars; private Set includes; private Set excludes; public SimpleFilter( Set jars, Set includes, Set excludes ) { this.jars = ( jars != null ) ? new HashSet( jars ) : new HashSet(); this.includes = normalizePatterns( includes ); this.excludes = normalizePatterns( excludes ); } public boolean canFilter( File jar ) { return jars.contains( jar ); } public boolean isFiltered( String classFile ) { String path = normalizePath( classFile ); return !( isIncluded( path ) && !isExcluded( path ) ); } public boolean isSpecificallyIncluded( String classFile ) { if ( includes == null || includes.isEmpty() ) { return false; } String path = normalizePath( classFile ); return isIncluded( path ); } private boolean isIncluded( String classFile ) { if ( includes == null || includes.isEmpty() ) { return true; } return matchPaths( includes, classFile ); } private boolean isExcluded( String classFile ) { if ( excludes == null || excludes.isEmpty() ) { return false; } return matchPaths( excludes, classFile ); } private boolean matchPaths( Set patterns, String classFile ) { for ( String pattern : patterns ) { if ( SelectorUtils.matchPath( pattern, classFile ) ) { return true; } } return false; } private String normalizePath( String path ) { return ( path != null ) ? path.replace( File.separatorChar == '/' ? '\\' : '/', File.separatorChar ) : null; } private Set normalizePatterns( Set patterns ) { Set result = new HashSet(); if ( patterns != null ) { for ( String pattern : patterns ) { pattern = normalizePath( pattern ); if ( pattern.endsWith( File.separator ) ) { pattern += "**"; } result.add( pattern ); } } return result; } public void finished() { } } maven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/filter/Filter.java0000664000175000017500000000202211427243005030424 0ustar ebourgebourgpackage org.apache.maven.plugins.shade.filter; /* * 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; /** * @author David Blevins */ public interface Filter { boolean canFilter( File jar ); boolean isFiltered( String classFile ); void finished(); } maven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/mojo/0000775000175000017500000000000012236137667026036 5ustar ebourgebourgmaven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/mojo/ArtifactSelector.java0000664000175000017500000000546011727655521032142 0ustar ebourgebourgpackage org.apache.maven.plugins.shade.mojo; /* * 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 org.apache.maven.artifact.Artifact; import java.util.Collection; import java.util.HashSet; /** * @author Benjamin Bentmann */ class ArtifactSelector { private Collection includes; private Collection excludes; public ArtifactSelector( Artifact projectArtifact, ArtifactSet artifactSet, String groupPrefix ) { this( ( artifactSet != null ) ? artifactSet.getIncludes() : null, ( artifactSet != null ) ? artifactSet.getExcludes() : null, groupPrefix ); if ( projectArtifact != null && !this.includes.isEmpty() ) { this.includes.add( new ArtifactId( projectArtifact ) ); } } public ArtifactSelector( Collection includes, Collection excludes, String groupPrefix ) { this.includes = toIds( includes ); this.excludes = toIds( excludes ); if ( groupPrefix != null && groupPrefix.length() > 0 ) { this.includes.add( new ArtifactId( groupPrefix + "*", "*", "*", "*" ) ); } } private static Collection toIds( Collection patterns ) { Collection result = new HashSet(); if ( patterns != null ) { for ( String pattern : patterns ) { result.add( new ArtifactId( pattern ) ); } } return result; } public boolean isSelected( Artifact artifact ) { return ( artifact != null ) ? isSelected( new ArtifactId( artifact ) ) : false; } boolean isSelected( ArtifactId id ) { return ( includes.isEmpty() || matches( includes, id ) ) && !matches( excludes, id ); } private boolean matches( Collection patterns, ArtifactId id ) { for ( ArtifactId pattern : patterns ) { if ( id.matches( pattern ) ) { return true; } } return false; } } maven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/mojo/ArtifactId.java0000664000175000017500000000642511316501402030676 0ustar ebourgebourgpackage org.apache.maven.plugins.shade.mojo; /* * 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 org.apache.maven.artifact.Artifact; import org.apache.maven.model.Dependency; import org.codehaus.plexus.util.SelectorUtils; /** * @author Benjamin Bentmann */ class ArtifactId { private final String groupId; private final String artifactId; private final String type; private final String classifier; public ArtifactId( Dependency dependency ) { this( dependency.getGroupId(), dependency.getArtifactId(), dependency.getType(), dependency.getClassifier() ); } public ArtifactId( Artifact artifact ) { this( artifact.getGroupId(), artifact.getArtifactId(), artifact.getType(), artifact.getClassifier() ); } public ArtifactId( String groupId, String artifactId, String type, String classifier ) { this.groupId = ( groupId != null ) ? groupId : ""; this.artifactId = ( artifactId != null ) ? artifactId : ""; this.type = ( type != null ) ? type : ""; this.classifier = ( classifier != null ) ? classifier : ""; } public ArtifactId( String id ) { String[] tokens = new String[0]; if ( id != null && id.length() > 0 ) { tokens = id.split( ":", -1 ); } groupId = ( tokens.length > 0 ) ? tokens[0] : ""; artifactId = ( tokens.length > 1 ) ? tokens[1] : "*"; type = ( tokens.length > 3 ) ? tokens[2] : "*"; classifier = ( tokens.length > 3 ) ? tokens[3] : ( ( tokens.length > 2 ) ? tokens[2] : "*" ); } public String getGroupId() { return groupId; } public String getArtifactId() { return artifactId; } public String getType() { return type; } public String getClassifier() { return classifier; } public boolean matches( ArtifactId pattern ) { if ( pattern == null ) { return false; } if ( !match( getGroupId(), pattern.getGroupId() ) ) { return false; } if ( !match( getArtifactId(), pattern.getArtifactId() ) ) { return false; } if ( !match( getType(), pattern.getType() ) ) { return false; } if ( !match( getClassifier(), pattern.getClassifier() ) ) { return false; } return true; } private boolean match( String str, String pattern ) { return SelectorUtils.match( pattern, str ); } } maven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/mojo/PackageRelocation.java0000664000175000017500000000274611727655521032263 0ustar ebourgebourgpackage org.apache.maven.plugins.shade.mojo; /* * 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.util.List; /** * @author Jason van Zyl * @author Mauro Talevi */ public class PackageRelocation { private String pattern; private String shadedPattern; private List includes; private List excludes; private boolean rawString; public String getPattern() { return pattern; } public String getShadedPattern() { return shadedPattern; } public List getIncludes() { return includes; } public List getExcludes() { return excludes; } public boolean isRawString() { return rawString; } } maven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/mojo/ArchiveFilter.java0000664000175000017500000000235511727655521031433 0ustar ebourgebourgpackage org.apache.maven.plugins.shade.mojo; /* * 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.util.Set; /** * @author David Blevins */ public class ArchiveFilter { private String artifact; private Set includes; private Set excludes; public String getArtifact() { return artifact; } public Set getIncludes() { return includes; } public Set getExcludes() { return excludes; } } maven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/mojo/RelativizePath.java0000664000175000017500000000707611756543474031651 0ustar ebourgebourg/* * 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. */ package org.apache.maven.plugins.shade.mojo; import java.io.File; import java.util.ArrayList; import java.util.Collections; import java.util.List; /** * */ public final class RelativizePath { private RelativizePath() { // } /** * relativize a pathname. * @param thing Absolute File of something. (e.g., a parent pom) * @param relativeTo base to relativize it do. (e.g., a pom into which a relative pathname to the 'thing' is to be installed). * @return */ static String convertToRelativePath(File thing, File relativeTo) { StringBuilder relativePath = null; if ( thing.getParentFile().equals( relativeTo.getParentFile() )) { return thing.getName(); // a very simple relative path. } List thingDirectories = RelativizePath.parentDirs( thing ); List relativeToDirectories = RelativizePath.parentDirs( relativeTo ); //Get the shortest of the two paths int length = thingDirectories.size() < relativeToDirectories.size() ? thingDirectories.size() : relativeToDirectories.size(); int lastCommonRoot = -1; // index of the lowest directory down from the root that the two have in common. int index; //Find common root for ( index = 0; index < length; index++ ) { if ( thingDirectories.get( index ).equals(relativeToDirectories.get( index ))) { lastCommonRoot = index; } else { break; } } if (lastCommonRoot != -1) { // possible on Windows or other multi-root cases. //Build up the relative path relativePath = new StringBuilder(); // add ..'s to get from the base up to the common point for ( index = lastCommonRoot + 1; index < relativeToDirectories.size(); index++ ) { relativePath.append( "../" ); } // now add down from the common point to the actual 'thing' item. for ( index = lastCommonRoot + 1; index < thingDirectories.size(); index++ ) { relativePath.append( thingDirectories.get( index ) + "/" ); } relativePath.append( thing.getName() ); return relativePath.toString(); } return null; } static List parentDirs( File of ) { List results = new ArrayList(); for ( File p = of.getParentFile() ; p != null ; p = p.getParentFile() ) { if ( !"".equals(p.getName()) ) { results.add( p.getName() ); } } Collections.reverse( results ); return results; } } maven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/mojo/ShadeMojo.java0000664000175000017500000011003011772570640030541 0ustar ebourgebourgpackage org.apache.maven.plugins.shade.mojo; /* * 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 org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.factory.ArtifactFactory; import org.apache.maven.artifact.metadata.ArtifactMetadataSource; import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.artifact.resolver.ArtifactCollector; import org.apache.maven.artifact.resolver.ArtifactNotFoundException; import org.apache.maven.artifact.resolver.ArtifactResolutionException; import org.apache.maven.artifact.resolver.ArtifactResolver; import org.apache.maven.model.Dependency; import org.apache.maven.model.Exclusion; import org.apache.maven.model.Model; import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugins.shade.Shader; import org.apache.maven.plugins.shade.filter.Filter; import org.apache.maven.plugins.shade.filter.MinijarFilter; import org.apache.maven.plugins.shade.filter.SimpleFilter; import org.apache.maven.plugins.shade.pom.PomWriter; import org.apache.maven.plugins.shade.relocation.Relocator; import org.apache.maven.plugins.shade.relocation.SimpleRelocator; import org.apache.maven.plugins.shade.resource.ResourceTransformer; import org.apache.maven.project.MavenProject; import org.apache.maven.project.MavenProjectBuilder; import org.apache.maven.project.MavenProjectHelper; import org.apache.maven.project.ProjectBuildingException; import org.apache.maven.shared.dependency.tree.DependencyNode; import org.apache.maven.shared.dependency.tree.DependencyTreeBuilder; import org.apache.maven.shared.dependency.tree.DependencyTreeBuilderException; import org.codehaus.plexus.PlexusConstants; import org.codehaus.plexus.PlexusContainer; import org.codehaus.plexus.component.repository.exception.ComponentLookupException; import org.codehaus.plexus.context.Context; import org.codehaus.plexus.context.ContextException; import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable; import org.codehaus.plexus.util.IOUtil; import org.codehaus.plexus.util.WriterFactory; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.Writer; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Set; /** * Mojo that performs shading delegating to the Shader component. * * @author Jason van Zyl * @author Mauro Talevi * @author David Blevins * @author Hiram Chirino * @goal shade * @phase package * @requiresDependencyResolution runtime * @threadSafe */ public class ShadeMojo extends AbstractMojo implements Contextualizable { /** * @parameter default-value="${project}" * @readonly * @required */ private MavenProject project; /** * @component * @required * @readonly */ private MavenProjectHelper projectHelper; /** * @component role="org.apache.maven.plugins.shade.Shader" roleHint="default" * @required * @readonly */ private Shader shader; /** * The dependency tree builder to use. * * @component * @required * @readonly */ private DependencyTreeBuilder dependencyTreeBuilder; /** * ProjectBuilder, needed to create projects from the artifacts. * * @component * @required * @readonly */ private MavenProjectBuilder mavenProjectBuilder; /** * The artifact metadata source to use. * * @component * @required * @readonly */ private ArtifactMetadataSource artifactMetadataSource; /** * The artifact collector to use. * * @component * @required * @readonly */ private ArtifactCollector artifactCollector; /** * Remote repositories which will be searched for source attachments. * * @parameter default-value="${project.remoteArtifactRepositories}" * @required * @readonly */ protected List remoteArtifactRepositories; /** * Local maven repository. * * @parameter default-value="${localRepository}" * @required * @readonly */ protected ArtifactRepository localRepository; /** * Artifact factory, needed to download source jars for inclusion in classpath. * * @component * @required * @readonly */ protected ArtifactFactory artifactFactory; /** * Artifact resolver, needed to download source jars for inclusion in classpath. * * @component * @required * @readonly */ protected ArtifactResolver artifactResolver; /** * Artifacts to include/exclude from the final artifact. Artifacts are denoted by composite identifiers of the * general form groupId:artifactId:type:classifier. Since version 1.3, the wildcard characters '*' and * '?' can be used within the sub parts of those composite identifiers to do pattern matching. For convenience, the * syntax groupId is equivalent to groupId:*:*:*, groupId:artifactId is * equivalent to groupId:artifactId:*:* and groupId:artifactId:classifier is equivalent to * groupId:artifactId:*:classifier. For example: *
     * <artifactSet>
     *   <includes>
     *     <include>org.apache.maven:*</include>
     *   </includes>
     *   <excludes>
     *     <exclude>*:maven-core</exclude>
     *   </excludes>
     * </artifactSet>
     * 
* * @parameter */ private ArtifactSet artifactSet; /** * Packages to be relocated. For example: *
     * <relocations>
     *   <relocation>
     *     <pattern>org.apache</pattern>
     *     <shadedPattern>hidden.org.apache</shadedPattern>
     *     <includes>
     *       <include>org.apache.maven.*</include>
     *     </includes>
     *     <excludes>
     *       <exclude>org.apache.maven.Public*</exclude>
     *     </excludes>
     *   </relocation>
     * </relocations>
     * 
* Note: Support for includes exists only since version 1.4. * * @parameter */ private PackageRelocation[] relocations; /** * Resource transformers to be used. Please see the "Examples" section for more information on available * transformers and their configuration. * * @parameter */ private ResourceTransformer[] transformers; /** * Archive Filters to be used. Allows you to specify an artifact in the form of a composite identifier as used by * {@link #artifactSet} and a set of include/exclude file patterns for filtering which contents of the archive are * added to the shaded jar. From a logical perspective, includes are processed before excludes, thus it's possible * to use an include to collect a set of files from the archive then use excludes to further reduce the set. By * default, all files are included and no files are excluded. If multiple filters apply to an artifact, the * intersection of the matched files will be included in the final JAR. For example: *
     * <filters>
     *   <filter>
     *     <artifact>junit:junit</artifact>
     *     <includes>
     *       <include>org/junit/**</include>
     *     </includes>
     *     <excludes>
     *       <exclude>org/junit/experimental/**</exclude>
     *     </excludes>
     *   </filter>
     * </filters>
     * 
* * @parameter */ private ArchiveFilter[] filters; /** * The destination directory for the shaded artifact. * * @parameter default-value="${project.build.directory}" */ private File outputDirectory; /** * The name of the shaded artifactId. *

* If you like to change the name of the native artifact, you may use the <build><finalName> setting. * If this is set to something different than <build><finalName>, no file replacement * will be performed, even if shadedArtifactAttached is being used. * * @parameter expression="${finalName}" */ private String finalName; /** * The name of the shaded artifactId. So you may want to use a different artifactId and keep * the standard version. If the original artifactId was "foo" then the final artifact would * be something like foo-1.0.jar. So if you change the artifactId you might have something * like foo-special-1.0.jar. * * @parameter expression="${shadedArtifactId}" default-value="${project.artifactId}" */ private String shadedArtifactId; /** * If specified, this will include only artifacts which have groupIds which * start with this. * * @parameter expression="${shadedGroupFilter}" */ private String shadedGroupFilter; /** * Defines whether the shaded artifact should be attached as classifier to * the original artifact. If false, the shaded jar will be the main artifact * of the project * * @parameter expression="${shadedArtifactAttached}" default-value="false" */ private boolean shadedArtifactAttached; /** * Flag whether to generate a simplified POM for the shaded artifact. If set to true, dependencies that * have been included into the uber JAR will be removed from the <dependencies> section of the * generated POM. The reduced POM will be named dependency-reduced-pom.xml and is stored into the same * directory as the shaded artifact. Unless you also specify dependencyReducedPomLocation, the plugin will * create a temporary file named dependency-reduced-pom.xml in the project basedir. * * @parameter expression="${createDependencyReducedPom}" default-value="true" */ private boolean createDependencyReducedPom; /** * @parameter expression="${dependencyReducedPomLocation}" defaultValue="${basedir}/dependency-reduced-pom.xml" * Note: setting a value for this parameter with a directory other than ${basedir} will change the value of ${basedir} * for all executions that come after the shade execution. This is often not what you want. This is considered * an open issue with this plugin. */ private File dependencyReducedPomLocation; /** * When true, dependencies are kept in the pom but with scope 'provided'; when false, * the dependency is removed. * * @parameter expression="${keepDependenciesWithProvidedScope}" default-value="false" */ private boolean keepDependenciesWithProvidedScope; /** * When true, transitive deps of removed dependencies are promoted to direct dependencies. * This should allow the drop in replacement of the removed deps with the new shaded * jar and everything should still work. * * @parameter expression="${promoteTransitiveDependencies}" default-value="false" */ private boolean promoteTransitiveDependencies; /** * The name of the classifier used in case the shaded artifact is attached. * * @parameter expression="${shadedClassifierName}" default-value="shaded" */ private String shadedClassifierName; /** * When true, it will attempt to create a sources jar as well * * @parameter expression="${createSourcesJar}" default-value="false" */ private boolean createSourcesJar; /** * When true, dependencies will be stripped down on the class level to only the transitive hull required for the * artifact. Note: Usage of this feature requires Java 1.5 or higher. * * @parameter default-value="false" * @since 1.4 */ private boolean minimizeJar; /** * The path to the output file for the shaded artifact. When this parameter is set, the created archive will neither * replace the project's main artifact nor will it be attached. Hence, this parameter causes the parameters * {@link #finalName}, {@link #shadedArtifactAttached}, {@link #shadedClassifierName} and * {@link #createDependencyReducedPom} to be ignored when used. * * @parameter * @since 1.3 */ private File outputFile; /** * You can pass here the roleHint about your own Shader implementation plexus component. * * @parameter * @since 1.6 */ private String shaderHint; /** * @since 1.6 */ private PlexusContainer plexusContainer; public void contextualize( Context context ) throws ContextException { plexusContainer = (PlexusContainer) context.get( PlexusConstants.PLEXUS_KEY ); } /** * @throws MojoExecutionException */ public void execute() throws MojoExecutionException { if ( shaderHint != null ) { try { shader = (Shader) plexusContainer.lookup( Shader.ROLE, shaderHint ); } catch ( ComponentLookupException e ) { throw new MojoExecutionException( "unable to lookup own Shader implementation with hint:'" + shaderHint + "'", e ); } } Set artifacts = new LinkedHashSet(); Set artifactIds = new LinkedHashSet(); Set sourceArtifacts = new LinkedHashSet(); ArtifactSelector artifactSelector = new ArtifactSelector( project.getArtifact(), artifactSet, shadedGroupFilter ); if ( artifactSelector.isSelected( project.getArtifact() ) && !"pom".equals( project.getArtifact().getType() ) ) { if ( invalidMainArtifact() ) { getLog().error( "The project main artifact does not exist. This could have the following" ); getLog().error( "reasons:" ); getLog().error( "- You have invoked the goal directly from the command line. This is not" ); getLog().error( " supported. Please add the goal to the default lifecycle via an" ); getLog().error( " element in your POM and use \"mvn package\" to have it run." ); getLog().error( "- You have bound the goal to a lifecycle phase before \"package\". Please" ); getLog().error( " remove this binding from your POM such that the goal will be run in" ); getLog().error( " the proper phase." ); getLog().error( "- You removed the configuration of the maven-jar-plugin that produces the main artifact." ); throw new MojoExecutionException( "Failed to create shaded artifact, " + "project main artifact does not exist." ); } artifacts.add( project.getArtifact().getFile() ); if ( createSourcesJar ) { File file = shadedSourcesArtifactFile(); if ( file.isFile() ) { sourceArtifacts.add( file ); } } } for ( Iterator it = project.getArtifacts().iterator(); it.hasNext(); ) { Artifact artifact = (Artifact) it.next(); if ( !artifactSelector.isSelected( artifact ) ) { getLog().info( "Excluding " + artifact.getId() + " from the shaded jar." ); continue; } if ( "pom".equals( artifact.getType() ) ) { getLog().info( "Skipping pom dependency " + artifact.getId() + " in the shaded jar." ); continue; } getLog().info( "Including " + artifact.getId() + " in the shaded jar." ); artifacts.add( artifact.getFile() ); artifactIds.add( getId( artifact ) ); if ( createSourcesJar ) { File file = resolveArtifactSources( artifact ); if ( file != null ) { sourceArtifacts.add( file ); } } } File outputJar = ( outputFile != null ) ? outputFile : shadedArtifactFileWithClassifier(); File sourcesJar = shadedSourceArtifactFileWithClassifier(); // Now add our extra resources try { List filters = getFilters(); List relocators = getRelocators(); List resourceTransformers = getResourceTransformers(); shader.shade( artifacts, outputJar, filters, relocators, resourceTransformers ); if ( createSourcesJar ) { shader.shade( sourceArtifacts, sourcesJar, filters, relocators, resourceTransformers ); } if ( outputFile == null ) { boolean renamed = false; // rename the output file if a specific finalName is set // but don't rename if the finalName is the // because this will be handled implicitly later if ( finalName != null && finalName.length() > 0 && !finalName.equals( project.getBuild().getFinalName() ) ) { String finalFileName = finalName + "." + project.getArtifact().getArtifactHandler().getExtension(); File finalFile = new File( outputDirectory, finalFileName ); replaceFile( finalFile, outputJar ); outputJar = finalFile; renamed = true; } if ( shadedArtifactAttached ) { getLog().info( "Attaching shaded artifact." ); projectHelper.attachArtifact( project, project.getArtifact().getType(), shadedClassifierName, outputJar ); if ( createSourcesJar ) { projectHelper.attachArtifact( project, "jar", shadedClassifierName + "-sources", sourcesJar ); } } else if ( !renamed ) { getLog().info( "Replacing original artifact with shaded artifact." ); File originalArtifact = project.getArtifact().getFile(); replaceFile( originalArtifact, outputJar ); if ( createSourcesJar ) { File shadedSources = shadedSourcesArtifactFile(); replaceFile( shadedSources, sourcesJar ); projectHelper.attachArtifact( project, "jar", "sources", shadedSources ); } if ( createDependencyReducedPom ) { createDependencyReducedPom( artifactIds ); } } } } catch ( Exception e ) { throw new MojoExecutionException( "Error creating shaded jar: " + e.getMessage(), e ); } } private boolean invalidMainArtifact( ) { return project.getArtifact().getFile() == null || ! project.getArtifact().getFile().isFile(); } private void replaceFile( File oldFile, File newFile ) throws MojoExecutionException { getLog().info( "Replacing " + oldFile + " with " + newFile ); File origFile = new File( outputDirectory, "original-" + oldFile.getName() ); if ( oldFile.exists() && !oldFile.renameTo( origFile ) ) { //try a gc to see if an unclosed stream needs garbage collecting System.gc(); System.gc(); if ( !oldFile.renameTo( origFile ) ) { // Still didn't work. We'll do a copy try { FileOutputStream fout = new FileOutputStream( origFile ); FileInputStream fin = new FileInputStream( oldFile ); try { IOUtil.copy( fin, fout ); } finally { IOUtil.close( fin ); IOUtil.close( fout ); } } catch ( IOException ex ) { //kind of ignorable here. We're just trying to save the original getLog().warn( ex ); } } } if ( !newFile.renameTo( oldFile ) ) { //try a gc to see if an unclosed stream needs garbage collecting System.gc(); System.gc(); if ( !newFile.renameTo( oldFile ) ) { // Still didn't work. We'll do a copy try { FileOutputStream fout = new FileOutputStream( oldFile ); FileInputStream fin = new FileInputStream( newFile ); try { IOUtil.copy( fin, fout ); } finally { IOUtil.close( fin ); IOUtil.close( fout ); } } catch ( IOException ex ) { throw new MojoExecutionException( "Could not replace original artifact with shaded artifact!", ex ); } } } } private File resolveArtifactSources( Artifact artifact ) { Artifact resolvedArtifact = artifactFactory.createArtifactWithClassifier( artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion(), "java-source", "sources" ); try { artifactResolver.resolve( resolvedArtifact, remoteArtifactRepositories, localRepository ); } catch ( ArtifactNotFoundException e ) { // ignore, the jar has not been found } catch ( ArtifactResolutionException e ) { getLog().warn( "Could not get sources for " + artifact ); } if ( resolvedArtifact.isResolved() ) { return resolvedArtifact.getFile(); } return null; } private List getRelocators() { List relocators = new ArrayList(); if ( relocations == null ) { return relocators; } for ( int i = 0; i < relocations.length; i++ ) { PackageRelocation r = relocations[i]; relocators.add( new SimpleRelocator( r.getPattern(), r.getShadedPattern(), r.getIncludes(), r.getExcludes(), r.isRawString() ) ); } return relocators; } private List getResourceTransformers() { if ( transformers == null ) { return Collections.emptyList(); } return Arrays.asList( transformers ); } private List getFilters() throws MojoExecutionException { List filters = new ArrayList(); List simpleFilters = new ArrayList(); if ( this.filters != null && this.filters.length > 0 ) { Map artifacts = new HashMap(); artifacts.put( project.getArtifact(), new ArtifactId( project.getArtifact() ) ); for ( Iterator it = project.getArtifacts().iterator(); it.hasNext(); ) { Artifact artifact = (Artifact) it.next(); artifacts.put( artifact, new ArtifactId( artifact ) ); } for ( int i = 0; i < this.filters.length; i++ ) { ArchiveFilter filter = this.filters[i]; ArtifactId pattern = new ArtifactId( filter.getArtifact() ); Set jars = new HashSet(); for ( Iterator it = artifacts.entrySet().iterator(); it.hasNext(); ) { Map.Entry entry = (Map.Entry) it.next(); if ( ( (ArtifactId) entry.getValue() ).matches( pattern ) ) { Artifact artifact = (Artifact) entry.getKey(); jars.add( artifact.getFile() ); if ( createSourcesJar ) { File file = resolveArtifactSources( artifact ); if ( file != null ) { jars.add( file ); } } } } if ( jars.isEmpty() ) { getLog().info( "No artifact matching filter " + filter.getArtifact() ); continue; } simpleFilters.add( new SimpleFilter( jars, filter.getIncludes(), filter.getExcludes() ) ); } } filters.addAll( simpleFilters ); if ( minimizeJar ) { getLog().info( "Minimizing jar " + project.getArtifact() ); try { filters.add( new MinijarFilter( project, getLog(), simpleFilters ) ); } catch ( IOException e ) { throw new MojoExecutionException( "Failed to analyze class dependencies", e ); } } return filters; } private File shadedArtifactFileWithClassifier() { Artifact artifact = project.getArtifact(); final String shadedName = shadedArtifactId + "-" + artifact.getVersion() + "-" + shadedClassifierName + "." + artifact.getArtifactHandler().getExtension(); return new File( outputDirectory, shadedName ); } private File shadedSourceArtifactFileWithClassifier() { Artifact artifact = project.getArtifact(); final String shadedName = shadedArtifactId + "-" + artifact.getVersion() + "-" + shadedClassifierName + "-sources." + artifact.getArtifactHandler().getExtension(); return new File( outputDirectory, shadedName ); } private File shadedSourcesArtifactFile() { Artifact artifact = project.getArtifact(); String shadedName; if ( project.getBuild().getFinalName() != null ) { shadedName = project.getBuild().getFinalName() + "-sources." + artifact.getArtifactHandler().getExtension(); } else { shadedName = shadedArtifactId + "-" + artifact.getVersion() + "-sources." + artifact.getArtifactHandler().getExtension(); } return new File( outputDirectory, shadedName ); } // We need to find the direct dependencies that have been included in the uber JAR so that we can modify the // POM accordingly. private void createDependencyReducedPom( Set artifactsToRemove ) throws IOException, DependencyTreeBuilderException, ProjectBuildingException { Model model = project.getOriginalModel(); List dependencies = new ArrayList(); boolean modified = false; List transitiveDeps = new ArrayList(); for ( Iterator it = project.getArtifacts().iterator(); it.hasNext(); ) { Artifact artifact = (Artifact) it.next(); if ( "pom".equals( artifact.getType() ) ) { // don't include pom type dependencies in dependency reduced pom continue; } //promote Dependency dep = new Dependency(); dep.setArtifactId( artifact.getArtifactId() ); if ( artifact.hasClassifier() ) { dep.setClassifier( artifact.getClassifier() ); } dep.setGroupId( artifact.getGroupId() ); dep.setOptional( artifact.isOptional() ); dep.setScope( artifact.getScope() ); dep.setType( artifact.getType() ); dep.setVersion( artifact.getVersion() ); //we'll figure out the exclusions in a bit. transitiveDeps.add( dep ); } List origDeps = project.getDependencies(); if ( promoteTransitiveDependencies ) { origDeps = transitiveDeps; } for ( Iterator i = origDeps.iterator(); i.hasNext(); ) { Dependency d = i.next(); dependencies.add( d ); String id = getId( d ); if ( artifactsToRemove.contains( id ) ) { modified = true; if ( keepDependenciesWithProvidedScope ) { d.setScope( "provided" ); } else { dependencies.remove( d ); } } } // Check to see if we have a reduction and if so rewrite the POM. if ( modified ) { while ( modified ) { model.setDependencies( dependencies ); if ( dependencyReducedPomLocation == null ) { // MSHADE-123: We can't default to 'target' because it messes up uses of ${project.basedir} dependencyReducedPomLocation = new File ( project.getBasedir(), "dependency-reduced-pom.xml" ); } File f = dependencyReducedPomLocation; if ( f.exists() ) { f.delete(); } Writer w = WriterFactory.newXmlWriter( f ); String origRelativePath = null; String replaceRelativePath = null; if ( model.getParent() != null) { origRelativePath = model.getParent().getRelativePath(); } replaceRelativePath = origRelativePath; if ( origRelativePath == null ) { origRelativePath = "../pom.xml"; } if ( model.getParent() != null ) { File parentFile = new File( project.getBasedir(), model.getParent().getRelativePath() ).getCanonicalFile(); if ( !parentFile.isFile() ) { parentFile = new File( parentFile, "pom.xml"); } parentFile = parentFile.getCanonicalFile(); String relPath = RelativizePath.convertToRelativePath( parentFile, f ); model.getParent().setRelativePath( relPath ); } try { PomWriter.write( w, model, true ); } finally { if ( model.getParent() != null ) { model.getParent().setRelativePath( replaceRelativePath ); } w.close(); } MavenProject p2 = mavenProjectBuilder.build( f, localRepository, null ); modified = updateExcludesInDeps( p2, dependencies, transitiveDeps ); } project.setFile( dependencyReducedPomLocation ); } } private String getId( Artifact artifact ) { return getId( artifact.getGroupId(), artifact.getArtifactId(), artifact.getType(), artifact.getClassifier() ); } private String getId( Dependency dependency ) { return getId( dependency.getGroupId(), dependency.getArtifactId(), dependency.getType(), dependency.getClassifier() ); } private String getId( String groupId, String artifactId, String type, String classifier ) { return groupId + ":" + artifactId + ":" + type + ":" + ( ( classifier != null ) ? classifier : "" ); } public boolean updateExcludesInDeps( MavenProject project, List dependencies, List transitiveDeps ) throws DependencyTreeBuilderException { DependencyNode node = dependencyTreeBuilder.buildDependencyTree( project, localRepository, artifactFactory, artifactMetadataSource, null, artifactCollector ); boolean modified = false; Iterator it = node.getChildren().listIterator(); while ( it.hasNext() ) { DependencyNode n2 = (DependencyNode) it.next(); Iterator it2 = n2.getChildren().listIterator(); while ( it2.hasNext() ) { DependencyNode n3 = (DependencyNode) it2.next(); //anything two levels deep that is marked "included" //is stuff that was excluded by the original poms, make sure it //remains excluded IF promoting transitives. if ( n3.getState() == DependencyNode.INCLUDED ) { //check if it really isn't in the list of original dependencies. Maven //prior to 2.0.8 may grab versions from transients instead of //from the direct deps in which case they would be marked included //instead of OMITTED_FOR_DUPLICATE //also, if not promoting the transitives, level 2's would be included boolean found = false; for ( int x = 0; x < transitiveDeps.size(); x++ ) { Dependency dep = transitiveDeps.get( x ); if ( dep.getArtifactId().equals( n3.getArtifact().getArtifactId() ) && dep.getGroupId().equals( n3.getArtifact().getGroupId() ) ) { found = true; } } if ( !found ) { for ( int x = 0; x < dependencies.size(); x++ ) { Dependency dep = dependencies.get( x ); if ( dep.getArtifactId().equals( n2.getArtifact().getArtifactId() ) && dep.getGroupId().equals( n2.getArtifact().getGroupId() ) ) { Exclusion exclusion = new Exclusion(); exclusion.setArtifactId( n3.getArtifact().getArtifactId() ); exclusion.setGroupId( n3.getArtifact().getGroupId() ); dep.addExclusion( exclusion ); modified = true; break; } } } } } } return modified; } } maven-shade-plugin-1.7.1/src/main/java/org/apache/maven/plugins/shade/mojo/ArtifactSet.java0000664000175000017500000000220711727655521031111 0ustar ebourgebourgpackage org.apache.maven.plugins.shade.mojo; /* * 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.util.Set; /** * @author Jason van Zyl */ public class ArtifactSet { private Set includes; private Set excludes; public Set getIncludes() { return includes; } public Set getExcludes() { return excludes; } } maven-shade-plugin-1.7.1/rel-path-test-files/0000775000175000017500000000000012236137670020336 5ustar ebourgebourgmaven-shade-plugin-1.7.1/rel-path-test-files/a/0000775000175000017500000000000012236137670020556 5ustar ebourgebourgmaven-shade-plugin-1.7.1/rel-path-test-files/a/pom0000664000175000017500000000000011756543474021273 0ustar ebourgebourgmaven-shade-plugin-1.7.1/rel-path-test-files/a/b/0000775000175000017500000000000012236137670020777 5ustar ebourgebourgmaven-shade-plugin-1.7.1/rel-path-test-files/a/b/pom0000664000175000017500000000000011756543474021514 0ustar ebourgebourgmaven-shade-plugin-1.7.1/rel-path-test-files/a/b/c1/0000775000175000017500000000000012236137670021302 5ustar ebourgebourgmaven-shade-plugin-1.7.1/rel-path-test-files/a/b/c1/pom0000664000175000017500000000000011756543474022017 0ustar ebourgebourgmaven-shade-plugin-1.7.1/rel-path-test-files/a/b/c1/d/0000775000175000017500000000000012236137670021525 5ustar ebourgebourgmaven-shade-plugin-1.7.1/rel-path-test-files/a/b/c/0000775000175000017500000000000012236137670021221 5ustar ebourgebourgmaven-shade-plugin-1.7.1/rel-path-test-files/a/b/c/pom0000664000175000017500000000000011756543474021736 0ustar ebourgebourgmaven-shade-plugin-1.7.1/rel-path-test-files/a/b/c/d1/0000775000175000017500000000000012236137670021525 5ustar ebourgebourgmaven-shade-plugin-1.7.1/rel-path-test-files/a/b/c/d1/pom0000664000175000017500000000000011756543474022242 0ustar ebourgebourgmaven-shade-plugin-1.7.1/rel-path-test-files/a/b/c/d/0000775000175000017500000000000012236137670021444 5ustar ebourgebourgmaven-shade-plugin-1.7.1/rel-path-test-files/a/b/c/d/pom0000664000175000017500000000000011756543474022161 0ustar ebourgebourgmaven-shade-plugin-1.7.1/rel-path-test-files/a/b1/0000775000175000017500000000000012236137670021060 5ustar ebourgebourgmaven-shade-plugin-1.7.1/rel-path-test-files/a/b1/pom0000664000175000017500000000000011756543474021575 0ustar ebourgebourgmaven-shade-plugin-1.7.1/rel-path-test-files/a/b1/c/0000775000175000017500000000000012236137670021302 5ustar ebourgebourgmaven-shade-plugin-1.7.1/rel-path-test-files/a/b1/c/d/0000775000175000017500000000000012236137670021525 5ustar ebourgebourgmaven-shade-plugin-1.7.1/pom.xml0000664000175000017500000001326511772571141016070 0ustar ebourgebourg 4.0.0 maven-plugins org.apache.maven.plugins 22 ../maven-plugins/pom.xml maven-shade-plugin 1.7.1 maven-plugin Maven Shade Plugin Repackages the project classes together with their dependencies into a single uber-jar, optionally renaming classes or removing unused classes. ${mavenVersion} scm:svn:http://svn.apache.org/repos/asf/maven/plugins/tags/maven-shade-plugin-1.7.1 scm:svn:https://svn.apache.org/repos/asf/maven/plugins/tags/maven-shade-plugin-1.7.1 http://svn.apache.org/viewvc/maven/plugins/tags/maven-shade-plugin-1.7.1 jira http://jira.codehaus.org/browse/MSHADE 2.0.6 ${project.version} org.apache.maven maven-plugin-api ${mavenVersion} org.apache.maven maven-model ${mavenVersion} org.apache.maven maven-project ${mavenVersion} org.apache.maven maven-artifact ${mavenVersion} org.codehaus.plexus plexus-container-default 1.0-alpha-9-stable-1 org.codehaus.plexus plexus-utils 1.5.5 asm asm 3.3.1 asm asm-commons 3.3.1 org.jdom jdom 1.1 org.apache.maven.shared maven-dependency-tree 1.1 org.vafer jdependency 0.7 org.codehaus.plexus plexus-component-annotations 1.5.5 junit junit 4.10 test xmlunit xmlunit 1.3 test org.codehaus.plexus plexus-component-metadata 1.5.5 generate-metadata generate-test-metadata run-its org.apache.maven.plugins maven-jar-plugin test-jar org.apache.maven.plugins maven-invoker-plugin clean install