plexus-containers-1.0~beta3.0.7/0000755000175000017500000000000011225200007016400 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-container-default/0000755000175000017500000000000011225200005023320 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-container-default/src/0000755000175000017500000000000011225200004024106 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/0000755000175000017500000000000011225200004024522 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/test-fodder/0000755000175000017500000000000011225200004026742 5ustar twernertwerner././@LongLink0000000000000000000000000000014700000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/test-fodder/component-with-plexus.xml/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/test-fodder/component-with-plexus.xm0000755000175000017500000000000011225200004033577 5ustar twernertwerner././@LongLink0000000000000000000000000000015300000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/test-fodder/component-with-plexus.xml/src/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/test-fodder/component-with-plexus.xm0000755000175000017500000000000011225200004033577 5ustar twernertwerner././@LongLink0000000000000000000000000000016000000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/test-fodder/component-with-plexus.xml/src/main/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/test-fodder/component-with-plexus.xm0000755000175000017500000000000011225200004033577 5ustar twernertwerner././@LongLink0000000000000000000000000000017200000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/test-fodder/component-with-plexus.xml/src/main/resources/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/test-fodder/component-with-plexus.xm0000755000175000017500000000000011225200004033577 5ustar twernertwerner././@LongLink0000000000000000000000000000020300000000000011560 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/test-fodder/component-with-plexus.xml/src/main/resources/META-INF/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/test-fodder/component-with-plexus.xm0000755000175000017500000000000011225200004033577 5ustar twernertwerner././@LongLink0000000000000000000000000000021200000000000011560 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/test-fodder/component-with-plexus.xml/src/main/resources/META-INF/plexus/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/test-fodder/component-with-plexus.xm0000755000175000017500000000000011225200004033577 5ustar twernertwerner././@LongLink0000000000000000000000000000022400000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/test-fodder/component-with-plexus.xml/src/main/resources/META-INF/plexus/plexus.xmlplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/test-fodder/component-with-plexus.xm0000644000175000017500000000037410230754255033626 0ustar twernertwerner org.codehaus.plexus.test.fodder.withplx.TestComponent org.codehaus.plexus.test.fodder.withplx.TestComponentImpl ././@LongLink0000000000000000000000000000016500000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/test-fodder/component-with-plexus.xml/src/main/java/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/test-fodder/component-with-plexus.xm0000755000175000017500000000000011225200004033577 5ustar twernertwerner././@LongLink0000000000000000000000000000017100000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/test-fodder/component-with-plexus.xml/src/main/java/org/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/test-fodder/component-with-plexus.xm0000755000175000017500000000000011225200004033577 5ustar twernertwerner././@LongLink0000000000000000000000000000020200000000000011557 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/test-fodder/component-with-plexus.xml/src/main/java/org/codehaus/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/test-fodder/component-with-plexus.xm0000755000175000017500000000000011225200004033577 5ustar twernertwerner././@LongLink0000000000000000000000000000021100000000000011557 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/test-fodder/component-with-plexus.xml/src/main/java/org/codehaus/plexus/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/test-fodder/component-with-plexus.xm0000755000175000017500000000000011225200004033577 5ustar twernertwerner././@LongLink0000000000000000000000000000021600000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/test-fodder/component-with-plexus.xml/src/main/java/org/codehaus/plexus/test/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/test-fodder/component-with-plexus.xm0000755000175000017500000000000011225200004033577 5ustar twernertwerner././@LongLink0000000000000000000000000000022500000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/test-fodder/component-with-plexus.xml/src/main/java/org/codehaus/plexus/test/fodder/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/test-fodder/component-with-plexus.xm0000755000175000017500000000000011225200004033577 5ustar twernertwerner././@LongLink0000000000000000000000000000023500000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/test-fodder/component-with-plexus.xml/src/main/java/org/codehaus/plexus/test/fodder/withplx/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/test-fodder/component-with-plexus.xm0000755000175000017500000000000011225200004033577 5ustar twernertwerner././@LongLink0000000000000000000000000000025700000000000011571 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/test-fodder/component-with-plexus.xml/src/main/java/org/codehaus/plexus/test/fodder/withplx/TestComponent.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/test-fodder/component-with-plexus.xm0000644000175000017500000000136610230754255033630 0ustar twernertwernerpackage org.codehaus.plexus.test.fodder.withplx; /* * Copyright 2001-2005 The Apache Software Foundation. * * Licensed 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 interface TestComponent { public String testValueOf(String input); } ././@LongLink0000000000000000000000000000026300000000000011566 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/test-fodder/component-with-plexus.xml/src/main/java/org/codehaus/plexus/test/fodder/withplx/TestComponentImpl.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/test-fodder/component-with-plexus.xm0000644000175000017500000000150410230754255033622 0ustar twernertwernerpackage org.codehaus.plexus.test.fodder.withplx; /* * Copyright 2001-2005 The Apache Software Foundation. * * Licensed 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 TestComponentImpl implements TestComponent { public String testValueOf( String input ) { return "output from: " + input; } } ././@LongLink0000000000000000000000000000015600000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/test-fodder/component-with-plexus.xml/pom.xmlplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/test-fodder/component-with-plexus.xm0000644000175000017500000000027310230754255033624 0ustar twernertwerner 4.0.0 plexus plexus-testFodder-componentWithPlexusXml 1.0-SNAPSHOT plexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/plexus-its/0000755000175000017500000000000011225200005026640 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/plexus-its/src/0000755000175000017500000000000011225200004027426 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/plexus-its/src/test/0000755000175000017500000000000011225200004030405 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/plexus-its/src/test/java/0000755000175000017500000000000011225200004031326 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/plexus-its/src/test/java/org/0000755000175000017500000000000011225200004032115 5ustar twernertwerner././@LongLink0000000000000000000000000000014700000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/plexus-its/src/test/java/org/codehaus/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/plexus-its/src/test/java/org/codehau0000755000175000017500000000000011225200004033446 5ustar twernertwerner././@LongLink0000000000000000000000000000015600000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/plexus-its/src/test/java/org/codehaus/plexus/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/plexus-its/src/test/java/org/codehau0000755000175000017500000000000011225200004033446 5ustar twernertwerner././@LongLink0000000000000000000000000000016200000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/plexus-its/src/test/java/org/codehaus/plexus/its/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/plexus-its/src/test/java/org/codehau0000755000175000017500000000000011225200004033446 5ustar twernertwerner././@LongLink0000000000000000000000000000017600000000000011571 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/plexus-its/src/test/java/org/codehaus/plexus/its/AppTest.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/plexus-its/src/test/java/org/codehau0000644000175000017500000000122610722215546033473 0ustar twernertwernerpackage org.codehaus.plexus.its; import org.codehaus.plexus.PlexusTestCase; /** * Unit test for simple DefaultApp. */ public class AppTest extends PlexusTestCase { public void testApp() throws Exception { App app = (App) lookup( App.class.getName(), "standard" ); assertNotNull( app.getContainer() ); assertNotNull( app.getLogger() ); assertEquals( App.class.getName(), app.getLogger().getName() ); App logEnabledApp = (App) lookup( App.class.getName(), "log-enabled" ); assertNotNull( logEnabledApp ); assertEquals( App.class.getName(), app.getLogger().getName() ); } } plexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/plexus-its/src/main/0000755000175000017500000000000011225200004030352 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/plexus-its/src/main/java/0000755000175000017500000000000011225200004031273 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/plexus-its/src/main/java/org/0000755000175000017500000000000011225200004032062 5ustar twernertwerner././@LongLink0000000000000000000000000000014700000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/plexus-its/src/main/java/org/codehaus/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/plexus-its/src/main/java/org/codehau0000755000175000017500000000000011225200004033413 5ustar twernertwerner././@LongLink0000000000000000000000000000015600000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/plexus-its/src/main/java/org/codehaus/plexus/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/plexus-its/src/main/java/org/codehau0000755000175000017500000000000011225200004033413 5ustar twernertwerner././@LongLink0000000000000000000000000000016200000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/plexus-its/src/main/java/org/codehaus/plexus/its/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/plexus-its/src/main/java/org/codehau0000755000175000017500000000000011225200004033413 5ustar twernertwerner././@LongLink0000000000000000000000000000017200000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/plexus-its/src/main/java/org/codehaus/plexus/its/App.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/plexus-its/src/main/java/org/codehau0000644000175000017500000000035510722215546033442 0ustar twernertwernerpackage org.codehaus.plexus.its; import org.codehaus.plexus.PlexusContainer; import org.codehaus.plexus.logging.Logger; /** @author Jason van Zyl */ public interface App { PlexusContainer getContainer(); Logger getLogger(); } ././@LongLink0000000000000000000000000000021300000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/plexus-its/src/main/java/org/codehaus/plexus/its/DefaultLogEnabledApp.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/plexus-its/src/main/java/org/codehau0000644000175000017500000000103310722215546033434 0ustar twernertwernerpackage org.codehaus.plexus.its; import org.codehaus.plexus.PlexusContainer; import org.codehaus.plexus.logging.AbstractLogEnabled; import org.codehaus.plexus.logging.Logger; /** * @plexus.component role-hint="log-enabled" */ public class DefaultLogEnabledApp extends AbstractLogEnabled implements App { /** @plexus.requirement */ private PlexusContainer container; public PlexusContainer getContainer() { return container; } public Logger getLogger() { return getLogger(); } }././@LongLink0000000000000000000000000000020100000000000011556 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/plexus-its/src/main/java/org/codehaus/plexus/its/DefaultApp.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/plexus-its/src/main/java/org/codehau0000644000175000017500000000075710722215546033450 0ustar twernertwernerpackage org.codehaus.plexus.its; import org.codehaus.plexus.PlexusContainer; import org.codehaus.plexus.logging.Logger; /** * @plexus.component role-hint="standard" */ public class DefaultApp implements App { /** @plexus.requirement */ private PlexusContainer container; /** @plexus.requirement */ private Logger logger; public PlexusContainer getContainer() { return container; } public Logger getLogger() { return logger; } } plexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/plexus-its/pom.xml0000644000175000017500000000231410722215546030176 0ustar twernertwerner 4.0.0 org.codehaus.plexus.its plexus-its jar 1.0-SNAPSHOT plexus-its http://maven.apache.org org.codehaus.plexus plexus-container-default 1.0-alpha-41-SNAPSHOT junit junit 3.8.1 test org.codehaus.plexus plexus-maven-plugin 1.3.5 descriptor plexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/multi-plexus.xml/0000755000175000017500000000000011225200004027771 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/multi-plexus.xml/src/0000755000175000017500000000000011225200004030560 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/multi-plexus.xml/src/test/0000755000175000017500000000000011225200004031537 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/multi-plexus.xml/src/test/java/0000755000175000017500000000000011225200004032460 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/multi-plexus.xml/src/test/java/org/0000755000175000017500000000000011225200004033247 5ustar twernertwerner././@LongLink0000000000000000000000000000015500000000000011566 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/multi-plexus.xml/src/test/java/org/codehaus/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/multi-plexus.xml/src/test/java/org/c0000755000175000017500000000000011225200004033412 5ustar twernertwerner././@LongLink0000000000000000000000000000016400000000000011566 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/multi-plexus.xml/src/test/java/org/codehaus/plexus/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/multi-plexus.xml/src/test/java/org/c0000755000175000017500000000000011225200004033412 5ustar twernertwerner././@LongLink0000000000000000000000000000017100000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/multi-plexus.xml/src/test/java/org/codehaus/plexus/test/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/multi-plexus.xml/src/test/java/org/c0000755000175000017500000000000011225200004033412 5ustar twernertwerner././@LongLink0000000000000000000000000000017400000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/multi-plexus.xml/src/test/java/org/codehaus/plexus/test/it/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/multi-plexus.xml/src/test/java/org/c0000755000175000017500000000000011225200004033412 5ustar twernertwerner././@LongLink0000000000000000000000000000020500000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/multi-plexus.xml/src/test/java/org/codehaus/plexus/test/it/multiplx/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/multi-plexus.xml/src/test/java/org/c0000755000175000017500000000000011225200004033412 5ustar twernertwerner././@LongLink0000000000000000000000000000023500000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/multi-plexus.xml/src/test/java/org/codehaus/plexus/test/it/multiplx/ComponentLookupTest.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/multi-plexus.xml/src/test/java/org/c0000644000175000017500000000213410230754255033435 0ustar twernertwernerpackage org.codehaus.plexus.test.it.multiplx; import org.codehaus.plexus.PlexusTestCase; /* * Copyright 2001-2005 The Apache Software Foundation. * * Licensed 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 ComponentLookupTest extends PlexusTestCase { public void testShouldFindComponentFromHereAndComponentFromDependency() throws Exception { Object fromHere = lookup(Component.ROLE); assertNotNull(fromHere); Object fromDependency = lookup("org.codehaus.plexus.test.fodder.withplx.TestComponent"); assertNotNull(fromDependency); } } plexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/multi-plexus.xml/src/main/0000755000175000017500000000000011225200004031504 5ustar twernertwerner././@LongLink0000000000000000000000000000014500000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/multi-plexus.xml/src/main/resources/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/multi-plexus.xml/src/main/resources/0000755000175000017500000000000011225200004033516 5ustar twernertwerner././@LongLink0000000000000000000000000000015600000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/multi-plexus.xml/src/main/resources/META-INF/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/multi-plexus.xml/src/main/resources/0000755000175000017500000000000011225200004033516 5ustar twernertwerner././@LongLink0000000000000000000000000000016500000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/multi-plexus.xml/src/main/resources/META-INF/plexus/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/multi-plexus.xml/src/main/resources/0000755000175000017500000000000011225200004033516 5ustar twernertwerner././@LongLink0000000000000000000000000000017700000000000011572 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/multi-plexus.xml/src/main/resources/META-INF/plexus/plexus.xmlplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/multi-plexus.xml/src/main/resources/0000644000175000017500000000035610230754255033545 0ustar twernertwerner org.codehaus.plexus.test.it.multiplx.Component org.codehaus.plexus.test.it.multiplx.ComponentImpl plexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/multi-plexus.xml/src/main/java/0000755000175000017500000000000011225200004032425 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/multi-plexus.xml/src/main/java/org/0000755000175000017500000000000011225200004033214 5ustar twernertwerner././@LongLink0000000000000000000000000000015500000000000011566 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/multi-plexus.xml/src/main/java/org/codehaus/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/multi-plexus.xml/src/main/java/org/c0000755000175000017500000000000011225200004033357 5ustar twernertwerner././@LongLink0000000000000000000000000000016400000000000011566 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/multi-plexus.xml/src/main/java/org/codehaus/plexus/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/multi-plexus.xml/src/main/java/org/c0000755000175000017500000000000011225200004033357 5ustar twernertwerner././@LongLink0000000000000000000000000000017100000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/multi-plexus.xml/src/main/java/org/codehaus/plexus/test/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/multi-plexus.xml/src/main/java/org/c0000755000175000017500000000000011225200004033357 5ustar twernertwerner././@LongLink0000000000000000000000000000017400000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/multi-plexus.xml/src/main/java/org/codehaus/plexus/test/it/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/multi-plexus.xml/src/main/java/org/c0000755000175000017500000000000011225200004033357 5ustar twernertwerner././@LongLink0000000000000000000000000000020500000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/multi-plexus.xml/src/main/java/org/codehaus/plexus/test/it/multiplx/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/multi-plexus.xml/src/main/java/org/c0000755000175000017500000000000011225200004033357 5ustar twernertwerner././@LongLink0000000000000000000000000000022300000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/multi-plexus.xml/src/main/java/org/codehaus/plexus/test/it/multiplx/Component.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/multi-plexus.xml/src/main/java/org/c0000644000175000017500000000146310230754255033406 0ustar twernertwernerpackage org.codehaus.plexus.test.it.multiplx; /* * Copyright 2001-2005 The Apache Software Foundation. * * Licensed 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 interface Component { public static final String ROLE = Component.class.getName(); public String testValue(String input); } ././@LongLink0000000000000000000000000000022700000000000011566 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/multi-plexus.xml/src/main/java/org/codehaus/plexus/test/it/multiplx/ComponentImpl.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/multi-plexus.xml/src/main/java/org/c0000644000175000017500000000146610230754255033411 0ustar twernertwernerpackage org.codehaus.plexus.test.it.multiplx; /* * Copyright 2001-2005 The Apache Software Foundation. * * Licensed 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 ComponentImpl implements Component { public String testValue( String input ) { return "test using: " + input; } } plexus-containers-1.0~beta3.0.7/plexus-container-default/src/it/multi-plexus.xml/pom.xml0000644000175000017500000000136010230754255031327 0ustar twernertwerner 4.0.0 plexus plexus-integrationTest-multiplePlexusXmls 1.0-SNAPSHOT plexus plexus-testFodder-componentWithPlexusXml 1.0 plexus plexus-container-default 1.0-alpha-3-SNAPSHOT test junit junit 3.8.1 test plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/0000755000175000017500000000000011225200002025063 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/0000755000175000017500000000000011225200002027075 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/0000755000175000017500000000000011225200002027664 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/0000755000175000017500000000000011225200002031457 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/0000755000175000017500000000000011225200002032777 5ustar twernertwerner././@LongLink0000000000000000000000000000014600000000000011566 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/test/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/test0000755000175000017500000000000011225200002033677 5ustar twernertwerner././@LongLink0000000000000000000000000000015200000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/test/map/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/test0000755000175000017500000000000011225200002033677 5ustar twernertwerner././@LongLink0000000000000000000000000000020100000000000011556 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/test/map/NoComponentsMapTest.xmlplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/test0000644000175000017500000000200610161654653033726 0ustar twernertwerner org.codehaus.plexus.logging.console.ConsoleLoggerManager INFO org.codehaus.plexus.test.map.ActivityManager org.codehaus.plexus.test.map.DefaultActivityManager org.codehaus.plexus.test.map.Activity activities ././@LongLink0000000000000000000000000000017500000000000011570 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/test/PlexusContainerTest.xmlplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/test0000644000175000017500000003355611174734034033741 0ustar twernertwerner ${basedir}/src/test-input/configurations-directory org.codehaus.plexus.test.ServiceB org.codehaus.plexus.test.DefaultServiceB org.codehaus.plexus.test.ServiceC first-instance org.codehaus.plexus.test.DefaultServiceC org.codehaus.plexus.test.ServiceC second-instance org.codehaus.plexus.test.DefaultServiceC org.codehaus.plexus.test.ServiceD org.codehaus.plexus.test.DefaultServiceD org.codehaus.plexus.test.ServiceE org.codehaus.plexus.test.DefaultServiceE plexus-configurable org.codehaus.plexus.test.ServiceH org.codehaus.plexus.test.DefaultServiceH arbitrary org.codehaus.plexus.test.LoadOnStartService org.codehaus.plexus.test.DefaultLoadOnStartService org.codehaus.plexus.test.LoadOnStartServiceWithRoleHint role-hint org.codehaus.plexus.test.DefaultLoadOnStartServiceWithRoleHint org.codehaus.plexus.logging.LoggerManager org.codehaus.plexus.logging.console.ConsoleLoggerManager basic fatal org.codehaus.plexus.test.Component org.codehaus.plexus.test.DefaultComponent org.codehaus.plexus.test.map.Activity one localhost 10000 org.codehaus.plexus.test.ComponentA org.codehaus.plexus.test.DefaultComponentA org.codehaus.plexus.test.ComponentB org.codehaus.plexus.test.ComponentC localhost 10000 org.codehaus.plexus.test.ComponentB org.codehaus.plexus.test.DefaultComponentB org.codehaus.plexus.test.ComponentC org.codehaus.plexus.test.DefaultComponentC org.codehaus.plexus.test.ComponentD org.codehaus.plexus.test.ComponentD org.codehaus.plexus.test.DefaultComponentD jason org.codehaus.plexus.test.map.ActivityManager org.codehaus.plexus.test.map.DefaultActivityManager org.codehaus.plexus.test.map.Activity activities org.codehaus.plexus.test.map.ActivityManager slim org.codehaus.plexus.test.map.DefaultActivityManager org.codehaus.plexus.test.map.Activity activities one org.codehaus.plexus.test.map.Activity one org.codehaus.plexus.test.map.ActivityOne org.codehaus.plexus.test.map.Activity two org.codehaus.plexus.test.map.ActivityTwo org.codehaus.plexus.test.list.Pipeline default org.codehaus.plexus.test.list.DefaultPipeline org.codehaus.plexus.test.list.Valve valves org.codehaus.plexus.test.list.Pipeline slim org.codehaus.plexus.test.list.DefaultPipeline org.codehaus.plexus.test.list.Valve valves one org.codehaus.plexus.test.list.Pipeline chubby org.codehaus.plexus.test.list.DefaultPipeline org.codehaus.plexus.test.list.Valve valveMap one two three four org.codehaus.plexus.test.list.Valve four org.codehaus.plexus.test.list.ValveFour org.codehaus.plexus.test.list.Valve three org.codehaus.plexus.test.list.ValveThree org.codehaus.plexus.test.list.Valve two org.codehaus.plexus.test.list.ValveTwo org.codehaus.plexus.test.list.Valve one org.codehaus.plexus.test.list.ValveOne org.codehaus.plexus.logging.LoggerManager org.codehaus.plexus.logging.console.ConsoleLoggerManager basic fatal org.codehaus.plexus.test.Component ComponentMissingRequirements org.codehaus.plexus.test.DefaultComponent NonExistingComponent org.codehaus.plexus.test.StartableComponent A-snake org.codehaus.plexus.test.DefaultStartableComponentA org.codehaus.plexus.test.StartableComponent B-snake component1 org.codehaus.plexus.test.StartableComponent B-snake org.codehaus.plexus.test.DefaultStartableComponentB org.codehaus.plexus.test.StartableComponent C-snake component1 org.codehaus.plexus.test.StartableComponent C-snake org.codehaus.plexus.test.DefaultStartableComponentC org.codehaus.plexus.test.StartableComponent D-snake component1 org.codehaus.plexus.test.StartableComponent D-snake org.codehaus.plexus.test.DefaultStartableComponentD org.codehaus.plexus.test.StartableComponent E-snake component1 org.codehaus.plexus.test.StartableComponent E-snake org.codehaus.plexus.test.DefaultStartableComponentE org.codehaus.plexus.test.StartableComponent A-tree org.codehaus.plexus.test.DefaultStartableComponentA org.codehaus.plexus.test.StartableComponent B-tree component1 org.codehaus.plexus.test.StartableComponent C-tree component2 org.codehaus.plexus.test.StartableComponent B-tree org.codehaus.plexus.test.DefaultStartableComponentB org.codehaus.plexus.test.StartableComponent D-tree component1 org.codehaus.plexus.test.StartableComponent E-tree component2 org.codehaus.plexus.test.StartableComponent C-tree org.codehaus.plexus.test.DefaultStartableComponentC org.codehaus.plexus.test.StartableComponent D-tree org.codehaus.plexus.test.DefaultStartableComponentD org.codehaus.plexus.test.StartableComponent E-tree org.codehaus.plexus.test.DefaultStartableComponentE org.codehaus.plexus.test.CircularComponent A org.codehaus.plexus.test.DefaultCircularComponent org.codehaus.plexus.test.CircularComponent B requirement org.codehaus.plexus.test.CircularComponent B org.codehaus.plexus.test.DefaultCircularComponent org.codehaus.plexus.PlexusContainer container A ././@LongLink0000000000000000000000000000014700000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/embed/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/embe0000755000175000017500000000000011225200002033630 5ustar twernertwerner././@LongLink0000000000000000000000000000016700000000000011571 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/embed/EmbedderTest.xmlplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/embe0000644000175000017500000000103410240016672033646 0ustar twernertwerner ${basedir}/test-input org.codehaus.plexus.embed.MockComponent default org.codehaus.plexus.embed.MockComponent org.codehaus.plexus.embed.MockComponent foo org.codehaus.plexus.embed.MockComponent ././@LongLink0000000000000000000000000000015100000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/logging/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/logg0000755000175000017500000000000011225200002033650 5ustar twernertwerner././@LongLink0000000000000000000000000000016100000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/logging/console/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/logg0000755000175000017500000000000011225200002033650 5ustar twernertwerner././@LongLink0000000000000000000000000000021500000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/logging/console/ConsoleLoggerManagerTest.xmlplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/logg0000644000175000017500000000111010161654653033672 0ustar twernertwerner org.codehaus.plexus.logging.LoggerManager org.codehaus.plexus.logging.console.ConsoleLoggerManager basic per-lookup fatal ././@LongLink0000000000000000000000000000020400000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/logging/CustomLoggerManagerTest.xmlplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/logg0000644000175000017500000000034510707270644033703 0ustar twernertwerner org.codehaus.plexus.logging.LoggerManager org.codehaus.plexus.logging.MockLoggerManager ././@LongLink0000000000000000000000000000016700000000000011571 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/PlexusTestCaseTest.xmlplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/Plex0000644000175000017500000000056210167024450033654 0ustar twernertwerner org.codehaus.plexus.test.LoadOnStartService org.codehaus.plexus.test.LoadOnStartService org.codehaus.plexus.test.DefaultLoadOnStartService ././@LongLink0000000000000000000000000000015700000000000011570 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/configuration/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/conf0000755000175000017500000000000011225200002033645 5ustar twernertwerner././@LongLink0000000000000000000000000000016600000000000011570 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/configuration/source/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/conf0000755000175000017500000000000011225200002033645 5ustar twernertwerner././@LongLink0000000000000000000000000000023200000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/configuration/source/ExtendingConfigurationSourceTest.xmlplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/conf0000644000175000017500000000137510777725005033707 0ustar twernertwerner org.codehaus.plexus.configuration.source.ConfigurationSource dummy org.codehaus.plexus.configuration.source.ADummyConfigurationSource org.codehaus.plexus.configuration.source.ConfigurationSource anotherDummy org.codehaus.plexus.configuration.source.AnotherDummyConfigurationSource org.codehaus.plexus.configuration.source.ConfigurationSource dummy ././@LongLink0000000000000000000000000000023300000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/configuration/source/OverridingConfigurationSourceTest.xmlplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/conf0000644000175000017500000000046110777725005033702 0ustar twernertwerner org.codehaus.plexus.configuration.source.ConfigurationSource default org.codehaus.plexus.configuration.source.ADummyConfigurationSource ././@LongLink0000000000000000000000000000017100000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/configuration/avalon.xmlplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/conf0000644000175000017500000001420511076044375033700 0ustar twernertwerner ${foo.home}/jars ${my.home}/resources user-conf-dir logging-implementation INFO org.codehaus.plexus.personality.avalon.AvalonComponentRepository frankie custom custom avalon avalon Avalon Lifecycle Handler org.codehaus.plexus.ServiceA org.codehaus.plexus.DefaultServiceA org.codehaus.plexus.ServiceB org.codehaus.plexus.DefaultServiceB org.codehaus.plexus.ServiceC first-instance org.codehaus.plexus.DefaultServiceC org.codehaus.plexus.ServiceC second-instance org.codehaus.plexus.DefaultServiceC org.codehaus.plexus.ServiceE org.codehaus.plexus.DefaultServiceE per-lookup org.codehaus.plexus.ServiceG org.codehaus.plexus.DefaultServiceG singleton org.codehaus.plexus.ServiceH org.codehaus.plexus.DefaultServiceH arbitrary org.codehaus.plexus.LoadOnStartService org.codehaus.plexus.DefaultLoadOnStartService org.codehaus.plexus.LoadOnStartServiceWithRoleHint role-hint org.codehaus.plexus.DefaultLoadOnStartServiceWithRoleHint org.codehaus.plexus.ConfigureService org.codehaus.plexus.DefaultConfigureService singleton 1 2 ././@LongLink0000000000000000000000000000015300000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/hierarchy/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/hier0000755000175000017500000000000011225200002033647 5ustar twernertwerner././@LongLink0000000000000000000000000000017500000000000011570 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/hierarchy/ChildPlexusTwo.xmlplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/hier0000644000175000017500000000157510317361503033700 0ustar twernertwerner org.codehaus.plexus.logging.console.ConsoleLoggerManager ERROR org.codehaus.plexus.hierarchy.PlexusTestService default org.codehaus.plexus.hierarchy.TestServiceImpl see how they run org.codehaus.plexus.hierarchy.PlexusTestService local org.codehaus.plexus.hierarchy.TestServiceImpl plexus two local service ././@LongLink0000000000000000000000000000017500000000000011570 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/hierarchy/ChildPlexusOne.xmlplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/hier0000644000175000017500000000232010317361503033665 0ustar twernertwerner org.codehaus.plexus.logging.console.ConsoleLoggerManager ERROR org.codehaus.plexus.hierarchy.PlexusTestService default org.codehaus.plexus.hierarchy.TestServiceImpl three blind mice org.codehaus.plexus.hierarchy.PlexusTestService hinted org.codehaus.plexus.hierarchy.TestServiceImpl plexus one overriding hinted service org.codehaus.plexus.hierarchy.PlexusTestService local org.codehaus.plexus.hierarchy.TestServiceImpl plexus one local service ././@LongLink0000000000000000000000000000020200000000000011557 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/hierarchy/PlexusHierarchyTest.xmlplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/hier0000644000175000017500000000434310317361503033674 0ustar twernertwerner org.codehaus.plexus.logging.console.ConsoleLoggerManager ERROR org.codehaus.plexus.PlexusContainerManager default org.codehaus.plexus.SimplePlexusContainerManager org/codehaus/plexus/hierarchy/ChildPlexusOne.xml plexus-name ChildPlexusOne org.codehaus.plexus.PlexusContainerManager two org.codehaus.plexus.SimplePlexusContainerManager org/codehaus/plexus/hierarchy/ChildPlexusTwo.xml plexus-name ChildPlexusTwo org.codehaus.plexus.hierarchy.PlexusTestService default org.codehaus.plexus.hierarchy.TestServiceImpl cheesy default service org.codehaus.plexus.hierarchy.PlexusTestService hinted org.codehaus.plexus.hierarchy.TestServiceImpl hinted default service org.codehaus.plexus.hierarchy.PlexusTestService global org.codehaus.plexus.hierarchy.TestServiceImpl globally visible service ././@LongLink0000000000000000000000000000015300000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/component/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/comp0000755000175000017500000000000011225200002033656 5ustar twernertwerner././@LongLink0000000000000000000000000000016300000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/component/manager/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/comp0000755000175000017500000000000011225200002033656 5ustar twernertwerner././@LongLink0000000000000000000000000000023300000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/component/manager/ClassicSingletonComponentManagerTest.xmlplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/comp0000644000175000017500000000040110605506607033700 0ustar twernertwerner org.codehaus.plexus.component.manager.Component org.codehaus.plexus.component.manager.DefaultComponent ././@LongLink0000000000000000000000000000025000000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/component/manager/SlowComponentClassicSingletonComponentManagerTest.xmlplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/comp0000644000175000017500000000051210572064100033671 0ustar twernertwerner org.codehaus.plexus.component.manager.SlowComponent org.codehaus.plexus.component.manager.SlowComponent 300 ././@LongLink0000000000000000000000000000016300000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/component/factory/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/comp0000755000175000017500000000000011225200002033656 5ustar twernertwerner././@LongLink0000000000000000000000000000017300000000000011566 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/component/factory/nonjava/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/comp0000755000175000017500000000000011225200002033656 5ustar twernertwerner././@LongLink0000000000000000000000000000023200000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/component/factory/nonjava/NonJavaComponentFactoryTest.xmlplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/comp0000644000175000017500000000045610707173075033714 0ustar twernertwerner org.codehaus.plexus.component.factory.ComponentFactory nonjava org.codehaus.plexus.component.factory.nonjava.NonJavaComponentFactory ././@LongLink0000000000000000000000000000016700000000000011571 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/component/composition/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/comp0000755000175000017500000000000011225200002033656 5ustar twernertwerner././@LongLink0000000000000000000000000000020000000000000011555 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/component/composition/autowire/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/comp0000755000175000017500000000000011225200002033656 5ustar twernertwerner././@LongLink0000000000000000000000000000023300000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/component/composition/autowire/AutowireCompositionTest.xmlplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/comp0000644000175000017500000000072110374724654033714 0ustar twernertwerner org.codehaus.plexus.component.composition.autowire.One org.codehaus.plexus.component.composition.autowire.DefaultOne org.codehaus.plexus.component.composition.autowire.Two org.codehaus.plexus.component.composition.autowire.DefaultTwo ././@LongLink0000000000000000000000000000017600000000000011571 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/component/composition/setter/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/comp0000755000175000017500000000000011225200002033656 5ustar twernertwerner././@LongLink0000000000000000000000000000022700000000000011566 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/component/composition/setter/SetterCompositionTest.xmlplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/comp0000644000175000017500000000176210471211014033675 0ustar twernertwerner org.codehaus.plexus.component.composition.setter.Component org.codehaus.plexus.component.composition.setter.ChildComponent setter org.codehaus.plexus.component.composition.ComponentA org.codehaus.plexus.component.composition.ComponentB org.codehaus.plexus.component.composition.ComponentA org.codehaus.plexus.component.composition.DefaultComponentA org.codehaus.plexus.component.composition.ComponentB org.codehaus.plexus.component.composition.DefaultComponentB ././@LongLink0000000000000000000000000000020500000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/component/composition/components.xmlplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/comp0000644000175000017500000000423610161654653033714 0ustar twernertwerner org.codehaus.plexus.component.composition.ComponentA org.codehaus.plexus.component.composition.DefaultComponentA field org.codehaus.plexus.component.composition.ComponentB localhost 10000 org.codehaus.plexus.component.composition.ComponentB org.codehaus.plexus.component.composition.DefaultComponentB setter org.codehaus.plexus.component.composition.ComponentC org.codehaus.plexus.component.composition.ComponentC org.codehaus.plexus.component.composition.DefaultComponentC ././@LongLink0000000000000000000000000000015700000000000011570 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/components.xmlplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/org/codehaus/plexus/comp0000644000175000017500000000072610605506607033712 0ustar twernertwerner org.codehaus.plexus.test.ComponentA one org.codehaus.plexus.test.DefaultComponentA org.codehaus.plexus.test.ComponentA two org.codehaus.plexus.test.DefaultComponentA ././@LongLink0000000000000000000000000000015400000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/inline-configuration.propertiesplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/inline-configuration.pro0000644000175000017500000000004410605506607033765 0ustar twernertwernerfirst-name=andrew last-name=williamsplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/test.txt0000644000175000017500000000001610161654653030641 0ustar twernertwernerThis is a testplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/META-INF/0000755000175000017500000000000011225200002030235 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/META-INF/plexus/0000755000175000017500000000000011225200002031555 5ustar twernertwerner././@LongLink0000000000000000000000000000015300000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/META-INF/plexus/components.xmlplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/META-INF/plexus/componen0000644000175000017500000000127610227633245033350 0ustar twernertwerner org.codehaus.plexus.component.discovery.DiscoveredComponent org.codehaus.plexus.component.discovery.DefaultDiscoveredComponent org.codehaus.plexus.component.factory.ComponentFactory testFactory2 org.codehaus.plexus.component.factory.TestComponentFactory2 plexus monkey 1.0 ././@LongLink0000000000000000000000000000014700000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/META-INF/plexus/plexus.xmlplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/META-INF/plexus/plexus.x0000644000175000017500000000074510665553643033331 0ustar twernertwerner org.codehaus.plexus.component.factory.ComponentFactory testFactory1 org.codehaus.plexus.component.factory.TestComponentFactory1 org.codehaus.plexus.test.CountInstancesComponent org.codehaus.plexus.test.CountInstancesComponent ././@LongLink0000000000000000000000000000014500000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/inline-configuration.xmlplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/inline-configuration.xml0000644000175000017500000000012410161654653033766 0ustar twernertwerner jason van zyl plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/jar-repository/0000755000175000017500000000000011225200002032066 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/jar-repository/d.jar0000644000175000017500000000131610161654653033037 0ustar twernertwernerPK @‚;/ META-INF/PK=‚;/META-INF/MANIFEST.MFóMÌËLK-.Ñ K-*ÎÌϳR0Ô3àårÌCq,HLÎHUŠ%MõŒx¹œ‹RKRSt*ALô ã Œt“ Ì4‚Kó|3“‹ò‹+‹KRs‹<ó’õ4y¹x¹PK—Ñ|2_kPK =‚;/d/PK=‚;/ d/D.class-Ž=‚@…ß ?Š(ÄØ©ÄZc£±"ZhèÜè„Ñ{Y™XxeЙäeß›o6óþ<_|x6ZèYè[p æ\åªZZ£qDЗÅAÜPårs=Dz܋8ãd‰È"QªÚÿC½:© ÁÁjF°wŵLäZÕ3så§â&è0øw&^™ÈÁ6NeRa¯©‹¸e5ÙŒÉt燋ÕlÂ)Ú¬Î@v³Þm(ç PKDó¹èPK @‚;/ íAMETA-INF/PK=‚;/—Ñ|2_k¤'META-INF/MANIFEST.MFPK =‚;/íAÈd/PK=‚;/Dó¹è ¤èd/D.classPKàØplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/jar-repository/c.jar0000644000175000017500000000132210161654653033033 0ustar twernertwernerPK @‚;/ META-INF/PK=‚;/META-INF/MANIFEST.MFóMÌËLK-.Ñ K-*ÎÌϳR0Ô3àårÌCq,HLÎHUŠ%MõŒx¹œ‹RKRSt*ALô ã Œt“ Ì4‚Kó|3“‹ò‹+‹KRs‹<ó’õ4y¹x¹PK—Ñ|2_kPK =‚;/c/PK=‚;/ c/C.class-ŽÍÁP…ÏЪT¼íBØ›&V b[7\©6©Ö{YI,<€‡s1“ÌÌ9óe2¯÷ã ÀG×AmÁš«L• B}0ÜŒ0ßK‚©L®ªs,‹­ˆSvzQžˆt' ¥õß4Ê£ºÌ( ÂÁÙäU‘È¥Ò;+ôOâ*\0ù:„®v‚Td‡`ŸdR¢£ƒ8åj±5`Žî 5Ø\îÀ„Á)<¹?MÞè­/é~PKli‹½ìPK @‚;/ íAMETA-INF/PK=‚;/—Ñ|2_k¤'META-INF/MANIFEST.MFPK =‚;/íAÈc/PK=‚;/li‹½ì ¤èc/C.classPKàÜplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/jar-repository/a.jar0000644000175000017500000000173610161654653033042 0ustar twernertwernerPK @‚;/ META-INF/PK=‚;/META-INF/MANIFEST.MFóMÌËLK-.Ñ K-*ÎÌϳR0Ô3àårÌCq,HLÎHUŠ%MõŒx¹œ‹RKRSt*ALô ã Œt“ Ì4‚Kó|3“‹ò‹+‹KRs‹<ó’õ4y¹x¹PK—Ñ|2_kPK =‚;/a/PK=‚;/ a/A.classmQËJ1=éc¦3޶¶¶¾u5u1ƒ uQŠàjP¡Ò«´†š2I§‚Ÿ¥ ~€%ÞL Uh÷pONιI¾>¿x8´a`ÍBÖml`ÓÄ–‰mã\Æ2½`È»­Cá2y å@Æâzõ…ºãý˜j xØãJê~FÒG9f(Üï´©¸Œî}0âÏÜy<ô»©’ñ°™s5$ymÁ6ƒÝM&j ®¤66:ž–80Q2±ã`{$éxÜÓnËľƒ4inÊf¨Ìoú#1HÿQÝ—q*"Ò ¥êÓx™ø·”Ò‚G4AmÍ`>é.¤{ÕÝE×BEz]½r`z`ªu>!#,}€½fÛ6U##±DÕ™ — -¬ <;|–™÷†\5ÿŽÂÜÀ&N(çô‰… V é§2eíPKäÊæFýPKùPþ. a.propertiesKT((Ê/H-*ÉL-æPKü½÷˜ PK @‚;/ íAMETA-INF/PK=‚;/—Ñ|2_k¤'META-INF/MANIFEST.MFPK =‚;/íAÈa/PK=‚;/äÊæFý ¤èa/A.classPKùPþ.ü½÷˜ ¤ea.propertiesPK®plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/jar-repository/b.jar0000644000175000017500000000146410161654653033041 0ustar twernertwernerPK @‚;/ META-INF/PK=‚;/META-INF/MANIFEST.MFóMÌËLK-.Ñ K-*ÎÌϳR0Ô3àårÌCq,HLÎHUŠ%MõŒx¹œ‹RKRSt*ALô ã Œt“ Ì4‚Kó|3“‹ò‹+‹KRs‹<ó’õ4y¹x¹PK—Ñ|2_kPK =‚;/b/PK=‚;/ b/B.classQ»NÃ0=·ÍBÒBw¤ÂP¨)C+1E0•ÉI£ÔUšHN ßÅ„ÄÀðQˆk© x¸Ïsν¶?¿Þ? Ð ÐD×DZ‚7R…ªoÍþùŒàLÊyJ8ŒT‘Þ­Wqªdœs¥•‰ÌgR+“ÿz¡*‚Åbrº’ª „ý§h)Ÿ¥Èe‘‰i­U‘…Q©3‘°øB®+‘䲪^JÏ+11ñ£‰C»ÔkvÿÐ ["áì_šLš–k¤·Ê¬ìF·._š'´·“îãešÔ8EƒÉœÈ@Ùzœ]²'öîÅèÕ¶}¶{àŠ×Øá¨µa—;`»g+F`h9øMö,xd‰½Mû8°Óù'ж3,¾ó PKd4©ÆPK @‚;/ íAMETA-INF/PK=‚;/—Ñ|2_k¤'META-INF/MANIFEST.MFPK =‚;/íAÈb/PK=‚;/d4©Æ ¤èb/B.classPKà>plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/application/0000755000175000017500000000000011225200002031400 5ustar twernertwerner././@LongLink0000000000000000000000000000014500000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/application/sentinel.xmlplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/application/sentinel.xml0000644000175000017500000000103710572064100033757 0ustar twernertwerner 8080 localhost Santa Claus santa@northpole.com email Email irc Irc one one one ././@LongLink0000000000000000000000000000016200000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/application/configuration-mapping.xmlplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/application/configuratio0000644000175000017500000000233710572064100034034 0ustar twernertwerner 8080 localhost Santa Claus santa@northpole.com email Email irc Irc one one one ././@LongLink0000000000000000000000000000014700000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/application/components.xmlplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/resources/application/components.x0000644000175000017500000000231410572064100033771 0ustar twernertwerner server two three four one two three plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/0000755000175000017500000000000011225177777026044 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/0000755000175000017500000000000011225177777026633 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/0000755000175000017500000000000011225177777030426 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/0000755000175000017500000000000011225200001031705 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/0000755000175000017500000000000011225200000032663 5ustar twernertwerner././@LongLink0000000000000000000000000000016700000000000011571 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/DefaultComponentA.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/Defa0000644000175000017500000000253510531217373033476 0ustar twernertwernerpackage org.codehaus.plexus.test; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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. */ /** * @component.role org.codehaus.plexus.test.ComponentA * @component.requirement org.codehaus.plexus.test.ComponentB * @component.requirement org.codehaus.plexus.test.ComponentC * @component.version 1.0 */ public class DefaultComponentA implements ComponentA { private ComponentB componentB; private ComponentC componentC; /** @default localhost */ private String host; /** @default 10000 */ private int port; public ComponentB getComponentB() { return componentB; } public ComponentC getComponentC() { return componentC; } public String getHost() { return host; } public int getPort() { return port; } } ././@LongLink0000000000000000000000000000017500000000000011570 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/CountInstancesComponent.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/Coun0000644000175000017500000000217410665553643033555 0ustar twernertwernerpackage org.codehaus.plexus.test; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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. */ /** * Component counts number of created instances of it. * * @author Piotr Tabor */ public class CountInstancesComponent { public static String ROLE = CountInstancesComponent.class.getName(); private static int instances = 0; public CountInstancesComponent() { instances++; } public static void reset() { instances = 0; } public static int getInstancesCount() { return instances; } } ././@LongLink0000000000000000000000000000017700000000000011572 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/DefaultLoadOnStartService.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/Defa0000644000175000017500000000206610722311152033465 0ustar twernertwernerpackage org.codehaus.plexus.test; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.personality.plexus.lifecycle.phase.Startable; /** * * * @author Jason van Zyl * * @version $Id: DefaultLoadOnStartService.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public class DefaultLoadOnStartService implements LoadOnStartService, Startable { public static boolean isStarted = false; public void start() { isStarted = true; } public void stop() { } } ././@LongLink0000000000000000000000000000015600000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/ServiceC.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/Serv0000644000175000017500000000132710531217373033554 0ustar twernertwernerpackage org.codehaus.plexus.test; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 interface ServiceC { static String ROLE = ServiceC.class.getName(); } ././@LongLink0000000000000000000000000000016500000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/DefaultServiceB.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/Defa0000644000175000017500000000340610531215552033471 0ustar twernertwernerpackage org.codehaus.plexus.test; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.context.Context; import org.codehaus.plexus.context.ContextException; import org.codehaus.plexus.logging.AbstractLogEnabled; import org.codehaus.plexus.logging.Logger; import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable; import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable; import org.codehaus.plexus.personality.plexus.lifecycle.phase.Startable; /** * A simple native plexus component. */ public class DefaultServiceB extends AbstractLogEnabled implements ServiceB, Contextualizable, Initializable, Startable { public boolean enableLogging; public boolean contextualize; public boolean initialize; public boolean start; public boolean stop; public void enableLogging( Logger logger ) { enableLogging = true; } public void contextualize( Context context ) throws ContextException { contextualize = true; } public void initialize() { initialize = true; } public void start() { start = true; } public void stop() { stop = true; } } ././@LongLink0000000000000000000000000000015600000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/ServiceB.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/Serv0000644000175000017500000000132710531217373033554 0ustar twernertwernerpackage org.codehaus.plexus.test; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 interface ServiceB { static String ROLE = ServiceB.class.getName(); } ././@LongLink0000000000000000000000000000016000000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/ComponentD.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/Comp0000644000175000017500000000136210531217373033532 0ustar twernertwernerpackage org.codehaus.plexus.test; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 interface ComponentD { static String ROLE = ComponentD.class.getName(); String getName(); } ././@LongLink0000000000000000000000000000016500000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/DefaultServiceD.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/Defa0000644000175000017500000000130010531215552033460 0ustar twernertwernerpackage org.codehaus.plexus.test; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 DefaultServiceD implements ServiceD { } ././@LongLink0000000000000000000000000000016500000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/DefaultServiceE.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/Defa0000644000175000017500000000355611076046227033505 0ustar twernertwernerpackage org.codehaus.plexus.test; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.context.Context; import org.codehaus.plexus.context.ContextException; import org.codehaus.plexus.logging.AbstractLogEnabled; import org.codehaus.plexus.logging.Logger; import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable; import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable; import org.codehaus.plexus.personality.plexus.lifecycle.phase.Startable; /** * A simple native plexus component implementing the manual configuration phase. */ public class DefaultServiceE extends AbstractLogEnabled implements ServiceE, Contextualizable, Initializable, Startable { public boolean enableLogging; public boolean configured; public boolean contextualize; public boolean initialize; public boolean start; public boolean stop; public boolean serviced; public void enableLogging( Logger logger ) { enableLogging = true; } public void contextualize( Context context ) throws ContextException { contextualize = true; } public void initialize() { initialize = true; } public void start() { start = true; } public void stop() { stop = true; } } ././@LongLink0000000000000000000000000000016700000000000011571 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/DefaultComponentD.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/Defa0000644000175000017500000000143210531217373033471 0ustar twernertwernerpackage org.codehaus.plexus.test; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 DefaultComponentD implements ComponentD { private String name; public String getName() { return name; } } ././@LongLink0000000000000000000000000000016000000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/ComponentC.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/Comp0000644000175000017500000000137410531217373033535 0ustar twernertwernerpackage org.codehaus.plexus.test; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 interface ComponentC { static String ROLE = ComponentC.class.getName(); ComponentD getComponentD(); } ././@LongLink0000000000000000000000000000017100000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/PlexusContainerTest.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/Plex0000644000175000017500000003436411135475677033572 0ustar twernertwernerpackage org.codehaus.plexus.test; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.ContainerConfiguration; import org.codehaus.plexus.DefaultContainerConfiguration; import org.codehaus.plexus.DefaultPlexusContainer; import org.codehaus.plexus.component.discovery.DiscoveredComponent; import org.codehaus.plexus.component.repository.exception.ComponentLookupException; import org.codehaus.plexus.lifecycle.BasicLifecycleHandler; import org.codehaus.plexus.lifecycle.LifecycleHandler; import org.codehaus.plexus.test.lifecycle.phase.EenyPhase; import org.codehaus.plexus.test.lifecycle.phase.MeenyPhase; import org.codehaus.plexus.test.lifecycle.phase.MinyPhase; import org.codehaus.plexus.test.lifecycle.phase.MoPhase; import org.codehaus.plexus.test.list.Pipeline; import org.codehaus.plexus.test.list.Valve; import org.codehaus.plexus.test.list.ValveFour; import org.codehaus.plexus.test.list.ValveOne; import org.codehaus.plexus.test.list.ValveThree; import org.codehaus.plexus.test.list.ValveTwo; import org.codehaus.plexus.test.map.Activity; import org.codehaus.plexus.test.map.ActivityManager; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class PlexusContainerTest extends TestCase { private String basedir; private ClassLoader classLoader; private String configuration; private DefaultPlexusContainer container; public PlexusContainerTest( String name ) { super( name ); } public void setUp() throws Exception { basedir = System.getProperty( "basedir" ); classLoader = getClass().getClassLoader(); configuration = "/" + getClass().getName().replace( '.', '/' ) + ".xml"; assertNotNull( classLoader ); // ---------------------------------------------------------------------------- // Context // ---------------------------------------------------------------------------- Map context = new HashMap(); context.put( "basedir", basedir ); context.put( "plexus.home", basedir + "/target/plexus-home" ); LifecycleHandler arbitrary = new BasicLifecycleHandler( "arbitrary" ); arbitrary.addBeginSegment( new EenyPhase() ); arbitrary.addBeginSegment( new MeenyPhase() ); arbitrary.addBeginSegment( new MinyPhase() ); arbitrary.addBeginSegment( new MoPhase() ); ContainerConfiguration containerConfiguration = new DefaultContainerConfiguration() .setName( "test" ) .setContext( context ) .setContainerConfiguration( configuration ) .addLifecycleHandler( arbitrary ); container = new DefaultPlexusContainer( containerConfiguration ); } public void tearDown() throws Exception { container.dispose(); container = null; } public void testDefaultPlexusContainerSetup() throws Exception { assertEquals( "bar", System.getProperty( "foo" ) ); } // ---------------------------------------------------------------------- // Test the native plexus lifecycle. Note that the configuration for // this TestCase supplies its own lifecycle, so this test verifies that // the native lifecycle is available after configuration merging. // ---------------------------------------------------------------------- public void testNativeLifecyclePassage() throws Exception { DefaultServiceB serviceB = (DefaultServiceB) container.lookup( ServiceB.class ); // Make sure the component is alive. assertNotNull( serviceB ); // Make sure the component went through all the lifecycle phases assertEquals( true, serviceB.enableLogging ); assertEquals( true, serviceB.contextualize ); assertEquals( true, serviceB.initialize ); assertEquals( true, serviceB.start ); assertEquals( false, serviceB.stop ); container.release( serviceB ); assertEquals( true, serviceB.stop ); } public void testConfigurableLifecyclePassage() throws Exception { DefaultServiceE serviceE = (DefaultServiceE) container.lookup( ServiceE.class ); // Make sure the component is alive. assertNotNull( serviceE ); // Make sure the component went through all the lifecycle phases assertEquals( true, serviceE.enableLogging ); assertEquals( true, serviceE.contextualize ); assertEquals( true, serviceE.initialize ); assertEquals( true, serviceE.start ); assertEquals( false, serviceE.stop ); container.release( serviceE ); assertEquals( true, serviceE.stop ); } /* * Check that we can get references to a single component with a role * hint. */ public void testSingleComponentLookupWithRoleHint() throws Exception { // Retrieve an instance of component c. DefaultServiceC serviceC1 = (DefaultServiceC) container.lookup( ServiceC.class, "first-instance" ); // Make sure the component is alive. assertNotNull( serviceC1 ); assertTrue( serviceC1.started ); assertFalse( serviceC1.stopped ); // Retrieve a second reference to the same component. DefaultServiceC serviceC2 = (DefaultServiceC) container.lookup( ServiceC.class, "first-instance" ); // Make sure component is alive. assertNotNull( serviceC2 ); assertTrue( serviceC2.started ); assertFalse( serviceC2.stopped ); // Let's make sure it gave us back the same component. assertSame( serviceC1, serviceC2 ); container.release( serviceC1 ); // The component should still be alive. assertTrue( serviceC2.started ); assertTrue( serviceC2.stopped ); container.release( serviceC2 ); // The component should now have been stopped. assertTrue( serviceC2.started ); assertTrue( serviceC2.stopped ); } /* * Check that distinct components with the same implementation are managed correctly. */ public void testMultipleSingletonComponentInstances() throws Exception { // Retrieve an instance of component c. DefaultServiceC serviceC1 = (DefaultServiceC) container.lookup( ServiceC.class, "first-instance" ); // Make sure the component is alive. assertNotNull( serviceC1 ); assertTrue( serviceC1.started ); assertFalse( serviceC1.stopped ); // Retrieve an instance of component c, with a different role hint. // This should give us a different component instance. DefaultServiceC serviceC2 = (DefaultServiceC) container.lookup( ServiceC.class, "second-instance" ); // Make sure component is alive. assertNotNull( serviceC2 ); assertTrue( serviceC2.started ); assertFalse( serviceC2.stopped ); // The components should be distinct. assertNotSame( serviceC1, serviceC2 ); container.release( serviceC1 ); // The first component should now have been stopped, the second // one should still be alive. assertTrue( serviceC1.started ); assertTrue( serviceC1.stopped ); assertTrue( serviceC2.started ); assertFalse( serviceC2.stopped ); container.release( serviceC2 ); // The second component should now have been stopped. assertTrue( serviceC2.started ); assertTrue( serviceC2.stopped ); } // ---------------------------------------------------------------------- // Test using an arbitrary component lifecycle handler // ---------------------------------------------------------------------- public void testArbitraryLifecyclePassageUsingFourArbitraryPhases() throws Exception { // Retrieve an manager of component H. DefaultServiceH serviceH = (DefaultServiceH) container.lookup( ServiceH.class ); // Make sure the component is alive. assertNotNull( serviceH ); // Make sure the component went through all the lifecycle phases assertEquals( true, serviceH.eeny ); assertEquals( true, serviceH.meeny ); assertEquals( true, serviceH.miny ); assertEquals( true, serviceH.mo ); container.release( serviceH ); } public void testLookupAll() throws Exception { Map components = container.lookupMap( ServiceC.class ); assertNotNull( components ); assertEquals( 2, components.size() ); ServiceC component = components.get( "first-instance" ); assertNotNull( component ); component = components.get( "second-instance" ); assertNotNull( component ); container.releaseAll( components ); } public void testAutomatedComponentConfigurationUsingXStreamPoweredComponentConfigurator() throws Exception { Component component = container.lookup( Component.class ); assertNotNull( component ); assertNotNull( component.getActivity() ); assertEquals( "localhost", component.getHost() ); assertEquals( 10000, component.getPort() ); } public void testAutomatedComponentComposition() throws Exception { ComponentA componentA = container.lookup( ComponentA.class ); assertNotNull( componentA ); assertEquals( "localhost", componentA.getHost() ); assertEquals( 10000, componentA.getPort() ); ComponentB componentB = componentA.getComponentB(); assertNotNull( componentB ); ComponentC componentC = componentA.getComponentC(); assertNotNull( componentC ); ComponentD componentD = componentC.getComponentD(); assertNotNull( componentD ); assertEquals( "jason", componentD.getName() ); } public void testComponentCompositionWhereTargetFieldIsAMap() throws Exception { ActivityManager am = container.lookup( ActivityManager.class ); Activity one = am.getActivity( "one" ); assertNotNull( one ); assertFalse( one.getState() ); am.execute( "one" ); assertTrue( one.getState() ); Activity two = am.getActivity( "two" ); assertNotNull( two ); assertFalse( two.getState() ); am.execute( "two" ); assertTrue( two.getState() ); } public void testComponentCompositionWhereTargetFieldIsAPartialMap() throws Exception { ActivityManager am = container.lookup( ActivityManager.class, "slim" ); assertEquals( 1, am.getActivityCount() ); Activity one = am.getActivity( "one" ); assertNotNull( one ); assertFalse( one.getState() ); am.execute( "one" ); assertTrue( one.getState() ); } public void testComponentCompositionWhereTargetFieldIsAList() throws Exception { Pipeline pipeline = container.lookup( Pipeline.class ); List valves = pipeline.getValves(); assertFalse( ( (Valve) valves.get( 0 ) ).getState() ); assertFalse( ( (Valve) valves.get( 1 ) ).getState() ); pipeline.execute(); assertTrue( ( (Valve) valves.get( 0 ) ).getState() ); assertTrue( ( (Valve) valves.get( 1 ) ).getState() ); } public void testComponentCompositionWhereTargetFieldIsAPartialList() throws Exception { Pipeline pipeline = container.lookup( Pipeline.class, "slim" ); List valves = pipeline.getValves(); assertEquals( valves.size(), 1 ); assertFalse( ( (Valve) valves.get( 0 ) ).getState() ); pipeline.execute(); assertTrue( ( (Valve) valves.get( 0 ) ).getState() ); } public void testComponentCompositionWhereTargetFieldAMapThatMustRetainTheOrderOfComponentsGivenASetOfRoleHints() throws Exception { Pipeline pipeline = container.lookup( Pipeline.class, "chubby" ); Map valveMap = pipeline.getValveMap(); List valves = new ArrayList( valveMap.values() ); assertEquals( "Expecting three valves.", 4, valves.size() ); assertTrue( "Expecting valve one.", valves.get(0) instanceof ValveOne ); assertTrue( "Expecting valve two.", valves.get(1) instanceof ValveTwo ); assertTrue( "Expecting valve three.", valves.get(2) instanceof ValveThree ); assertTrue( "Expecting valve four.", valves.get(3) instanceof ValveFour ); } public void testLookupOfComponentThatShouldBeDiscovered() throws Exception { DiscoveredComponent discoveredComponent = container.lookup( DiscoveredComponent.class ); assertNotNull( discoveredComponent ); } public void testStartableComponentSnake() throws Exception { StartableComponent ca = container.lookup( StartableComponent.class, "A-snake" ); assertNotNull( ca ); ca.assertStartOrderCorrect(); container.dispose(); ca.assertStopOrderCorrect(); } public void testStartableComponentTree() throws Exception { StartableComponent ca = container.lookup( StartableComponent.class, "A-tree" ); assertNotNull( ca ); ca.assertStartOrderCorrect(); container.dispose(); ca.assertStopOrderCorrect(); } public void testLookupCircularity() throws Exception { try { container.lookup( CircularComponent.class, "A" ); fail("Expected ComponentLookupException due to circularity"); } catch ( ComponentLookupException e ) { // todo actually test nested exception is as expected when } } } ././@LongLink0000000000000000000000000000016700000000000011571 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/CircularComponent.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/Circ0000644000175000017500000000020511135475677033525 0ustar twernertwernerpackage org.codehaus.plexus.test; public interface CircularComponent { static String ROLE = CircularComponent.class.getName(); }././@LongLink0000000000000000000000000000020000000000000011555 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/AbstractStartableComponent.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/Abst0000644000175000017500000000410411135206670033521 0ustar twernertwernerpackage org.codehaus.plexus.test; import org.codehaus.plexus.personality.plexus.lifecycle.phase.Startable; import org.codehaus.plexus.personality.plexus.lifecycle.phase.StartingException; import org.codehaus.plexus.personality.plexus.lifecycle.phase.StoppingException; import junit.framework.Assert; import static junit.framework.Assert.assertTrue; public class AbstractStartableComponent implements StartableComponent, Startable { public int startOrder; public int stopOrder; public AbstractStartableComponent component1; public AbstractStartableComponent component2; public void start() throws StartingException { startOrder = startGenerator.getAndIncrement(); } public void stop() throws StoppingException { stopOrder = stopGenerator.getAndIncrement(); } public void assertStartOrderCorrect() { if ( component1 != null ) { assertTrue( "This component started before injected component1", startOrder > component1.startOrder ); } if ( component2 != null ) { assertTrue( "This component started before injected component2", startOrder > component2.startOrder ); } // assert children are correct if ( component1 != null ) { component1.assertStartOrderCorrect(); } if ( component2 != null ) { component2.assertStartOrderCorrect(); } } public void assertStopOrderCorrect() { if ( component1 != null ) { assertTrue( "This component stopped after injected component1", stopOrder < component1.stopOrder ); } if ( component2 != null ) { assertTrue( "This component stopped after injected component2", stopOrder < component2.stopOrder ); } // assert children are correct if ( component1 != null ) { component1.assertStopOrderCorrect(); } if ( component2 != null ) { component2.assertStopOrderCorrect(); } } } ././@LongLink0000000000000000000000000000017400000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/SimpleLifecycleHandler.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/Simp0000644000175000017500000000176710722311152033545 0ustar twernertwernerpackage org.codehaus.plexus.test; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.lifecycle.AbstractLifecycleHandler; /** * * * @author Jason van Zyl * * @version $Id: SimpleLifecycleHandler.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public class SimpleLifecycleHandler extends AbstractLifecycleHandler { public String getId() { return "simple"; } public void initialize() { } } ././@LongLink0000000000000000000000000000015600000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/ServiceH.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/Serv0000644000175000017500000000132710531217373033554 0ustar twernertwernerpackage org.codehaus.plexus.test; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 interface ServiceH { static String ROLE = ServiceH.class.getName(); } ././@LongLink0000000000000000000000000000014500000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/map/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/map/0000755000175000017500000000000011225200000033440 5ustar twernertwerner././@LongLink0000000000000000000000000000016500000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/map/ActivityTwo.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/map/0000644000175000017500000000146510722311152033464 0ustar twernertwernerpackage org.codehaus.plexus.test.map; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * * @version $Id: ActivityTwo.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public class ActivityTwo extends AbstractActivity { } ././@LongLink0000000000000000000000000000016500000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/map/ActivityOne.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/map/0000644000175000017500000000146510722311152033464 0ustar twernertwernerpackage org.codehaus.plexus.test.map; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * * @version $Id: ActivityOne.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public class ActivityOne extends AbstractActivity { } ././@LongLink0000000000000000000000000000016200000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/map/Activity.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/map/0000644000175000017500000000156710722311152033467 0ustar twernertwernerpackage org.codehaus.plexus.test.map; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * * @version $Id: Activity.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public interface Activity { static String ROLE = Activity.class.getName(); void execute(); boolean getState(); } ././@LongLink0000000000000000000000000000017200000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/map/AbstractActivity.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/map/0000644000175000017500000000173410722311152033463 0ustar twernertwernerpackage org.codehaus.plexus.test.map; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * * @version $Id: AbstractActivity.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public abstract class AbstractActivity implements Activity { private boolean state; public boolean getState() { return state; } public void execute() { state = true; } } ././@LongLink0000000000000000000000000000017100000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/map/ActivityManager.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/map/0000644000175000017500000000170710722311152033463 0ustar twernertwernerpackage org.codehaus.plexus.test.map; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * * @version $Id: ActivityManager.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public interface ActivityManager { static String ROLE = ActivityManager.class.getName(); void execute( String id ); Activity getActivity( String id ); int getActivityCount(); } ././@LongLink0000000000000000000000000000017500000000000011570 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/map/NoComponentsMapTest.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/map/0000644000175000017500000000215311107373274033472 0ustar twernertwernerpackage org.codehaus.plexus.test.map; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.PlexusTestCase; /** * @author Trygve Laugstøl * @version $Id: NoComponentsMapTest.java 7828 2008-11-14 22:07:56Z dain $ */ public class NoComponentsMapTest extends PlexusTestCase { public void testNoComponents() throws Exception { ActivityManager manager; manager = lookup( ActivityManager.class ); assertEquals( 0, manager.getActivityCount() ); } } ././@LongLink0000000000000000000000000000020000000000000011555 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/map/DefaultActivityManager.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/map/0000644000175000017500000000222310722311152033455 0ustar twernertwernerpackage org.codehaus.plexus.test.map; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.Map; /** * * * @author Jason van Zyl * * @version $Id: DefaultActivityManager.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public class DefaultActivityManager implements ActivityManager { private Map activities; public void execute( String id ) { getActivity( id ).execute(); } public Activity getActivity( String id ) { return (Activity) activities.get( id ); } public int getActivityCount() { return activities.size(); } } ././@LongLink0000000000000000000000000000015600000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/ServiceE.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/Serv0000644000175000017500000000132710531217373033554 0ustar twernertwernerpackage org.codehaus.plexus.test; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 interface ServiceE { static String ROLE = ServiceE.class.getName(); } ././@LongLink0000000000000000000000000000017000000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/StartableComponent.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/Star0000644000175000017500000000057311135475677033566 0ustar twernertwernerpackage org.codehaus.plexus.test; import java.util.concurrent.atomic.AtomicInteger; public interface StartableComponent { static String ROLE = StartableComponent.class.getName(); AtomicInteger startGenerator = new AtomicInteger( 1 ); AtomicInteger stopGenerator = new AtomicInteger( 1 ); void assertStartOrderCorrect(); void assertStopOrderCorrect(); } ././@LongLink0000000000000000000000000000020000000000000011555 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/DefaultStartableComponentA.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/Defa0000644000175000017500000000016611135206670033473 0ustar twernertwernerpackage org.codehaus.plexus.test; public class DefaultStartableComponentA extends AbstractStartableComponent { } ././@LongLink0000000000000000000000000000016300000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/AddUserAction.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/AddU0000644000175000017500000000145610722311152033445 0ustar twernertwernerpackage org.codehaus.plexus.test; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * * @version $Id: AddUserAction.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public class AddUserAction implements Action { } ././@LongLink0000000000000000000000000000016500000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/DefaultServiceC.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/Defa0000644000175000017500000000172510531217373033476 0ustar twernertwernerpackage org.codehaus.plexus.test; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.personality.plexus.lifecycle.phase.Startable; public class DefaultServiceC implements ServiceC, Startable { public boolean started = false; public boolean stopped = false; public void start() { started = true; } public void stop() { stopped = true; } } ././@LongLink0000000000000000000000000000015600000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/ServiceD.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/Serv0000644000175000017500000000132710531215552033551 0ustar twernertwernerpackage org.codehaus.plexus.test; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 interface ServiceD { static String ROLE = ServiceD.class.getName(); } ././@LongLink0000000000000000000000000000015300000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/lifecycle/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/life0000755000175000017500000000000011225200000033523 5ustar twernertwerner././@LongLink0000000000000000000000000000016100000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/lifecycle/phase/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/life0000755000175000017500000000000011225200000033523 5ustar twernertwerner././@LongLink0000000000000000000000000000017200000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/lifecycle/phase/Miny.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/life0000644000175000017500000000145210722311152033543 0ustar twernertwernerpackage org.codehaus.plexus.test.lifecycle.phase; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * * @version $Id: Miny.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public interface Miny { void miny(); } ././@LongLink0000000000000000000000000000017200000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/lifecycle/phase/Eeny.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/life0000644000175000017500000000145210722311152033543 0ustar twernertwernerpackage org.codehaus.plexus.test.lifecycle.phase; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * * @version $Id: Eeny.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public interface Eeny { void eeny(); } ././@LongLink0000000000000000000000000000020000000000000011555 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/lifecycle/phase/MeenyPhase.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/life0000644000175000017500000000211110553765637033563 0ustar twernertwernerpackage org.codehaus.plexus.test.lifecycle.phase; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.manager.ComponentManager; import org.codehaus.plexus.lifecycle.phase.AbstractPhase; public class MeenyPhase extends AbstractPhase { public void execute( Object object, ComponentManager manager, ClassRealm lookupRealm ) { if ( object instanceof Meeny ) { ( (Meeny) object ).meeny(); } } } ././@LongLink0000000000000000000000000000017000000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/lifecycle/phase/Mo.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/life0000644000175000017500000000144410722311152033544 0ustar twernertwernerpackage org.codehaus.plexus.test.lifecycle.phase; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * * @version $Id: Mo.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public interface Mo { void mo(); } ././@LongLink0000000000000000000000000000017300000000000011566 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/lifecycle/phase/Meeny.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/life0000644000175000017500000000145510722311152033546 0ustar twernertwernerpackage org.codehaus.plexus.test.lifecycle.phase; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * * @version $Id: Meeny.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public interface Meeny { void meeny(); } ././@LongLink0000000000000000000000000000017500000000000011570 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/lifecycle/phase/MoPhase.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/life0000644000175000017500000000207510553765637033574 0ustar twernertwernerpackage org.codehaus.plexus.test.lifecycle.phase; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.manager.ComponentManager; import org.codehaus.plexus.lifecycle.phase.AbstractPhase; public class MoPhase extends AbstractPhase { public void execute( Object object, ComponentManager manager, ClassRealm lookupRealm ) { if ( object instanceof Mo ) { ( (Mo) object ).mo(); } } } ././@LongLink0000000000000000000000000000017700000000000011572 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/lifecycle/phase/EenyPhase.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/life0000644000175000017500000000210510553765637033566 0ustar twernertwernerpackage org.codehaus.plexus.test.lifecycle.phase; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.manager.ComponentManager; import org.codehaus.plexus.lifecycle.phase.AbstractPhase; public class EenyPhase extends AbstractPhase { public void execute( Object object, ComponentManager manager, ClassRealm lookupRealm ) { if ( object instanceof Eeny ) { ( (Eeny) object ).eeny(); } } } ././@LongLink0000000000000000000000000000017700000000000011572 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/lifecycle/phase/MinyPhase.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/life0000644000175000017500000000210510553765637033566 0ustar twernertwernerpackage org.codehaus.plexus.test.lifecycle.phase; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.manager.ComponentManager; import org.codehaus.plexus.lifecycle.phase.AbstractPhase; public class MinyPhase extends AbstractPhase { public void execute( Object object, ComponentManager manager, ClassRealm lookupRealm ) { if ( object instanceof Miny ) { ( (Miny) object ).miny(); } } } ././@LongLink0000000000000000000000000000020000000000000011555 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/DefaultStartableComponentD.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/Defa0000644000175000017500000000016611135206670033473 0ustar twernertwernerpackage org.codehaus.plexus.test; public class DefaultStartableComponentD extends AbstractStartableComponent { } ././@LongLink0000000000000000000000000000017600000000000011571 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/DefaultCircularComponent.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/Defa0000644000175000017500000000160511135475677033511 0ustar twernertwernerpackage org.codehaus.plexus.test; import org.codehaus.plexus.PlexusContainer; import org.codehaus.plexus.personality.plexus.lifecycle.phase.Startable; import org.codehaus.plexus.personality.plexus.lifecycle.phase.StartingException; import org.codehaus.plexus.personality.plexus.lifecycle.phase.StoppingException; public class DefaultCircularComponent implements CircularComponent, Startable { private PlexusContainer container; private String lookup; private CircularComponent requirement; public void start() throws StartingException { try { if (lookup != null) { container.lookup( CircularComponent.class, lookup ); } } catch ( Exception e ) { throw new StartingException("failed", e); } } public void stop() throws StoppingException { } }././@LongLink0000000000000000000000000000016500000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/DefaultServiceH.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/Defa0000644000175000017500000000317010531215552033467 0ustar twernertwernerpackage org.codehaus.plexus.test; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.logging.AbstractLogEnabled; import org.codehaus.plexus.test.lifecycle.phase.Eeny; import org.codehaus.plexus.test.lifecycle.phase.Meeny; import org.codehaus.plexus.test.lifecycle.phase.Miny; import org.codehaus.plexus.test.lifecycle.phase.Mo; /** This component implements the custom lifecycle defined by the phases * * Eeny * Meeny * Miny * Mo * */ public class DefaultServiceH extends AbstractLogEnabled implements ServiceH, Eeny, Meeny, Miny, Mo { public boolean eeny; public boolean meeny; public boolean miny; public boolean mo; // ---------------------------------------------------------------------- // Lifecycle Management // ---------------------------------------------------------------------- public void eeny() { eeny = true; } public void meeny() { meeny = true; } public void miny() { miny = true; } public void mo() { mo = true; } } ././@LongLink0000000000000000000000000000016000000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/ComponentB.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/Comp0000644000175000017500000000133310531217373033530 0ustar twernertwernerpackage org.codehaus.plexus.test; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 interface ComponentB { static String ROLE = ComponentB.class.getName(); } ././@LongLink0000000000000000000000000000020400000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/LoadOnStartServiceWithRoleHint.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/Load0000644000175000017500000000157710722311152033513 0ustar twernertwernerpackage org.codehaus.plexus.test; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * * @version $Id: LoadOnStartServiceWithRoleHint.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public interface LoadOnStartServiceWithRoleHint { String ROLE = LoadOnStartServiceWithRoleHint.class.getName(); } ././@LongLink0000000000000000000000000000020000000000000011555 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/DefaultStartableComponentE.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/Defa0000644000175000017500000000016611135206670033473 0ustar twernertwernerpackage org.codehaus.plexus.test; public class DefaultStartableComponentE extends AbstractStartableComponent { } ././@LongLink0000000000000000000000000000015400000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/Action.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/Acti0000644000175000017500000000141610722311152033504 0ustar twernertwernerpackage org.codehaus.plexus.test; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * * @version $Id: Action.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public interface Action { } ././@LongLink0000000000000000000000000000016700000000000011571 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/DefaultComponentC.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/Defa0000644000175000017500000000146410531217373033476 0ustar twernertwernerpackage org.codehaus.plexus.test; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 DefaultComponentC implements ComponentC { private ComponentD componentD; public ComponentD getComponentD() { return componentD; } } ././@LongLink0000000000000000000000000000014600000000000011566 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/list/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/list0000755000175000017500000000000011225200000033557 5ustar twernertwerner././@LongLink0000000000000000000000000000016000000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/list/Valve.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/list0000644000175000017500000000155710722311152033605 0ustar twernertwernerpackage org.codehaus.plexus.test.list; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * * @version $Id: Valve.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public interface Valve { static String ROLE = Valve.class.getName(); void execute(); boolean getState(); } ././@LongLink0000000000000000000000000000016300000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/list/Pipeline.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/list0000644000175000017500000000166510722311152033605 0ustar twernertwernerpackage org.codehaus.plexus.test.list; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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; import java.util.Map; /** * @author Jason van Zyl * * @version $Id: Pipeline.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public interface Pipeline { static String ROLE = Pipeline.class.getName(); void execute(); List getValves(); Map getValveMap(); } ././@LongLink0000000000000000000000000000017200000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/list/DefaultPipeline.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/list0000644000175000017500000000233310722311152033576 0ustar twernertwernerpackage org.codehaus.plexus.test.list; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.Iterator; import java.util.List; import java.util.Map; /** * * * @author Jason van Zyl * * @version $Id: DefaultPipeline.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public class DefaultPipeline implements Pipeline { private List valves; private Map valveMap; public void execute() { for ( Iterator i = valves.iterator(); i.hasNext(); ) { ((Valve) i.next()).execute(); } } public List getValves() { return valves; } public Map getValveMap() { return valveMap; } } ././@LongLink0000000000000000000000000000017000000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/list/AbstractValve.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/list0000644000175000017500000000172410722311152033601 0ustar twernertwernerpackage org.codehaus.plexus.test.list; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * * @version $Id: AbstractValve.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public abstract class AbstractValve implements Valve { private boolean state; public boolean getState() { return state; } public void execute() { state = true; } } ././@LongLink0000000000000000000000000000016300000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/list/ValveTwo.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/list0000644000175000017500000000145510722311152033602 0ustar twernertwernerpackage org.codehaus.plexus.test.list; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * * @version $Id: ValveTwo.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public class ValveTwo extends AbstractValve { } ././@LongLink0000000000000000000000000000016300000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/list/ValveOne.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/list0000644000175000017500000000145510722311152033602 0ustar twernertwernerpackage org.codehaus.plexus.test.list; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * * @version $Id: ValveOne.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public class ValveOne extends AbstractValve { } ././@LongLink0000000000000000000000000000016500000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/list/ValveThree.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/list0000644000175000017500000000145710722311152033604 0ustar twernertwernerpackage org.codehaus.plexus.test.list; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * * @version $Id: ValveThree.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public class ValveThree extends AbstractValve { }././@LongLink0000000000000000000000000000016400000000000011566 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/list/ValveFour.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/list0000644000175000017500000000145510722311152033602 0ustar twernertwernerpackage org.codehaus.plexus.test.list; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * * @version $Id: ValveFour.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public class ValveFour extends AbstractValve { }././@LongLink0000000000000000000000000000016600000000000011570 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/DefaultComponent.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/Defa0000644000175000017500000000200110531217373033462 0ustar twernertwernerpackage org.codehaus.plexus.test; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.test.map.Activity; public class DefaultComponent implements Component { private String host; private int port; private Activity activity; public Activity getActivity() { return activity; } public String getHost() { return host; } public int getPort() { return port; } } ././@LongLink0000000000000000000000000000020000000000000011555 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/DefaultStartableComponentB.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/Defa0000644000175000017500000000016611135206670033473 0ustar twernertwernerpackage org.codehaus.plexus.test; public class DefaultStartableComponentB extends AbstractStartableComponent { } ././@LongLink0000000000000000000000000000016700000000000011571 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/DefaultComponentB.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/Defa0000644000175000017500000000134510531215552033471 0ustar twernertwernerpackage org.codehaus.plexus.test; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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. */ /** * @component.version 2.0 */ public class DefaultComponentB implements ComponentB { } ././@LongLink0000000000000000000000000000016000000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/ComponentA.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/Comp0000644000175000017500000000151010531215552033522 0ustar twernertwernerpackage org.codehaus.plexus.test; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 interface ComponentA { static String ROLE = ComponentA.class.getName(); ComponentB getComponentB(); ComponentC getComponentC(); String getHost(); int getPort(); } ././@LongLink0000000000000000000000000000020000000000000011555 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/DefaultStartableComponentC.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/Defa0000644000175000017500000000016611135206670033473 0ustar twernertwernerpackage org.codehaus.plexus.test; public class DefaultStartableComponentC extends AbstractStartableComponent { } ././@LongLink0000000000000000000000000000015700000000000011570 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/Component.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/Comp0000644000175000017500000000167710722311152033533 0ustar twernertwernerpackage org.codehaus.plexus.test; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.test.map.Activity; /** * * * @author Jason van Zyl * * @version $Id: Component.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public interface Component { static String ROLE = Component.class.getName(); String getHost(); int getPort(); Activity getActivity(); } ././@LongLink0000000000000000000000000000017000000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/LoadOnStartService.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/Load0000644000175000017500000000153310722311152033503 0ustar twernertwernerpackage org.codehaus.plexus.test; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * * @version $Id: LoadOnStartService.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public interface LoadOnStartService { String ROLE = LoadOnStartService.class.getName(); } ././@LongLink0000000000000000000000000000021300000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/DefaultLoadOnStartServiceWithRoleHint.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/test/Defa0000644000175000017500000000155210722311152033464 0ustar twernertwernerpackage org.codehaus.plexus.test; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * * @version $Id: DefaultLoadOnStartServiceWithRoleHint.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public class DefaultLoadOnStartServiceWithRoleHint implements LoadOnStartService { } ././@LongLink0000000000000000000000000000017400000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/DyanamicComponentKungFuTest.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/DyanamicC0000644000175000017500000000674310722311152033505 0ustar twernertwernerpackage org.codehaus.plexus; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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; /** * This is the start of the sketch which outlines some of the things * I would like to do with components during runtime. * * @author Jason van Zyl * * @version $Id: DyanamicComponentKungFuTest.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public class DyanamicComponentKungFuTest extends TestCase { /** * Component additions during container operation. * * 1. Add a component at runtime * -> Additions could be made by specifying an URL which will be compatible with Wagon * and specifically Maven's way of using Wagon. * * 2. Configure the dynamically added component * -> We need to be able to deal with different flavours of components but we can focus * on Plexus components to start with. But some components may have meta information * and some may not like pico components. But one of the first flavours I want to * support is phoenix components because I specifically need the FTP server. * * 3. Let the component perform its role * * 4. Suspend the component * a) Define the criteria for which we can suspend a component * -> When there are no client connections? * -> Even when there are no connections and a client tries to obtain a connection what do we do? * -> If we are in desperate need to suspend the component, say for urgent security requirement, and * clients simply won't bugger off what do we do? * * 5. Reconfigure the component * * 6. Resume the component * * 7. Let the component perform its role * * 8. Release the component */ public void testAdditionOfComponentDuringContainerOperation() throws Exception { } /** * Component replacement during container operation. * * This will force the design of a mechanism where the components communicate * with one another via a connector. In order for components to be replaced * dynamically the components cannot be directly coupled to one another. * * How to decide if a component is a suitable replacement given the versions * of the specifications of the component and any required components if the * component is a composite component. * * Definitely need to simulate the connection (a MockConnection) during * runtime to make sure that in the event something goes wrong the container * can just refuse to allow the component substitution. This shouldn't be trial * and error but until much field testing has occurred I'm sure there will be * instances where miscalculations happen simply due to lack of experience and * usage with dynamic component replacement. */ public void testComponentReplacementDuringContainerOperation() throws Exception { } } plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/logging/0000755000175000017500000000000011225200001033333 5ustar twernertwerner././@LongLink0000000000000000000000000000016700000000000011571 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/logging/MockLogEnabled.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/logging/M0000644000175000017500000000154710531217373033504 0ustar twernertwernerpackage org.codehaus.plexus.logging; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 Peter Donald * @version $Revision: 4779 $ $Date: 2006-11-23 05:09:31 +0100 (Do, 23. Nov 2006) $ */ class MockLogEnabled extends AbstractLogEnabled { } ././@LongLink0000000000000000000000000000016700000000000011571 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/logging/LogEnabledTest.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/logging/L0000644000175000017500000000615710531217373033505 0ustar twernertwernerpackage org.codehaus.plexus.logging; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 Peter Donald * @version $Revision: 4779 $ $Date: 2006-11-23 05:09:31 +0100 (Do, 23. Nov 2006) $ */ public class LogEnabledTest extends TestCase { public void testGetLogger() throws Exception { MockLogEnabled logEnabled = new MockLogEnabled(); MockLogger logger = new MockLogger( "base" ); logEnabled.enableLogging( logger ); assertEquals( "logger", logger, logEnabled.getLogger() ); } public void testSetupLoggerOnLogEnabled() throws Exception { MockLogEnabled logEnabled = new MockLogEnabled(); MockLogEnabled childLogEnabled = new MockLogEnabled(); MockLogger logger = new MockLogger( "base" ); logEnabled.enableLogging( logger ); logEnabled.setupLogger( childLogEnabled ); assertEquals( "logEnabled.logger", logger, logEnabled.getLogger() ); assertEquals( "childLogEnabled.logger", logger, childLogEnabled.getLogger() ); } public void testSetupLoggerOnNonLogEnabled() throws Exception { MockLogEnabled logEnabled = new MockLogEnabled(); MockLogger logger = new MockLogger( "base" ); logEnabled.enableLogging( logger ); logEnabled.setupLogger( new Object() ); } public void testSetupLoggerWithNameOnLogEnabled() throws Exception { MockLogEnabled logEnabled = new MockLogEnabled(); MockLogEnabled childLogEnabled = new MockLogEnabled(); MockLogger logger = new MockLogger( "base" ); logEnabled.enableLogging( logger ); logEnabled.setupLogger( childLogEnabled, "child" ); assertEquals( "logEnabled.logger", logger, logEnabled.getLogger() ); assertEquals( "childLogEnabled.logger.name", "base.child", ( (MockLogger) childLogEnabled.getLogger() ).getName() ); } public void testSetupLoggerWithNullName() throws Exception { MockLogEnabled logEnabled = new MockLogEnabled(); MockLogEnabled childLogEnabled = new MockLogEnabled(); MockLogger logger = new MockLogger( "base" ); logEnabled.enableLogging( logger ); try { logEnabled.setupLogger( childLogEnabled, (String) null ); } catch ( IllegalStateException npe ) { return; } fail( "Expected to fail setting up child logger with null name" ); } } ././@LongLink0000000000000000000000000000015400000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/logging/console/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/logging/c0000755000175000017500000000000011225200001033476 5ustar twernertwerner././@LongLink0000000000000000000000000000021100000000000011557 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/logging/console/ConsoleLoggerManagerTest.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/logging/c0000644000175000017500000000320211107373274033523 0ustar twernertwernerpackage org.codehaus.plexus.logging.console; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.logging.AbstractLoggerManagerTest; import org.codehaus.plexus.logging.Logger; import org.codehaus.plexus.logging.LoggerManager; /** * Test for {@link org.codehaus.plexus.logging.console.ConsoleLoggerManager} and * {@link org.codehaus.plexus.logging.console.ConsoleLogger}. * * @author Mark H. Wilkinson * @version $Revision: 7828 $ */ public final class ConsoleLoggerManagerTest extends AbstractLoggerManagerTest { protected LoggerManager createLoggerManager() throws Exception { return lookup(LoggerManager.class); } public void testSetAllThresholds() throws Exception { LoggerManager manager = createLoggerManager(); manager.setThreshold( Logger.LEVEL_ERROR ); Logger logger = manager.getLoggerForComponent( "test" ); assertEquals( logger.getThreshold(), Logger.LEVEL_ERROR ); manager.setThresholds( Logger.LEVEL_DEBUG ); assertEquals( logger.getThreshold(), Logger.LEVEL_DEBUG ); } } ././@LongLink0000000000000000000000000000020200000000000011557 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/logging/console/ConsoleLoggerTest.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/logging/c0000644000175000017500000000702210722311152033514 0ustar twernertwernerpackage org.codehaus.plexus.logging.console; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.StringUtils; import java.io.ByteArrayOutputStream; import java.io.PrintStream; /** * @author Jason van Zyl * * @version $Id: ConsoleLoggerTest.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public class ConsoleLoggerTest extends TestCase { public void testConsoleLogger() { ConsoleLogger logger = new ConsoleLogger( ConsoleLogger.LEVEL_DEBUG, "test" ); assertTrue( logger.isDebugEnabled() ); assertTrue( logger.isInfoEnabled() ); assertTrue( logger.isWarnEnabled() ); assertTrue( logger.isErrorEnabled() ); assertTrue( logger.isFatalErrorEnabled() ); // Save the original print stream. PrintStream original = System.out; Throwable t = new Throwable( "throwable" ); ByteArrayOutputStream os = new ByteArrayOutputStream(); PrintStream consoleStream = new PrintStream( os ); System.setOut( consoleStream ); logger.debug( "debug" ); assertEquals( "[DEBUG] debug", getMessage( consoleStream, os ) ); logger.debug( "debug", t ); assertEquals( "[DEBUG] debug", getMessage( consoleStream, os ) ); os = new ByteArrayOutputStream(); consoleStream = new PrintStream( os ); System.setOut( consoleStream ); logger.info( "info" ); assertEquals( "[INFO] info", getMessage( consoleStream, os ) ); logger.info( "info", t ); assertEquals( "[INFO] info", getMessage( consoleStream, os ) ); os = new ByteArrayOutputStream(); consoleStream = new PrintStream( os ); System.setOut( consoleStream ); logger.warn( "warn" ); assertEquals( "[WARNING] warn", getMessage( consoleStream, os ) ); logger.warn( "warn", t ); assertEquals( "[WARNING] warn", getMessage( consoleStream, os ) ); os = new ByteArrayOutputStream(); consoleStream = new PrintStream( os ); System.setOut( consoleStream ); logger.error( "error" ); assertEquals( "[ERROR] error", getMessage( consoleStream, os ) ); logger.error( "error", t ); assertEquals( "[ERROR] error", getMessage( consoleStream, os ) ); os = new ByteArrayOutputStream(); consoleStream = new PrintStream( os ); System.setOut( consoleStream ); logger.fatalError( "error" ); assertEquals( "[FATAL ERROR] error", getMessage( consoleStream, os ) ); logger.fatalError( "error", t ); assertEquals( "[FATAL ERROR] error", getMessage( consoleStream, os ) ); // Set the original print stream. System.setOut( original ); } private String getMessage( PrintStream consoleStream, ByteArrayOutputStream os ) { consoleStream.flush(); consoleStream.close(); return StringUtils.chopNewline( os.toString() ); } } ././@LongLink0000000000000000000000000000016300000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/logging/MockLogger.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/logging/M0000644000175000017500000000433010531217373033475 0ustar twernertwernerpackage org.codehaus.plexus.logging; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 Peter Donald * @version $Revision: 4779 $ $Date: 2006-11-23 05:09:31 +0100 (Do, 23. Nov 2006) $ */ class MockLogger implements Logger { private final String m_name; MockLogger( String name ) { m_name = name; } public String getName() { return m_name; } public Logger getChildLogger( final String name ) { return new MockLogger( getName() + "." + name ); } public void debug( String message ) { } public void debug( String message, Throwable throwable ) { } public boolean isDebugEnabled() { return false; } public void info( String message ) { } public void info( String message, Throwable throwable ) { } public boolean isInfoEnabled() { return false; } public void warn( String message ) { } public void warn( String message, Throwable throwable ) { } public boolean isWarnEnabled() { return false; } public boolean isFatalErrorEnabled() { return false; } public void fatalError( String message ) { } public void fatalError( String message, Throwable throwable ) { } public void error( String message ) { } public void error( String message, Throwable throwable ) { } public boolean isErrorEnabled() { return false; } public int getThreshold() { return 0; } public void setThreshold( int threshold ) { } } ././@LongLink0000000000000000000000000000020000000000000011555 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/logging/CustomLoggerManagerTest.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/logging/C0000644000175000017500000000233711107373274033473 0ustar twernertwernerpackage org.codehaus.plexus.logging; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.PlexusTestCase; //TODO: this test will get nuked, this needs to be done programmatically /** * @author Trygve Laugstøl * @version $Id: CustomLoggerManagerTest.java 7828 2008-11-14 22:07:56Z dain $ */ public class CustomLoggerManagerTest extends PlexusTestCase { public void testBasic() throws Exception { LoggerManager manager = lookup( LoggerManager.class ); assertNotNull( manager ); assertEquals( MockLoggerManager.class.getName(), manager.getClass().getName() ); } } ././@LongLink0000000000000000000000000000017200000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/logging/MockLoggerManager.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/logging/M0000644000175000017500000000347610531215552033504 0ustar twernertwernerpackage org.codehaus.plexus.logging; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 Trygve Laugstøl * @version $Id: MockLoggerManager.java 4778 2006-11-23 03:54:18Z jvanzyl $ */ public class MockLoggerManager implements LoggerManager { public void setThreshold(int threshold) { } public void setThresholds(int threshold) { } public int getThreshold() { return 0; } public void setThreshold(String role, int threshold) { } public void setThreshold(String role, String roleHint, int threshold) { } public int getThreshold(String role) { return 0; } public int getThreshold(String role, String roleHint) { return 0; } public Logger getLoggerForComponent(String role) { return new MockLogger(role.getClass().getName()); } public Logger getLoggerForComponent(String role, String roleHint) { return new MockLogger(role.getClass().getName() + ":" + roleHint); } public void returnComponentLogger(String role) { } public void returnComponentLogger(String role, String hint) { } public int getActiveLoggerCount() { return 0; } } ././@LongLink0000000000000000000000000000020200000000000011557 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/logging/AbstractLoggerManagerTest.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/logging/A0000644000175000017500000001614710531215552033467 0ustar twernertwernerpackage org.codehaus.plexus.logging; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.PlexusTestCase; /** * Abtract base class for testing implementations of the {@link LoggerManager} * and {@link Logger} interfaces. * * @author Mark H. Wilkinson * @author Trygve Laugstøl * @version $Revision: 4778 $ */ public abstract class AbstractLoggerManagerTest extends PlexusTestCase { protected abstract LoggerManager createLoggerManager() throws Exception; public void testSetThreshold() throws Exception { LoggerManager manager; Logger logger1, logger2; manager = createLoggerManager(); manager.setThreshold( Logger.LEVEL_FATAL ); logger1 = manager.getLoggerForComponent( "role1", "roleHint1" ); assertEquals( Logger.LEVEL_FATAL, logger1.getThreshold() ); manager.setThreshold( Logger.LEVEL_DEBUG ); logger2 = manager.getLoggerForComponent( "role2", "roleHint2" ); assertEquals( Logger.LEVEL_FATAL, logger1.getThreshold() ); assertEquals( Logger.LEVEL_DEBUG, logger2.getThreshold() ); } /** * There is only one logger instance pr component even if looked up more that once. */ public void testActiveLoggerCount() throws Exception { LoggerManager manager; Logger b, c1_1, c1_2, c2; manager = getManager( Logger.LEVEL_FATAL ); assertEquals(0, manager.getActiveLoggerCount()); b = manager.getLoggerForComponent( "b" ); assertNotNull( b ); assertEquals(1, manager.getActiveLoggerCount()); c1_1 = manager.getLoggerForComponent( "c", "1" ); c1_2 = manager.getLoggerForComponent( "c", "1" ); assertNotNull( c1_1 ); assertNotNull( c1_2 ); assertSame( c1_1, c1_2 ); assertEquals(2, manager.getActiveLoggerCount()); c2 = manager.getLoggerForComponent( "c", "2" ); assertNotNull( c2 ); assertEquals(3, manager.getActiveLoggerCount()); manager.returnComponentLogger( "c", "1" ); assertEquals(2, manager.getActiveLoggerCount()); manager.returnComponentLogger( "c", "2" ); manager.returnComponentLogger( "c", "2" ); manager.returnComponentLogger( "c", "1" ); assertEquals(1, manager.getActiveLoggerCount()); manager.returnComponentLogger( "b" ); assertEquals(0, manager.getActiveLoggerCount()); } public void testDebugLevelConfiguration() throws Exception { LoggerManager manager = getManager( Logger.LEVEL_DEBUG ); Logger logger = extractLogger( manager ); checkDebugLevel( logger ); logger = extractLogger( manager ); checkDebugLevel( logger ); } public void testInfoLevelConfiguration() throws Exception { LoggerManager manager = getManager( Logger.LEVEL_INFO ); Logger logger = extractLogger( manager ); checkInfoLevel( logger ); logger = extractLogger( manager ); checkInfoLevel( logger ); } public void testWarnLevelConfiguration() throws Exception { LoggerManager manager = getManager( Logger.LEVEL_WARN ); Logger logger = extractLogger( manager ); checkWarnLevel( logger ); logger = extractLogger( manager ); checkWarnLevel( logger ); } public void testErrorLevelConfiguration() throws Exception { LoggerManager manager = getManager( Logger.LEVEL_ERROR ); Logger logger = extractLogger( manager ); checkErrorLevel( logger ); logger = extractLogger( manager ); checkErrorLevel( logger ); } public void testFatalLevelConfiguration() throws Exception { LoggerManager manager = getManager( Logger.LEVEL_FATAL ); Logger logger = extractLogger( manager ); checkFatalLevel( logger ); logger = extractLogger( manager ); checkFatalLevel( logger ); } private LoggerManager getManager( int threshold ) throws Exception { LoggerManager manager = createLoggerManager(); manager.setThreshold( threshold ); assertNotNull( manager ); return manager; } /* private Logger extractRootLogger( LoggerManager manager ) { Logger logger = manager.getRootLogger(); assertNotNull( logger ); return logger; } */ private Logger extractLogger( LoggerManager manager ) { Logger logger = manager.getLoggerForComponent( "foo" ); assertNotNull( logger ); assertEquals( "foo", logger.getName() ); return logger; } private void checkDebugLevel( Logger logger ) { assertTrue( "debug enabled", logger.isDebugEnabled() ); assertTrue( "info enabled", logger.isInfoEnabled() ); assertTrue( "warn enabled", logger.isWarnEnabled() ); assertTrue( "error enabled", logger.isErrorEnabled() ); assertTrue( "fatal enabled", logger.isFatalErrorEnabled() ); } private void checkInfoLevel( Logger logger ) { assertFalse( "debug disabled", logger.isDebugEnabled() ); assertTrue( "info enabled", logger.isInfoEnabled() ); assertTrue( "warn enabled", logger.isWarnEnabled() ); assertTrue( "error enabled", logger.isErrorEnabled() ); assertTrue( "fatal enabled", logger.isFatalErrorEnabled() ); } private void checkWarnLevel( Logger logger ) { assertFalse( "debug disabled", logger.isDebugEnabled() ); assertFalse( "info disabled", logger.isInfoEnabled() ); assertTrue( "warn enabled", logger.isWarnEnabled() ); assertTrue( "error enabled", logger.isErrorEnabled() ); assertTrue( "fatal enabled", logger.isFatalErrorEnabled() ); } private void checkErrorLevel( Logger logger ) { assertFalse( "debug disabled", logger.isDebugEnabled() ); assertFalse( "info disabled", logger.isInfoEnabled() ); assertFalse( "warn disabled", logger.isWarnEnabled() ); assertTrue( "error enabled", logger.isErrorEnabled() ); assertTrue( "fatal enabled", logger.isFatalErrorEnabled() ); } private void checkFatalLevel( Logger logger ) { assertFalse( "debug disabled", logger.isDebugEnabled() ); assertFalse( "info disabled", logger.isInfoEnabled() ); assertFalse( "warn disabled", logger.isWarnEnabled() ); assertFalse( "error disabled", logger.isErrorEnabled() ); assertTrue( "fatal enabled", logger.isFatalErrorEnabled() ); } } ././@LongLink0000000000000000000000000000016300000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/PlexusTestCaseTest.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/PlexusTes0000644000175000017500000000602011107373274033610 0ustar twernertwernerpackage org.codehaus.plexus; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.component.discovery.DiscoveredComponent; import org.codehaus.plexus.component.repository.exception.ComponentLookupException; import org.codehaus.plexus.test.DefaultLoadOnStartService; import java.io.File; /** * @author Jason van Zyl * @version $Id: PlexusTestCaseTest.java 7828 2008-11-14 22:07:56Z dain $ */ public class PlexusTestCaseTest extends TestCase { private String basedir; public void setUp() { basedir = System.getProperty( "basedir" ); if ( basedir == null ) { basedir = new File( "." ).getAbsolutePath(); } } public void testPlexusTestCase() throws Exception { PlexusTestCase tc = new PlexusTestCase() { }; tc.setUp(); try { tc.lookup( DiscoveredComponent.class, "unknown" ); fail( "Expected ComponentLookupException." ); } catch ( ComponentLookupException ex ) { assertTrue( true ); } // This component is discovered from src/test/META-INF/plexus/components.xml DiscoveredComponent component = tc.lookup( DiscoveredComponent.class ); assertNotNull( component ); assertNotNull( tc.getClassLoader() ); tc.tearDown(); } public void testLoadOnStartComponents() throws Exception { PlexusTestCase tc = new PlexusTestCase() { protected String getCustomConfigurationName() { return PlexusTestCase.getTestConfiguration( getClass() ); } }; tc.setupContainer(); // Assert that the load on start component has started. assertTrue( "The load on start components haven't been started.", DefaultLoadOnStartService.isStarted ); tc.tearDown(); } public void testGetFile() { File file = PlexusTestCase.getTestFile( "pom.xml" ); assertTrue( file.exists() ); file = PlexusTestCase.getTestFile( basedir, "pom.xml" ); assertTrue( file.exists() ); } public void testGetPath() { File file = new File( PlexusTestCase.getTestPath( "pom.xml" ) ); assertTrue( file.exists() ); file = new File( PlexusTestCase.getTestPath( basedir, "pom.xml" ) ); assertTrue( file.exists() ); } } ././@LongLink0000000000000000000000000000015200000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/configuration/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/configura0000755000175000017500000000000011225200001033603 5ustar twernertwerner././@LongLink0000000000000000000000000000016100000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/configuration/source/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/configura0000755000175000017500000000000011225200001033603 5ustar twernertwerner././@LongLink0000000000000000000000000000021700000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/configuration/source/ADummyConfigurationSource.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/configura0000644000175000017500000000060310777725005033637 0ustar twernertwernerpackage org.codehaus.plexus.configuration.source; import org.codehaus.plexus.component.repository.ComponentDescriptor; import org.codehaus.plexus.configuration.PlexusConfiguration; public class ADummyConfigurationSource implements ConfigurationSource { public PlexusConfiguration getConfiguration( ComponentDescriptor componentDescriptor ) { return null; } } ././@LongLink0000000000000000000000000000022700000000000011566 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/configuration/source/OverridingConfigurationSourceTest.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/configura0000644000175000017500000000124410777725005033641 0ustar twernertwernerpackage org.codehaus.plexus.configuration.source; import org.codehaus.plexus.MutablePlexusContainer; import org.codehaus.plexus.PlexusTestCase; public class OverridingConfigurationSourceTest extends PlexusTestCase { public void testBasic() throws Exception { // we have plexus.xml with configSource that overrides the Plexus default one, so the container // should use it instead of the "default" one ConfigurationSource cs = ( (MutablePlexusContainer) getContainer() ).getConfigurationSource(); assertNotNull( cs ); assertEquals( ADummyConfigurationSource.class.getName(), cs.getClass().getName() ); } } ././@LongLink0000000000000000000000000000022500000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/configuration/source/AnotherDummyConfigurationSource.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/configura0000644000175000017500000000067710777725005033652 0ustar twernertwernerpackage org.codehaus.plexus.configuration.source; import org.codehaus.plexus.component.repository.ComponentDescriptor; import org.codehaus.plexus.configuration.PlexusConfiguration; public class AnotherDummyConfigurationSource implements ConfigurationSource { private ConfigurationSource configurationSource; public PlexusConfiguration getConfiguration( ComponentDescriptor componentDescriptor ) { return null; } } ././@LongLink0000000000000000000000000000022600000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/configuration/source/ExtendingConfigurationSourceTest.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/configura0000644000175000017500000000231110777725005033635 0ustar twernertwernerpackage org.codehaus.plexus.configuration.source; import org.codehaus.plexus.MutablePlexusContainer; import org.codehaus.plexus.PlexusTestCase; public class ExtendingConfigurationSourceTest extends PlexusTestCase { public void testBasic() throws Exception { // we have plexus.xml with two configSources, so the container should use the "chained" case, // which is ChainedConfigurationSource with 3 elem in list: the plexusDefaultConfig source, // and the two user provided, in this order: ADummyConfigurationSource, AnotherDummyConfigurationSource ConfigurationSource cs = ( (MutablePlexusContainer) getContainer() ).getConfigurationSource(); assertNotNull( cs ); assertEquals( ChainedConfigurationSource.class.getName(), cs.getClass().getName() ); ChainedConfigurationSource ccs = (ChainedConfigurationSource) cs; // we have 3 config sources overall assertEquals( 3, ccs.getConfigurationSources().size() ); // and the last in the source list is container source assertEquals( ContainerConfigurationSource.class.getName(), ccs .getConfigurationSources().get( 2 ).getClass().getName() ); } } ././@LongLink0000000000000000000000000000022400000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/configuration/source/DefaultConfigurationSourceTest.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/configura0000644000175000017500000000121310777725005033635 0ustar twernertwernerpackage org.codehaus.plexus.configuration.source; import org.codehaus.plexus.MutablePlexusContainer; import org.codehaus.plexus.PlexusTestCase; public class DefaultConfigurationSourceTest extends PlexusTestCase { public void testBasic() throws Exception { // we have no plexus.xml, so the container should use the "default" source, // which is ContainerConfigurationSource ConfigurationSource cs = ( (MutablePlexusContainer) getContainer() ).getConfigurationSource(); assertNotNull( cs ); assertEquals( ContainerConfigurationSource.class.getName(), cs.getClass().getName() ); } } ././@LongLink0000000000000000000000000000015500000000000011566 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/configuration/io/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/configura0000755000175000017500000000000011225200001033603 5ustar twernertwerner././@LongLink0000000000000000000000000000022200000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/configuration/io/XmlPlexusConfigurationWriterTest.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/configura0000644000175000017500000000201710777725005033640 0ustar twernertwernerpackage org.codehaus.plexus.configuration.io; import java.io.StringReader; import java.io.StringWriter; import junit.framework.TestCase; import org.codehaus.plexus.configuration.ConfigurationTestHelper; import org.codehaus.plexus.configuration.PlexusConfiguration; import org.codehaus.plexus.configuration.xml.XmlPlexusConfiguration; import org.codehaus.plexus.util.xml.Xpp3Dom; import org.codehaus.plexus.util.xml.Xpp3DomBuilder; public class XmlPlexusConfigurationWriterTest extends TestCase { public void testWrite() throws Exception { PlexusConfiguration c = ConfigurationTestHelper.getTestConfiguration(); XmlPlexusConfigurationWriter cw = new XmlPlexusConfigurationWriter(); StringWriter writer = new StringWriter(); cw.write( writer, c ); Xpp3Dom dom = Xpp3DomBuilder.build( new StringReader( writer.toString() ) ); XmlPlexusConfiguration c1 = new XmlPlexusConfiguration( dom ); ConfigurationTestHelper.testConfiguration( c1 ); } } ././@LongLink0000000000000000000000000000022200000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/configuration/io/XmlPlexusConfigurationReaderTest.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/configura0000644000175000017500000000122510777725005033640 0ustar twernertwernerpackage org.codehaus.plexus.configuration.io; import java.io.StringReader; import junit.framework.TestCase; import org.codehaus.plexus.configuration.ConfigurationTestHelper; import org.codehaus.plexus.configuration.PlexusConfiguration; public class XmlPlexusConfigurationReaderTest extends TestCase { public void testRead() throws Exception { StringReader sr = new StringReader( ConfigurationTestHelper.getXmlConfiguration() ); XmlPlexusConfigurationReader reader = new XmlPlexusConfigurationReader(); PlexusConfiguration c = reader.read( sr ); ConfigurationTestHelper.testConfiguration( c ); } } ././@LongLink0000000000000000000000000000022100000000000011560 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/configuration/ConfigurationResourceExceptionTest.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/configura0000644000175000017500000000211710722311152033621 0ustar twernertwernerpackage org.codehaus.plexus.configuration; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 Jason van Zyl * * @version $Id: ConfigurationResourceExceptionTest.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public class ConfigurationResourceExceptionTest extends TestCase { public void testException() { PlexusConfigurationResourceException e = new PlexusConfigurationResourceException( "bad doggy!" ); assertEquals( "bad doggy!", e.getMessage() ); } } ././@LongLink0000000000000000000000000000020600000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/configuration/ConfigurationTestHelper.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/configura0000644000175000017500000000537610722311152033633 0ustar twernertwernerpackage org.codehaus.plexus.configuration; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.component.repository.io.PlexusTools; import java.io.StringReader; /** * @author Jason van Zyl * @version $Id: ConfigurationTestHelper.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public abstract class ConfigurationTestHelper extends TestCase { public static PlexusConfiguration getTestConfiguration() throws Exception { return PlexusTools.buildConfiguration( "", new StringReader( ConfigurationTestHelper.getXmlConfiguration() ) ); } public static String getXmlConfiguration() { return "" + "" + "" + "string" + "0" + "not-a-number" + "true" + "false" + "not-a-boolean" + ""; } public static void testConfiguration( PlexusConfiguration c ) throws Exception { // Exercise all value/attribute retrieval methods. // Values // TODO: uncomment once maven can test the latest plexus-utils // assertNull( c.getChild( "singleton" ).getValue( null ) ); // String assertEquals( "string", c.getValue( "string" ) ); assertEquals( "string", c.getChild( "string" ).getValue() ); assertEquals( "string", c.getChild( "ne-string" ).getValue( "string" ) ); assertNull( c.getChild( "not-existing" ).getValue( null ) ); assertEquals( "''", "'" + c.getChild( "empty-element" ).getValue() + "'" ); assertEquals( "", c.getChild( "empty-element" ).getValue( null ) ); // Attributes assertEquals( "string", c.getChild( "string" ).getAttribute( "string" )); assertEquals( "attribute", c.getChild( "singleton" ).getAttribute( "attribute" )); } } ././@LongLink0000000000000000000000000000015600000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/configuration/xml/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/configura0000755000175000017500000000000011225200001033603 5ustar twernertwerner././@LongLink0000000000000000000000000000021500000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/configuration/xml/XmlPlexusConfigurationTest.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/configura0000644000175000017500000000636210746717116033647 0ustar twernertwernerpackage org.codehaus.plexus.configuration.xml; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.configuration.ConfigurationTestHelper; import org.codehaus.plexus.configuration.PlexusConfiguration; /** * @author Ran Tene * @version $Id: XmlPlexusConfigurationTest.java 7187 2008-01-26 20:55:42Z cstamas $ */ public final class XmlPlexusConfigurationTest extends TestCase { private XmlPlexusConfiguration configuration; public void setUp() { configuration = new XmlPlexusConfiguration( "a" ); } public void testWithHelper() throws Exception { PlexusConfiguration c = ConfigurationTestHelper.getTestConfiguration(); ConfigurationTestHelper.testConfiguration( c ); } public void testGetValue() throws Exception { String orgValue = "Original String"; configuration.setValue( orgValue ); assertEquals( orgValue, configuration.getValue() ); } public void testGetAttribute() throws Exception { String key = "key"; String value = "original value"; String defaultStr = "default"; configuration.setAttribute( key, value ); assertEquals( value, configuration.getAttribute( key, defaultStr ) ); assertEquals( defaultStr, configuration.getAttribute( "newKey", defaultStr ) ); } public void testGetChild() throws Exception { PlexusConfiguration child = (XmlPlexusConfiguration) configuration.getChild( "child" ); assertNotNull( child ); child.setValue( "child value" ); assertEquals( 1, configuration.getChildCount() ); child = (XmlPlexusConfiguration) configuration.getChild( "child" ); assertNotNull( child ); assertEquals( "child value", child.getValue() ); assertEquals( 1, configuration.getChildCount() ); } public void testToString() throws Exception { PlexusConfiguration c = ConfigurationTestHelper.getTestConfiguration(); assertEquals( "string\n", c.getChild( "string" ).toString() ); // TODO: uncomment once maven can test the latest plexus-utils // assertEquals( "\n", c.getChild( "singleton" ).toString() ); } public void testProgrammaticConfigurationCreation() throws Exception { String viewRoot = "/path/to/viewRoot"; PlexusConfiguration c = new XmlPlexusConfiguration( "configuration" ) .addChild( "viewRoot", viewRoot ); assertEquals( viewRoot, c.getChild( "viewRoot" ).getValue() ); } } ././@LongLink0000000000000000000000000000021500000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/configuration/DefaultPlexusConfigurationTest.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/configura0000644000175000017500000001050211110641321033612 0ustar twernertwernerpackage org.codehaus.plexus.configuration; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 Ran Tene * @version $Id: DefaultPlexusConfigurationTest.java 7854 2008-11-18 22:33:53Z bentmann $ */ public final class DefaultPlexusConfigurationTest extends TestCase { private DefaultPlexusConfiguration configuration; public void setUp() { configuration = new DefaultPlexusConfiguration( "a" ); } public void testWithHelper() throws Exception { PlexusConfiguration c = ConfigurationTestHelper.getTestConfiguration(); ConfigurationTestHelper.testConfiguration( c ); } public void testGetValue() throws Exception { String orgValue = "Original String"; configuration.setValue( orgValue ); assertEquals( orgValue, configuration.getValue() ); } public void testGetAttribute() throws Exception { String key = "key"; String value = "original value"; String defaultStr = "default"; configuration.setAttribute( key, value ); assertEquals( value, configuration.getAttribute( key, defaultStr ) ); assertEquals( defaultStr, configuration.getAttribute( "newKey", defaultStr ) ); } public void testGetChild() throws Exception { DefaultPlexusConfiguration child = (DefaultPlexusConfiguration) configuration.getChild( "child" ); assertNotNull( child ); child.setValue( "child value" ); assertEquals( 1, configuration.getChildCount() ); child = (DefaultPlexusConfiguration) configuration.getChild( "child" ); assertNotNull( child ); assertEquals( "child value", child.getValue() ); assertEquals( 1, configuration.getChildCount() ); } public void testToString() throws Exception { // TODO: this currently works since getTestConfiguration() invokes PlexusTools.buildConfiguration() // and it returns XmlPlexusConfiguration actually. PlexusConfiguration c = ConfigurationTestHelper.getTestConfiguration(); assertEquals( "string\n", c.getChild( "string" ).toString() ); // TODO: uncomment once maven can test the latest plexus-utils assertEquals( "\n", c.getChild( "singleton" ).toString() ); } public void testProgrammaticConfigurationCreation() throws Exception { String viewRoot = "/path/to/viewRoot"; PlexusConfiguration c = new DefaultPlexusConfiguration( "configuration" ).addChild( "viewRoot", viewRoot ); assertEquals( viewRoot, c.getChild( "viewRoot" ).getValue() ); } public void testChildOrdering() throws Exception { PlexusConfiguration child0 = new DefaultPlexusConfiguration( "child" ); PlexusConfiguration child1 = new DefaultPlexusConfiguration( "child" ); PlexusConfiguration child2 = new DefaultPlexusConfiguration( "special-child" ); PlexusConfiguration child3 = new DefaultPlexusConfiguration( "child" ); PlexusConfiguration child4 = new DefaultPlexusConfiguration( "child" ); configuration.addChild( child0 ); configuration.addChild( child1 ); configuration.addChild( child2 ); configuration.addChild( child3 ); configuration.addChild( child4 ); assertEquals( 5, configuration.getChildCount() ); assertSame( child0, configuration.getChild( 0 ) ); assertSame( child1, configuration.getChild( 1 ) ); assertSame( child2, configuration.getChild( 2 ) ); assertSame( child3, configuration.getChild( 3 ) ); assertSame( child4, configuration.getChild( 4 ) ); } } ././@LongLink0000000000000000000000000000020200000000000011557 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/DefaultComponentLookupManagerTest.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/DefaultCo0000644000175000017500000000211711107373274033525 0ustar twernertwernerpackage org.codehaus.plexus; import org.codehaus.plexus.component.repository.exception.ComponentLookupException; import org.codehaus.plexus.test.ComponentA; /** * @author Trygve Laugstøl * @version $Id: DefaultComponentLookupManagerTest.java 7828 2008-11-14 22:07:56Z dain $ */ public class DefaultComponentLookupManagerTest extends PlexusTestCase { public void testLookupsWithAndWithoutRoleHint() throws Exception { String resource = getConfigurationName( "components.xml" ); System.out.println( "resource = " + resource ); assertNotNull( resource ); ContainerConfiguration c = new DefaultContainerConfiguration() .setName( "test" ) .setContainerConfiguration( resource ); DefaultPlexusContainer container = new DefaultPlexusContainer( c ); try { container.lookup( ComponentA.class ); fail( "Expected exception" ); } catch ( ComponentLookupException e ) { // expected } } } ././@LongLink0000000000000000000000000000014600000000000011566 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/hierarchy/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/hierarchy0000755000175000017500000000000011225200001033604 5ustar twernertwerner././@LongLink0000000000000000000000000000017200000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/hierarchy/TestServiceImpl.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/hierarchy0000644000175000017500000000000010434530032033607 0ustar twernertwerner././@LongLink0000000000000000000000000000017600000000000011571 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/hierarchy/PlexusHierarchyTest.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/hierarchy0000644000175000017500000000000010434530032033607 0ustar twernertwerner././@LongLink0000000000000000000000000000017400000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/hierarchy/PlexusTestService.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/hierarchy0000644000175000017500000000000010434530032033607 0ustar twernertwerner././@LongLink0000000000000000000000000000014600000000000011566 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000755000175000017500000000000011225200001033630 5ustar twernertwerner././@LongLink0000000000000000000000000000015600000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/manager/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000755000175000017500000000000011225200001033630 5ustar twernertwerner././@LongLink0000000000000000000000000000024400000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/manager/SlowComponentClassicSingletonComponentManagerTest.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000643111112265467033664 0ustar twernertwernerpackage org.codehaus.plexus.component.manager; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.PlexusContainer; import org.codehaus.plexus.PlexusTestCase; /** * @author Ben Walding * @version $Id: SlowComponentClassicSingletonComponentManagerTest.java 7876 2008-11-23 14:39:51Z bentmann $ */ public class SlowComponentClassicSingletonComponentManagerTest extends PlexusTestCase { public void testThreads1() throws Exception { test( 1 ); } /** * Tests that multiple concurrent threads don't acquire different components. */ public void testThreads1000() throws Exception { test( 1000 ); } private void test( int count ) throws Exception { ComponentLookupThread components[] = new ComponentLookupThread[ count ]; //Create them for ( int i = 0; i < count; i++ ) { components[ i ] = new ComponentLookupThread( getContainer() ); } //Start them for ( int i = 0; i < count; i++ ) { components[i].start(); } //Wait for them to finish for ( int i = 0; i < count; i++ ) { components[i].join( 10000 ); } //Get master component SlowComponent masterComponent = lookup( SlowComponent.class ); //Verify them for ( int i = 0; i < count; i++ ) { assertSame( i + ":" + components[i].getComponent() + " == " + masterComponent, masterComponent, components[i].getComponent() ); } } class ComponentLookupThread extends Thread { final PlexusContainer container; private SlowComponent component; public ComponentLookupThread( PlexusContainer container ) { /* * NOTE: A high priority seems to increase the likelihood of exhibiting missing synchronization. */ setPriority( MAX_PRIORITY ); this.container = container; } public void run() { try { // DefaultPlexusContainer.setLookupRealm( lookupRealm ); SlowComponent tmpComponent = container.lookup( SlowComponent.class ); synchronized ( this ) { this.component = tmpComponent; } } catch ( Exception e ) { container.getLookupRealm().display(); e.printStackTrace(); } } public SlowComponent getComponent() { synchronized ( this ) { return component; } } } } ././@LongLink0000000000000000000000000000022700000000000011566 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/manager/ClassicSingletonComponentManagerTest.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000125611107373274033664 0ustar twernertwernerpackage org.codehaus.plexus.component.manager; import org.codehaus.plexus.PlexusTestCase; /** * @author Ben Walding * @version $Id: ClassicSingletonComponentManagerTest.java 7828 2008-11-14 22:07:56Z dain $ */ public class ClassicSingletonComponentManagerTest extends PlexusTestCase { public void testSequentialLookupsReturnTheSameInstance() throws Exception { Component a = lookup( Component.class ); Component b = lookup( Component.class ); Component c = lookup( Component.class ); Component d = lookup( Component.class ); assertTrue( a == b ); assertTrue( a == c ); assertTrue( a == d ); } } ././@LongLink0000000000000000000000000000020300000000000011560 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/manager/DefaultComponent.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000021010572064100033637 0ustar twernertwernerpackage org.codehaus.plexus.component.manager; /** @author Jason van Zyl */ public class DefaultComponent implements Component { } ././@LongLink0000000000000000000000000000020000000000000011555 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/manager/SlowComponent.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000256110553305653033664 0ustar twernertwernerpackage org.codehaus.plexus.component.manager; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.personality.plexus.lifecycle.phase.Startable; /** * A slow starting component that checks that sleeps during its Start phase. * * Configuration: * delay - number of milliseconds to sleep during start() * @author Ben Walding * @version $Id: SlowComponent.java 5451 2007-01-17 02:36:27Z jvanzyl $ */ public class SlowComponent implements Startable { public static final String ROLE = SlowComponent.class.getName(); /* Number of ms to sleep during start() */ private long delay; public void start() { try { Thread.sleep( delay ); } catch ( InterruptedException e ) { } } public void stop() { } } ././@LongLink0000000000000000000000000000017400000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/manager/Component.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000023110572064100033642 0ustar twernertwernerpackage org.codehaus.plexus.component.manager; /** @author Jason van Zyl */ public interface Component { String ROLE = Component.class.getName(); } ././@LongLink0000000000000000000000000000015600000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/factory/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000755000175000017500000000000011225200001033630 5ustar twernertwerner././@LongLink0000000000000000000000000000021000000000000011556 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/factory/TestComponentFactory2.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000227310537703157033667 0ustar twernertwernerpackage org.codehaus.plexus.component.factory; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.PlexusContainer; import org.codehaus.plexus.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.repository.ComponentDescriptor; public class TestComponentFactory2 implements ComponentFactory { public String getId() { return "testFactory2"; } public Object newInstance( ComponentDescriptor componentDescriptor, ClassRealm classRealm, PlexusContainer container ) throws ComponentInstantiationException { return new TestFactoryResultComponent(getId()); } } ././@LongLink0000000000000000000000000000016600000000000011570 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/factory/nonjava/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000755000175000017500000000000011225200001033630 5ustar twernertwerner././@LongLink0000000000000000000000000000022600000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/factory/nonjava/NonJavaComponentFactoryTest.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000072611107373274033665 0ustar twernertwernerpackage org.codehaus.plexus.component.factory.nonjava; import org.codehaus.plexus.PlexusTestCase; import org.codehaus.plexus.component.factory.ComponentFactory; /** @author Jason van Zyl */ public class NonJavaComponentFactoryTest extends PlexusTestCase { public void testNonJavaComponentFactory() throws Exception { ComponentFactory factory = lookup( ComponentFactory.class, "nonjava" ); assertNotNull( factory ); } } ././@LongLink0000000000000000000000000000022200000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/factory/nonjava/NonJavaComponentFactory.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000144710707173075033670 0ustar twernertwernerpackage org.codehaus.plexus.component.factory.nonjava; import org.codehaus.plexus.component.factory.ComponentFactory; import org.codehaus.plexus.component.factory.ComponentInstantiationException; import org.codehaus.plexus.component.repository.ComponentDescriptor; import org.codehaus.plexus.classworlds.realm.ClassRealm; import org.codehaus.plexus.PlexusContainer; /** @author Jason van Zyl */ public class NonJavaComponentFactory implements ComponentFactory { public String getId() { return "nonjava"; } public Object newInstance( ComponentDescriptor componentDescriptor, ClassRealm classRealm, PlexusContainer container ) throws ComponentInstantiationException { return "component"; } } ././@LongLink0000000000000000000000000000016300000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/factory/java/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000755000175000017500000000000011225200001033630 5ustar twernertwerner././@LongLink0000000000000000000000000000022000000000000011557 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/factory/java/JavaComponentFactoryTest.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000001030210722311152033641 0ustar twernertwernerpackage org.codehaus.plexus.component.factory.java; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.ContainerConfiguration; import org.codehaus.plexus.DefaultContainerConfiguration; import org.codehaus.plexus.DefaultPlexusContainer; import org.codehaus.plexus.PlexusContainer; import org.codehaus.plexus.classworlds.ClassWorld; import org.codehaus.plexus.component.factory.Component; import org.codehaus.plexus.component.factory.ComponentImplA; import org.codehaus.plexus.component.factory.ComponentImplB; import org.codehaus.plexus.component.factory.ComponentImplC; import org.codehaus.plexus.component.factory.ComponentInstantiationException; import org.codehaus.plexus.component.repository.ComponentDescriptor; /** * @author Jason van Zyl * @author Michal Maczka * @version $Id: JavaComponentFactoryTest.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public class JavaComponentFactoryTest extends TestCase { public void testComponentCreation() throws Exception { JavaComponentFactory factory = new JavaComponentFactory(); ComponentDescriptor componentDescriptor = new ComponentDescriptor(); componentDescriptor.setRole( Component.class.getName() ); componentDescriptor.setImplementation( ComponentImplA.class.getName() ); ClassWorld classWorld = new ClassWorld(); classWorld.newRealm( "core", Thread.currentThread().getContextClassLoader() ); PlexusContainer container = new DefaultPlexusContainer( containerConfiguration( classWorld )); Object component = factory.newInstance( componentDescriptor, classWorld.getRealm( "core" ), container ); assertNotNull( component ); } public void testComponentCreationWithNotMatchingRoleAndImplemenation() throws Exception { JavaComponentFactory factory = new JavaComponentFactory(); ComponentDescriptor componentDescriptor = new ComponentDescriptor(); componentDescriptor.setRole( Component.class.getName() ); componentDescriptor.setImplementation( ComponentImplB.class.getName() ); ClassWorld classWorld = new ClassWorld(); classWorld.newRealm( "core", Thread.currentThread().getContextClassLoader() ); PlexusContainer container = new DefaultPlexusContainer( containerConfiguration( classWorld )); factory.newInstance( componentDescriptor, classWorld.getRealm( "core" ), container ); } public void testInstanciationOfAAbstractComponent() throws Exception { JavaComponentFactory factory = new JavaComponentFactory(); ComponentDescriptor componentDescriptor = new ComponentDescriptor(); componentDescriptor.setRole( Component.class.getName() ); componentDescriptor.setImplementation( ComponentImplC.class.getName() ); ClassWorld classWorld = new ClassWorld(); classWorld.newRealm( "core", Thread.currentThread().getContextClassLoader() ); PlexusContainer container = new DefaultPlexusContainer( containerConfiguration( classWorld ) ); try { factory.newInstance( componentDescriptor, classWorld.getRealm( "core" ), container ); fail( "Expected ComponentInstantiationException when instanciating a abstract class." ); } catch( ComponentInstantiationException ex ) { assertTrue( true ); } } private ContainerConfiguration containerConfiguration( ClassWorld classWorld ) { ContainerConfiguration c = new DefaultContainerConfiguration() .setClassWorld( classWorld ); return c; } } ././@LongLink0000000000000000000000000000021000000000000011556 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/factory/TestComponentFactory1.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000227310537703157033667 0ustar twernertwernerpackage org.codehaus.plexus.component.factory; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.PlexusContainer; import org.codehaus.plexus.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.repository.ComponentDescriptor; public class TestComponentFactory1 implements ComponentFactory { public String getId() { return "testFactory1"; } public Object newInstance( ComponentDescriptor componentDescriptor, ClassRealm classRealm, PlexusContainer container ) throws ComponentInstantiationException { return new TestFactoryResultComponent(getId()); } } ././@LongLink0000000000000000000000000000020100000000000011556 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/factory/ComponentImplA.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000147310722311152033652 0ustar twernertwernerpackage org.codehaus.plexus.component.factory; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * * @version $Id: ComponentImplA.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public class ComponentImplA implements Component { } ././@LongLink0000000000000000000000000000021500000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/factory/TestFactoryResultComponent.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000163010531217373033655 0ustar twernertwernerpackage org.codehaus.plexus.component.factory; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 TestFactoryResultComponent { private final String factoryId; public TestFactoryResultComponent( String factoryId ) { this.factoryId = factoryId; } public String getFactoryId() { return factoryId; } } ././@LongLink0000000000000000000000000000020100000000000011556 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/factory/ComponentImplC.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000152110531217373033654 0ustar twernertwernerpackage org.codehaus.plexus.component.factory; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 Michal Maczka * @version $Id: ComponentImplC.java 4779 2006-11-23 04:09:31Z jvanzyl $ */ public abstract class ComponentImplC { } ././@LongLink0000000000000000000000000000020100000000000011556 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/factory/ComponentImplB.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000151010531217373033652 0ustar twernertwernerpackage org.codehaus.plexus.component.factory; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 Michal Maczka * @version $Id: ComponentImplB.java 4779 2006-11-23 04:09:31Z jvanzyl $ */ public class ComponentImplB { } ././@LongLink0000000000000000000000000000022100000000000011560 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/factory/DiscoveredComponentFactoryTest.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000431311110043614033643 0ustar twernertwernerpackage org.codehaus.plexus.component.factory; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.PlexusTestCase; import org.codehaus.plexus.component.repository.ComponentDescriptor; public class DiscoveredComponentFactoryTest extends PlexusTestCase { public void testShouldFindComponentFactoriesDefinedInBothPlexusXmlAndComponentsXml() throws Exception { assertNotNull( "Cannot find test component factory from plexus.xml test resource.", lookup( ComponentFactory.class, "testFactory1" ) ); assertNotNull( "Cannot find test component factory from components.xml test resource.", lookup( ComponentFactory.class, "testFactory2" ) ); } public void testShouldInstantiateComponentUsingFactoryDiscoveredInPlexusXml() throws Exception { } public void testShouldInstantiateComponentUsingFactoryDiscoveredInComponentsXml() throws Exception { lookupTestComponent( "testFactory2" ); } private void lookupTestComponent( String factoryId ) throws Exception { ComponentDescriptor descriptor = new ComponentDescriptor(); descriptor.setComponentFactory( factoryId ); descriptor.setRole( "role" ); descriptor.setRoleHint( "hint" ); descriptor.setImplementation( "something interesting" ); getContainer().addComponentDescriptor( descriptor ); Object component = lookup( "role", "hint" ); assertTrue( component instanceof TestFactoryResultComponent ); assertEquals( factoryId, ( (TestFactoryResultComponent) component ).getFactoryId() ); } } ././@LongLink0000000000000000000000000000017400000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/factory/Component.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000147210531215552033656 0ustar twernertwernerpackage org.codehaus.plexus.component.factory; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 Michal Maczka * @version $Id: Component.java 4778 2006-11-23 03:54:18Z jvanzyl $ */ public interface Component { } ././@LongLink0000000000000000000000000000016300000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/configurator/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000755000175000017500000000000011225200000033627 5ustar twernertwerner././@LongLink0000000000000000000000000000022400000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/configurator/ComponentWithPropertiesField.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000303510537423336033662 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator; /* * The MIT License * * Copyright (c) 2004, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ import java.util.Properties; /** * * @author Michal Maczka * * @version $Id: ComponentWithPropertiesField.java 5127 2006-12-12 03:49:50Z jvanzyl $ */ public class ComponentWithPropertiesField { private Properties someProperties; public Properties getSomeProperties() { return someProperties; } } ././@LongLink0000000000000000000000000000020500000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/configurator/AbstractThing.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000232310537423336033661 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator; /* * The MIT License * * Copyright (c) 2004, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ public abstract class AbstractThing { } ././@LongLink0000000000000000000000000000021100000000000011557 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/configurator/AbstractComponent.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000266410722311152033655 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator; /* * The MIT License * * Copyright (c) 2004, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ /** * * * @author Jason van Zyl * * @version $Id: AbstractComponent.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public class AbstractComponent implements Component { private String name; public String getName() { return name; } } ././@LongLink0000000000000000000000000000022500000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/configurator/ComponentWithCollectionFields.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000405711130201154033645 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator; /* * The MIT License * * Copyright (c) 2004, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.SortedSet; import java.util.Vector; /** * @author Michal Maczka * @version $Id: ComponentWithCollectionFields.java 8004 2009-01-04 18:39:40Z bentmann $ */ public class ComponentWithCollectionFields { private Vector vector; private HashSet hashSet; private List list; private List stringList; private Set set; private SortedSet sortedSet; public Vector getVector() { return vector; } public HashSet getHashSet() { return hashSet; } public List getList() { return list; } public List getStringList() { return stringList; } public Set getSet() { return set; } public SortedSet getSortedSet() { return sortedSet; } } ././@LongLink0000000000000000000000000000023100000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/configurator/AbstractComponentConfiguratorTest.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000005343111130210325033645 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator; /* * The MIT License * * Copyright (c) 2004, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ import java.io.File; import java.io.StringReader; import java.net.URI; import java.net.URL; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Properties; import java.util.Set; import java.util.Vector; import org.codehaus.plexus.PlexusTestCase; import org.codehaus.plexus.classworlds.ClassWorld; import org.codehaus.plexus.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator; import org.codehaus.plexus.component.repository.ComponentDescriptor; import org.codehaus.plexus.component.repository.io.PlexusTools; import org.codehaus.plexus.configuration.PlexusConfiguration; import org.codehaus.plexus.configuration.PlexusConfigurationException; /** * @author Michal Maczka * @version $Id: AbstractComponentConfiguratorTest.java 8005 2009-01-04 19:41:09Z bentmann $ */ public abstract class AbstractComponentConfiguratorTest extends PlexusTestCase { protected void configureComponent(Object component, ComponentDescriptor descriptor, ClassRealm realm) throws Exception { ComponentConfigurator cc = getComponentConfigurator(); cc.configureComponent( component, descriptor.getConfiguration(), realm ); } protected void configureComponent(Object component, ComponentDescriptor descriptor, ClassRealm realm, ExpressionEvaluator expressionEvaluator) throws Exception { ComponentConfigurator cc = getComponentConfigurator(); cc.configureComponent( component, descriptor.getConfiguration(), expressionEvaluator, realm ); } protected abstract ComponentConfigurator getComponentConfigurator() throws Exception; public void testComponentConfigurator() throws Exception { String xml = "" + " true" + " 64" + " -128" + " -1" + " 1" + " 2" + " 3" + " X" + " foo" + " test.txt" + " http://www.apache.org/" + " http://maven.apache.org/" + " " + " jason" + " tess" + " " + " " + " jason" + " " + ""; PlexusConfiguration configuration = PlexusTools.buildConfiguration( "", new StringReader( xml ) ); ConfigurableComponent component = new ConfigurableComponent(); ComponentDescriptor descriptor = new ComponentDescriptor(); descriptor.setRole( "role" ); descriptor.setImplementation( component.getClass().getName() ); descriptor.setConfiguration(configuration); ClassWorld classWorld = new ClassWorld(); ClassRealm realm = classWorld.newRealm( "test", getClass().getClassLoader() ); configureComponent(component, descriptor, realm); assertEquals( "check boolean value", true, component.getBooleanValue() ); assertEquals( "check byte value", 64, component.getByteValue() ); assertEquals( "check short value", -128, component.getShortValue() ); assertEquals( "check integer value", -1, component.getIntValue() ); assertEquals( "check float value", 1.0f, component.getFloatValue(), 0.001f ); assertEquals( "check long value", 2L, component.getLongValue() ); assertEquals( "check double value", 3.0, component.getDoubleValue(), 0.001 ); assertEquals( 'X', component.getCharValue() ); assertEquals( "foo", component.getStringValue() ); assertEquals( new File( "test.txt" ), component.getFileValue() ); assertEquals( new URI( "http://www.apache.org/" ), component.getUriValue() ); assertEquals( new URL( "http://maven.apache.org/" ), component.getUrlValue() ); List list = component.getImportantThings(); assertEquals( 2, list.size() ); assertEquals( "jason", ( (ImportantThing) list.get( 0 ) ).getName() ); assertEquals( "tess", ( (ImportantThing) list.get( 1 ) ).getName() ); // Embedded Configuration PlexusConfiguration c = component.getConfiguration(); assertEquals( "jason", c.getChild( "name" ).getValue() ); } public void testComponentConfiguratorWithAComponentThatProvidesSettersForConfiguration() throws Exception { String xml = "" + " 0" + " 1" + " 2" + " 3" + " foo" + " " + " jason" + " tess" + " " + " " + " jason" + " " + ""; PlexusConfiguration configuration = PlexusTools.buildConfiguration( "", new StringReader( xml ) ); ComponentWithSetters component = new ComponentWithSetters(); ComponentDescriptor descriptor = new ComponentDescriptor(); descriptor.setRole( "role" ); descriptor.setImplementation( component.getClass().getName() ); descriptor.setConfiguration(configuration); ClassWorld classWorld = new ClassWorld(); ClassRealm realm = classWorld.newRealm( "test", getClass().getClassLoader() ); configureComponent(component, descriptor, realm); assertEquals( "check integer value", 0, component.getIntValue() ); assertTrue( component.intValueSet ); assertEquals( "check float value", 1.0f, component.getFloatValue(), 0.001f ); assertTrue( component.floatValueSet ); assertEquals( "check long value", 2L, component.getLongValue() ); assertTrue( component.longValueSet ); assertEquals( "check double value", 3.0, component.getDoubleValue(), 0.001 ); assertTrue( component.doubleValueSet ); assertEquals( "foo", component.getStringValue() ); assertTrue( component.stringValueSet ); List list = component.getImportantThings(); assertEquals( 2, list.size() ); assertEquals( "jason", ( (ImportantThing) list.get( 0 ) ).getName() ); assertEquals( "tess", ( (ImportantThing) list.get( 1 ) ).getName() ); assertTrue( component.importantThingsValueSet ); // Embedded Configuration PlexusConfiguration c = component.getConfiguration(); assertEquals( "jason", c.getChild( "name" ).getValue() ); assertTrue( component.configurationValueSet ); } public void testComponentConfigurationWhereFieldsToConfigureResideInTheSuperclass() throws Exception { String xml = "" + " jason" + "
bollywood
" + "
"; PlexusConfiguration configuration = PlexusTools.buildConfiguration( "", new StringReader( xml ) ); DefaultComponent component = new DefaultComponent(); ComponentDescriptor descriptor = new ComponentDescriptor(); descriptor.setRole( "role" ); descriptor.setImplementation( component.getClass().getName() ); descriptor.setConfiguration(configuration); ClassWorld classWorld = new ClassWorld(); ClassRealm realm = classWorld.newRealm( "test", getClass().getClassLoader() ); configureComponent(component, descriptor, realm); assertEquals( "jason", component.getName() ); assertEquals( "bollywood", component.getAddress() ); } public void testComponentConfigurationWhereFieldsAreCollections() throws Exception { String xml = "" + " " + " " + " life" + " " + " " + " " + " " + " life" + " " + " " + " " + " " + " life" + " " + " " + " " + " abc" + " def" + " " + " abc" + " abc" + // TODO: implement List etc.. // "" + // " 12" + // " 34" + // "" + ""; PlexusConfiguration configuration = PlexusTools.buildConfiguration( "", new StringReader( xml ) ); ComponentWithCollectionFields component = new ComponentWithCollectionFields(); ComponentDescriptor descriptor = new ComponentDescriptor(); descriptor.setRole( "role" ); descriptor.setImplementation( component.getClass().getName() ); descriptor.setConfiguration(configuration); ClassWorld classWorld = new ClassWorld(); ClassRealm realm = classWorld.newRealm( "test", getClass().getClassLoader() ); configureComponent(component, descriptor, realm); Vector vector = component.getVector(); assertEquals( "life", ( (ImportantThing) vector.get( 0 ) ).getName() ); assertEquals( 1, vector.size() ); Set set = component.getHashSet(); assertEquals( 1, set.size() ); Object[] setContents = set.toArray(); assertEquals( "life", ( (ImportantThing) setContents[0] ).getName() ); List list = component.getList(); assertEquals( list.getClass(), LinkedList.class ); assertEquals( "life", ( (ImportantThing) list.get( 0 ) ).getName() ); assertEquals( 1, list.size() ); List stringList = component.getStringList(); assertEquals( "abc", (String) stringList.get( 0 ) ); assertEquals( "def", (String) stringList.get( 1 ) ); assertEquals( 2, stringList.size() ); set = component.getSet(); assertEquals( 1, set.size() ); set = component.getSortedSet(); assertEquals( 1, set.size() ); } public void testComponentConfigurationWhereFieldsAreArrays() throws Exception { String xml = "" + " " + " value1" + " value2" + " " + " " + " 42" + " 69" + " " + " " + " Hello" + " World!" + " " + " " + " some string" + " something important" + " 303" + " " + " " + " http://foo.com/bar" + " file://localhost/c:/windows" + " " + " " + " c:/windows" + " /usr/local/bin/foo.sh" + " " + ""; PlexusConfiguration configuration = PlexusTools.buildConfiguration( "", new StringReader( xml ) ); ComponentWithArrayFields component = new ComponentWithArrayFields(); ComponentDescriptor descriptor = new ComponentDescriptor(); descriptor.setRole( "role" ); descriptor.setImplementation( component.getClass().getName() ); descriptor.setConfiguration(configuration); ClassWorld classWorld = new ClassWorld(); ClassRealm realm = classWorld.newRealm( "test", getClass().getClassLoader() ); configureComponent(component, descriptor, realm); String[] stringArray = component.getStringArray(); assertEquals( 2, stringArray.length ); assertEquals( "value1", stringArray[0] ); assertEquals( "value2", stringArray[1] ); Integer[] integerArray = component.getIntegerArray(); assertEquals( 2, integerArray.length ); assertEquals( new Integer( 42 ), integerArray[0] ); assertEquals( new Integer( 69 ), integerArray[1] ); ImportantThing[] importantThingArray = component.getImportantThingArray(); assertEquals( 2, importantThingArray.length ); assertEquals( "Hello", importantThingArray[0].getName() ); assertEquals( "World!", importantThingArray[1].getName() ); Object[] objectArray = component.getObjectArray(); assertEquals( 3, objectArray.length ); assertEquals( "some string", objectArray[0] ); assertEquals( "something important", ( (ImportantThing) objectArray[1] ).getName() ); assertEquals( new Integer( 303 ), objectArray[2] ); URL[] urls = component.getUrlArray(); assertEquals( new URL( "http://foo.com/bar" ), urls[0] ); assertEquals( new URL( "file://localhost/c:/windows" ), urls[1] ); File[] files = component.getFileArray(); assertEquals( new File( "c:/windows" ), files[0] ); assertEquals( new File( "/usr/local/bin/foo.sh" ), files[1] ); } public void testComponentConfigurationWithCompositeFields() throws Exception { String xml = "" + " " + " I am not abstract!" + " " + ""; PlexusConfiguration configuration = PlexusTools.buildConfiguration( "", new StringReader( xml ) ); ComponentWithCompositeFields component = new ComponentWithCompositeFields(); ComponentDescriptor descriptor = new ComponentDescriptor(); descriptor.setRole( "role" ); descriptor.setImplementation( component.getClass().getName() ); descriptor.setConfiguration(configuration); ClassWorld classWorld = new ClassWorld(); ClassRealm realm = classWorld.newRealm( "test", getClass().getClassLoader() ); configureComponent(component, descriptor, realm); assertNotNull( component.getThing() ); assertEquals( "I am not abstract!", component.getThing().getName() ); } public void testInvalidComponentConfiguration() throws Exception { String xml = "theName"; try { PlexusTools.buildConfiguration( "", new StringReader( xml ) ); fail( "Should have caused an error because of the invalid XML." ); } catch ( PlexusConfigurationException e ) { // Error should be caught here. } catch ( Exception e ) { fail( "Should have caught the invalid plexus configuration exception." ); } } public void testComponentConfigurationWithPropertiesFields() throws Exception { String xml = "" + " " + " " + " firstname" + " michal" + " " + " " + " lastname" + " maczka" + " " + " " + ""; PlexusConfiguration configuration = PlexusTools.buildConfiguration( "", new StringReader( xml ) ); ComponentWithPropertiesField component = new ComponentWithPropertiesField(); ComponentDescriptor descriptor = new ComponentDescriptor(); descriptor.setRole( "role" ); descriptor.setImplementation( component.getClass().getName() ); descriptor.setConfiguration(configuration); ClassWorld classWorld = new ClassWorld(); ClassRealm realm = classWorld.newRealm( "test", getClass().getClassLoader() ); configureComponent(component, descriptor, realm); Properties properties = component.getSomeProperties(); assertNotNull( properties ); assertEquals( "michal", properties.get( "firstname" ) ); assertEquals( "maczka", properties.get( "lastname" ) ); } public void testComponentConfigurationWithPropertiesFieldsWithExpression() throws Exception { String xml = "" + " ${injectedProperties} " + ""; final Properties propertiesInterpolated = new Properties(); propertiesInterpolated.put( "firstname", "olivier" ); propertiesInterpolated.put( "lastname", "lamy" ); ExpressionEvaluator expressionEvaluator = new ExpressionEvaluator() { public Object evaluate( String expression ) { return propertiesInterpolated; } public File alignToBaseDirectory( File file ) { return null; } }; PlexusConfiguration configuration = PlexusTools.buildConfiguration( "", new StringReader( xml ) ); ComponentWithPropertiesField component = new ComponentWithPropertiesField(); ComponentDescriptor descriptor = new ComponentDescriptor(); descriptor.setRole( "role" ); descriptor.setImplementation( component.getClass().getName() ); descriptor.setConfiguration(configuration); ClassWorld classWorld = new ClassWorld(); ClassRealm realm = classWorld.newRealm( "test", getClass().getClassLoader() ); configureComponent(component, descriptor, realm, expressionEvaluator); Properties properties = component.getSomeProperties(); assertNotNull( properties ); assertEquals( "olivier", properties.get( "firstname" ) ); assertEquals( "lamy", properties.get( "lastname" ) ); } public void testComponentConfigurationWithMapField() throws Exception { String xml = "" + " " + " Kenney" + " Westerhof" + " " + ""; PlexusConfiguration configuration = PlexusTools.buildConfiguration( "", new StringReader( xml ) ); ComponentWithMapField component = new ComponentWithMapField(); ComponentDescriptor descriptor = new ComponentDescriptor(); descriptor.setRole( "role" ); descriptor.setImplementation( component.getClass().getName() ); descriptor.setConfiguration(configuration); ClassWorld classWorld = new ClassWorld(); ClassRealm realm = classWorld.newRealm( "test", getClass().getClassLoader() ); configureComponent(component, descriptor, realm); Map map = component.getMap(); assertNotNull( map ); assertEquals( "Kenney", map.get( "firstName" ) ); assertEquals( "Westerhof", map.get( "lastName" ) ); } public void testComponentConfigurationWhereFieldIsBadArray() throws Exception { String xml = "" // + " string" // + ""; PlexusConfiguration configuration = PlexusTools.buildConfiguration( "", new StringReader( xml ) ); ComponentWithArrayFields component = new ComponentWithArrayFields(); ComponentDescriptor descriptor = new ComponentDescriptor(); descriptor.setRole( "role" ); descriptor.setImplementation( component.getClass().getName() ); descriptor.setConfiguration( configuration ); ClassWorld classWorld = new ClassWorld(); ClassRealm realm = classWorld.newRealm( "test", getClass().getClassLoader() ); try { configureComponent( component, descriptor, realm ); fail( "Configuration did not fail" ); } catch ( ComponentConfigurationException e ) { // expected e.printStackTrace(); } } } ././@LongLink0000000000000000000000000000020600000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/configurator/ThingInterface.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000234510537423336033665 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator; /* * The MIT License * * Copyright (c) 2004, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ public interface ThingInterface { String getName(); } ././@LongLink0000000000000000000000000000021500000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/configurator/ComponentWithMapField.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000273110537423336033664 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator; /* * The MIT License * * Copyright (c) 2004, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ import java.util.Map; /** * * @author Michal Maczka * * @version $Id: ComponentWithMapField.java 5127 2006-12-12 03:49:50Z jvanzyl $ */ public class ComponentWithMapField { private Map map; public Map getMap() { return map; } } ././@LongLink0000000000000000000000000000022000000000000011557 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/configurator/ComponentWithArrayFields.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000434710537423336033671 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator; /* * The MIT License * * Copyright (c) 2004, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ import java.io.File; import java.net.URL; /** * @author Kenney Westerhof * @version $Id: ComponentWithArrayFields.java 5127 2006-12-12 03:49:50Z jvanzyl $ */ public class ComponentWithArrayFields { private String[] stringArray; private Integer[] integerArray; private ImportantThing[] importantThingArray; private Object[] objectArray; private AbstractThing[] abstractArray; private URL[] urlArray; private File[] fileArray; public String [] getStringArray() { return stringArray; } public Integer [] getIntegerArray() { return integerArray; } public ImportantThing [] getImportantThingArray() { return importantThingArray; } public Object [] getObjectArray() { return objectArray; } public AbstractThing [] getAbstractThingArray() { return abstractArray; } public URL[] getUrlArray() { return urlArray; } public File[] getFileArray() { return fileArray; } } ././@LongLink0000000000000000000000000000022600000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/configurator/BasicComponentConfiguratorTest.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000263711107324172033661 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator; /* * The MIT License * * Copyright (c) 2004, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ public class BasicComponentConfiguratorTest extends AbstractComponentConfiguratorTest { protected ComponentConfigurator getComponentConfigurator() throws Exception { return new BasicComponentConfigurator(); } } ././@LongLink0000000000000000000000000000022400000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/configurator/ComponentWithCompositeFields.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000275410537423336033671 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator; /* * The MIT License * * Copyright (c) 2004, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ /** * * @author Michal Maczka * * @version $Id: ComponentWithCompositeFields.java 5127 2006-12-12 03:49:50Z jvanzyl $ */ public class ComponentWithCompositeFields { private ThingInterface thing; public ThingInterface getThing() { return thing; } } ././@LongLink0000000000000000000000000000020600000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/configurator/ImportantThing.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000270610722311152033652 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator; /* * The MIT License * * Copyright (c) 2004, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ /** * * * @author Jason van Zyl * * @version $Id: ImportantThing.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public class ImportantThing extends AbstractThing implements ThingInterface { private String name; public String getName() { return name; } } ././@LongLink0000000000000000000000000000021000000000000011556 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/configurator/DefaultComponent.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000270010722311152033644 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator; /* * The MIT License * * Copyright (c) 2004, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ /** * * * @author Jason van Zyl * * @version $Id: DefaultComponent.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public class DefaultComponent extends AbstractComponent { private String address; public String getAddress() { return address; } } ././@LongLink0000000000000000000000000000021400000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/configurator/ComponentWithSetters.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000730210722311152033647 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator; /* * The MIT License * * Copyright (c) 2004, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ import org.codehaus.plexus.configuration.PlexusConfiguration; import java.util.List; /** * * * @author Jason van Zyl * * @version $Id: ComponentWithSetters.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public class ComponentWithSetters { private int intValueVariable; private float floatValueVariable; private long longValueVariable; private double doubleValueVariable; private String stringValueVariable; private List importantThingsVariable; private PlexusConfiguration configurationVariable; public int getIntValue() { return intValueVariable; } public float getFloatValue() { return floatValueVariable; } public long getLongValue() { return longValueVariable; } public double getDoubleValue() { return doubleValueVariable; } public String getStringValue() { return stringValueVariable; } public List getImportantThings() { return importantThingsVariable; } public PlexusConfiguration getConfiguration() { return configurationVariable; } // ---------------------------------------------------------------------- // setters // ---------------------------------------------------------------------- boolean intValueSet; boolean floatValueSet; boolean longValueSet; boolean doubleValueSet; boolean stringValueSet; boolean importantThingsValueSet; boolean configurationValueSet; public void setIntValue( int intValue ) { this.intValueVariable = intValue; intValueSet = true; } public void setFloatValue( float floatValue ) { this.floatValueVariable = floatValue; floatValueSet = true; } public void setLongValue( long longValue ) { this.longValueVariable = longValue; longValueSet = true; } public void setDoubleValue( double doubleValue ) { this.doubleValueVariable = doubleValue; doubleValueSet = true; } public void setStringValue( String stringValue ) { this.stringValueVariable = stringValue; stringValueSet = true; } public void setImportantThings( List importantThings ) { this.importantThingsVariable = importantThings; importantThingsValueSet = true; } public void setConfiguration( PlexusConfiguration configuration ) { this.configurationVariable = configuration; configurationValueSet = true; } } ././@LongLink0000000000000000000000000000021500000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/configurator/ConfigurableComponent.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000562611074742043033666 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator; /* * The MIT License * * Copyright (c) 2004, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ import org.codehaus.plexus.configuration.PlexusConfiguration; import java.io.File; import java.net.URI; import java.net.URL; import java.util.List; /** * * * @author Jason van Zyl * * @version $Id: ConfigurableComponent.java 7783 2008-10-13 21:56:51Z bentmann $ */ public class ConfigurableComponent { private boolean booleanValue; private byte byteValue; private short shortValue; private int intValue; private float floatValue; private long longValue; private double doubleValue; private char charValue; private String stringValue; private File fileValue; private URI uriValue; private URL urlValue; private List importantThings; private PlexusConfiguration configuration; public boolean getBooleanValue() { return booleanValue; } public int getByteValue() { return byteValue; } public int getShortValue() { return shortValue; } public int getIntValue() { return intValue; } public float getFloatValue() { return floatValue; } public long getLongValue() { return longValue; } public double getDoubleValue() { return doubleValue; } public char getCharValue() { return charValue; } public String getStringValue() { return stringValue; } public File getFileValue() { return fileValue; } public URI getUriValue() { return uriValue; } public URL getUrlValue() { return urlValue; } public List getImportantThings() { return importantThings; } public PlexusConfiguration getConfiguration() { return configuration; } } ././@LongLink0000000000000000000000000000020100000000000011556 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/configurator/Component.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000247010722311152033650 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator; /* * The MIT License * * Copyright (c) 2004, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ /** * * * @author Jason van Zyl * * @version $Id: Component.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public interface Component { } ././@LongLink0000000000000000000000000000022600000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/configurator/XBeanComponentConfiguratorTest.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000463111130210325033643 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator; import org.codehaus.plexus.component.repository.ComponentDescriptor; import org.codehaus.plexus.component.builder.XBeanComponentBuilder; import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator; import org.codehaus.plexus.classworlds.realm.ClassRealm; import org.apache.xbean.recipe.ConstructionException; import org.apache.xbean.recipe.ObjectRecipe; import org.apache.xbean.recipe.ExecutionContext; import org.apache.xbean.recipe.DefaultExecutionContext; public class XBeanComponentConfiguratorTest extends AbstractComponentConfiguratorTest { @Override protected void configureComponent(Object component, ComponentDescriptor descriptor, ClassRealm realm) throws Exception { XBeanComponentBuilder componentBuilder = new XBeanComponentBuilder(); ObjectRecipe recipe = componentBuilder.createObjectRecipe(descriptor, realm); // need a caller context ExecutionContext executionContext = new DefaultExecutionContext(); executionContext.push(new ObjectRecipe(component.getClass())); // call the recipie setProperties directly, but setup the thead state first ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader(); Thread.currentThread().setContextClassLoader(realm); ExecutionContext.setContext(executionContext); try { recipe.setProperties( component ); } catch ( ConstructionException e ) { throw new ComponentConfigurationException( "Failed to configure component", e ); } finally { ExecutionContext.setContext(null); Thread.currentThread().setContextClassLoader(oldClassLoader); } } protected void configureComponent(Object component, ComponentDescriptor descriptor, ClassRealm realm, ExpressionEvaluator expressionEvaluator) throws Exception { this.configureComponent(component, descriptor, realm); } public void testComponentConfigurationWithPropertiesFieldsWithExpression() throws Exception { // expression evalator is not supported since it is not used by normal AutoConfigurePhase } protected ComponentConfigurator getComponentConfigurator() throws Exception { // this should never be called because the configureComponent is overridden throw new UnsupportedOperationException(); } } ././@LongLink0000000000000000000000000000017500000000000011570 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/PlexusTestCaseTest.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000142311122752076033656 0ustar twernertwernerpackage org.codehaus.plexus.component; import org.codehaus.plexus.PlexusTestCase; import org.codehaus.plexus.context.Context; import org.codehaus.plexus.context.ContextException; public class PlexusTestCaseTest extends PlexusTestCase { private static final String CUSTOM_PROPERTY = "custom.property"; private static final String CUSTOM_VALUE = "custom.value"; @Override protected void customizeContext( Context context ) { super.customizeContext( context ); context.put( CUSTOM_PROPERTY, CUSTOM_VALUE ); } public void testCustomizeContext() throws ContextException { String value = (String) getContainer().getContext().get( CUSTOM_PROPERTY ); assertEquals( CUSTOM_VALUE, value ); } } ././@LongLink0000000000000000000000000000021500000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/MapOrientedComponentProcessingTest.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000540011174733555033665 0ustar twernertwernerpackage org.codehaus.plexus.component; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.Map; import junit.framework.TestCase; import org.codehaus.plexus.DefaultPlexusContainer; import org.codehaus.plexus.PlexusContainer; import org.codehaus.plexus.component.repository.ComponentDescriptor; import org.codehaus.plexus.component.repository.ComponentRequirement; import org.codehaus.plexus.configuration.PlexusConfiguration; import org.codehaus.plexus.configuration.xml.XmlPlexusConfiguration; import org.codehaus.plexus.logging.LoggerManager; public class MapOrientedComponentProcessingTest extends TestCase { public void testShouldFindAndInitializeMapOrientedComponent() throws Exception { PlexusContainer embedder = new DefaultPlexusContainer(); ComponentDescriptor descriptor = new ComponentDescriptor(TestMapOrientedComponent.class, embedder.getContainerRealm()); descriptor.setRole( TestMapOrientedComponent.ROLE ); descriptor.setImplementation( TestMapOrientedComponent.ROLE ); descriptor.setComponentComposer( "map-oriented" ); descriptor.setComponentConfigurator( "map-oriented" ); ComponentRequirement requirement = new ComponentRequirement(); requirement.setFieldName( "testRequirement" ); requirement.setRole( LoggerManager.ROLE ); descriptor.addRequirement( requirement ); PlexusConfiguration param = new XmlPlexusConfiguration( "testParameter" ); param.setValue( "testValue" ); PlexusConfiguration configuration = new XmlPlexusConfiguration( "configuration" ); configuration.addChild( param ); descriptor.setConfiguration( configuration ); embedder.addComponentDescriptor( descriptor ); TestMapOrientedComponent component = embedder.lookup( TestMapOrientedComponent.class ); Map context = component.getContext(); assertTrue( "requirement (LogManager) missing from containerContext.", ( context.get( "testRequirement" ) instanceof LoggerManager ) ); assertEquals( "parameter missing from containerContext.", "testValue", context.get( "testParameter" ) ); } } ././@LongLink0000000000000000000000000000016100000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/repository/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000755000175000017500000000000011225200000033627 5ustar twernertwerner././@LongLink0000000000000000000000000000020600000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/repository/ComponentSetTest.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000672211174733555033675 0ustar twernertwernerpackage org.codehaus.plexus.component.repository; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.component.repository.io.PlexusTools; import org.codehaus.plexus.classworlds.ClassWorld; import org.codehaus.plexus.classworlds.realm.ClassRealm; import java.util.List; /** * * * @author Jason van Zyl * * @version $Id: ComponentSetTest.java 8155 2009-04-26 01:22:53Z jvanzyl $ */ public class ComponentSetTest extends TestCase { public void testSimpleComponentResolution() throws Exception { String xml = "" + " " + " " + " java.lang.String" + " c1" + " role-hint" + " component-profile" + " " + " " + " c2" + " " + " " + " c3" + " " + " " + " " + " " + " " + " " + " plexus" + " wedgy" + " 1.0" + " " + " " + ""; ClassWorld classWorld = new ClassWorld( "test", Thread.currentThread().getContextClassLoader() ); ClassRealm realm = classWorld.getRealm( "test" ); ComponentSetDescriptor cs = PlexusTools.buildComponentSet( PlexusTools.buildConfiguration( xml ), realm ); ComponentDescriptor c1 = cs.getComponents().get( 0 ); assertEquals( "c1", c1.getRole() ); assertEquals( "role-hint", c1.getRoleHint() ); assertEquals( "component-profile", c1.getComponentProfile() ); List requirements = c1.getRequirements(); assertEquals( 2, requirements.size() ); boolean containsC2 = false; boolean containsC3 = false; for ( ComponentRequirement requirement : requirements ) { if ( requirement.getRole().equals( "c2" ) ) { containsC2 = true; } else if ( requirement.getRole().equals( "c3" ) ) { containsC3 = true; } } assertTrue( containsC2 ); assertTrue( containsC3 ); ComponentDependency d1 = cs.getDependencies().get( 0 ); assertEquals( "plexus", d1.getGroupId() ); assertEquals( "wedgy", d1.getArtifactId() ); assertEquals( "1.0", d1.getVersion() ); } } ././@LongLink0000000000000000000000000000022400000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/repository/DefaultComponentRepositoryTest.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000205610722311152033650 0ustar twernertwernerpackage org.codehaus.plexus.component.repository; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 Jason van Zyl * * @version $Id: DefaultComponentRepositoryTest.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public class DefaultComponentRepositoryTest extends TestCase { private static String configuration = "" + ""; public void testDefaultComponentRepository() { } } ././@LongLink0000000000000000000000000000021600000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/repository/ComponentRequirementTest.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000233310531217373033656 0ustar twernertwernerpackage org.codehaus.plexus.component.repository; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 Michal Maczka * @version $Id: ComponentRequirementTest.java 4779 2006-11-23 04:09:31Z jvanzyl $ */ public class ComponentRequirementTest extends TestCase { public void testComponentRequirement() { ComponentRequirement requirement = new ComponentRequirement(); requirement.setFieldName( "field" ); requirement.setRole( "role" ); assertEquals( "field", requirement.getFieldName() ); assertEquals( "role", requirement.getRole() ); } } ././@LongLink0000000000000000000000000000021500000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/repository/ComponentDescriptorTest.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000620311174733555033667 0ustar twernertwernerpackage org.codehaus.plexus.component.repository; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.component.repository.io.PlexusTools; import org.codehaus.plexus.classworlds.ClassWorld; import org.codehaus.plexus.classworlds.realm.ClassRealm; import java.util.List; /** * * * @author Jason van Zyl * * @version $Id: ComponentDescriptorTest.java 8155 2009-04-26 01:22:53Z jvanzyl $ */ public class ComponentDescriptorTest extends TestCase { public void testSimpleComponentResolution() throws Exception { String cc1 = "" + " java.lang.String" + " c1" + " role-hint" + " component-profile" + " " + " " + " c2" + " " + " " + " c3" + " " + " " + ""; ClassWorld classWorld = new ClassWorld( "test", Thread.currentThread().getContextClassLoader() ); ClassRealm realm = classWorld.getRealm( "test" ); ComponentDescriptor c1 = PlexusTools.buildComponentDescriptor( cc1, realm ); assertEquals( "c1", c1.getRole() ); assertEquals( "role-hint", c1.getRoleHint() ); assertEquals( "component-profile", c1.getComponentProfile() ); List requirements = c1.getRequirements(); assertEquals( 2, requirements.size() ); boolean containsC2 = false; boolean containsC3 = false; for ( ComponentRequirement requirement : requirements ) { if ( requirement.getRole().equals( "c2" ) ) { containsC2 = true; } else if ( requirement.getRole().equals( "c3" ) ) { containsC3 = true; } } assertTrue( containsC2 ); assertTrue( containsC3 ); } public void testShouldNotBeEqualWhenRolesAreSameButHintsAreDifferent() { ComponentDescriptor desc = new ComponentDescriptor(); desc.setRole("one"); desc.setRoleHint("one"); ComponentDescriptor desc2 = new ComponentDescriptor(); desc2.setRole("one"); desc2.setRoleHint("two"); assertFalse(desc.equals(desc2)); } } ././@LongLink0000000000000000000000000000016000000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/discovery/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000755000175000017500000000000011225200001033630 5ustar twernertwerner././@LongLink0000000000000000000000000000021400000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/discovery/ComponentDiscovererTest.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000561311174733555033673 0ustar twernertwernerpackage org.codehaus.plexus.component.discovery; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.PlexusTestCase; import org.codehaus.plexus.classworlds.ClassWorld; import org.codehaus.plexus.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.repository.ComponentDescriptor; import org.codehaus.plexus.component.repository.ComponentSetDescriptor; import org.codehaus.plexus.context.DefaultContext; import java.io.File; import java.util.List; import java.util.Map; import java.util.TreeMap; /** * @author Jason van Zyl * * @version $Id: ComponentDiscovererTest.java 8155 2009-04-26 01:22:53Z jvanzyl $ */ public class ComponentDiscovererTest extends PlexusTestCase { public void testDefaultComponentDiscoverer() throws Exception { ComponentDiscoverer componentDiscoverer = new DefaultComponentDiscoverer(); ClassWorld classWorld = new ClassWorld(); ClassRealm core = classWorld.newRealm( "core" ); File testClasses = new File( getBasedir(), "target/test-classes" ); core.addURL( testClasses.toURL() ); File classes = new File( getBasedir(), "target/classes" ); core.addURL( classes.toURL() ); List componentSetDescriptors = componentDiscoverer.findComponents( new DefaultContext(), core ); ComponentDescriptor componentDescriptor = byImplementation(componentSetDescriptors).get( "org.codehaus.plexus.component.discovery.DefaultDiscoveredComponent" ); assertNotNull("componentDescriptor is null", componentDescriptor ); assertEquals( "org.codehaus.plexus.component.discovery.DiscoveredComponent", componentDescriptor.getRole() ); assertEquals( "org.codehaus.plexus.component.discovery.DefaultDiscoveredComponent", componentDescriptor.getImplementation() ); } private static Map> byImplementation(List descriptorSets) { TreeMap> index = new TreeMap>(); for ( ComponentSetDescriptor descriptorSet : descriptorSets ) { for ( ComponentDescriptor descriptor : descriptorSet.getComponents() ) { index.put(descriptor.getImplementation(), descriptor); } } return index; } } ././@LongLink0000000000000000000000000000021700000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/discovery/DefaultDiscoveredComponent.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000154410722311152033651 0ustar twernertwernerpackage org.codehaus.plexus.component.discovery; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * * @version $Id: DefaultDiscoveredComponent.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public class DefaultDiscoveredComponent implements DiscoveredComponent { } ././@LongLink0000000000000000000000000000021000000000000011556 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/discovery/DiscoveredComponent.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000155610722311152033654 0ustar twernertwernerpackage org.codehaus.plexus.component.discovery; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * * @version $Id: DiscoveredComponent.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public interface DiscoveredComponent { String ROLE = DiscoveredComponent.class.getName(); } ././@LongLink0000000000000000000000000000015700000000000011570 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/registry/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000755000175000017500000000000011225200001033630 5ustar twernertwerner././@LongLink0000000000000000000000000000021500000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/registry/TestSynchronizedComponent.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000161111124246367033660 0ustar twernertwernerpackage org.codehaus.plexus.component.registry; import org.codehaus.plexus.personality.plexus.lifecycle.phase.Startable; import org.codehaus.plexus.personality.plexus.lifecycle.phase.StartingException; import org.codehaus.plexus.personality.plexus.lifecycle.phase.StoppingException; public class TestSynchronizedComponent implements Startable { private Thread lookupThread; public synchronized void start() throws StartingException { } public synchronized void stop() throws StoppingException { lookupThread.start(); try { lookupThread.join(); } catch ( InterruptedException e ) { throw new StoppingException( "Can't stop lookupThread", e ); } } public synchronized void setLookupThread( Thread lookupThread ) { this.lookupThread = lookupThread; } } ././@LongLink0000000000000000000000000000022000000000000011557 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/registry/DefaultComponentRegistryTest.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000353711174733555033676 0ustar twernertwernerpackage org.codehaus.plexus.component.registry; import junit.framework.TestCase; import org.codehaus.plexus.DefaultPlexusContainer; import org.codehaus.plexus.PlexusContainer; import org.codehaus.plexus.component.repository.ComponentDescriptor; import org.codehaus.plexus.component.repository.exception.ComponentLookupException; public class DefaultComponentRegistryTest extends TestCase { public void testConcurrentDisposeAndLookup() throws Exception { final PlexusContainer plexus = new DefaultPlexusContainer(); ComponentDescriptor descriptor = new ComponentDescriptor( TestSynchronizedComponent.class, plexus.getContainerRealm() ); descriptor.setRole( TestSynchronizedComponent.class.getCanonicalName() ); descriptor.setImplementation( TestSynchronizedComponent.class.getCanonicalName() ); plexus.addComponentDescriptor( descriptor ); TestSynchronizedComponent component = plexus.lookup( TestSynchronizedComponent.class ); class LookupThread extends Thread { private TestSynchronizedComponent component; @Override public synchronized void run() { try { this.component = plexus.lookup( TestSynchronizedComponent.class ); } catch ( ComponentLookupException e ) { // expected } } public synchronized TestSynchronizedComponent getComponent() { return component; } } LookupThread lookupThread = new LookupThread(); component.setLookupThread( lookupThread ); plexus.dispose(); assertNull( lookupThread.getComponent() ); } } ././@LongLink0000000000000000000000000000016200000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/composition/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000755000175000017500000000000011225200000033627 5ustar twernertwerner././@LongLink0000000000000000000000000000021000000000000011556 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/composition/DefaultComponentA.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000206710722311152033652 0ustar twernertwernerpackage org.codehaus.plexus.component.composition; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * * @version $Id: DefaultComponentA.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public class DefaultComponentA implements ComponentA { private ComponentB componentB; private String host; private String port; // Just so we can retrieve the value of componentB for testing. */ public ComponentB getComponentB() { return componentB; } } ././@LongLink0000000000000000000000000000020100000000000011556 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/composition/ComponentE.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000144610722311152033652 0ustar twernertwernerpackage org.codehaus.plexus.component.composition; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * * @version $Id: ComponentE.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public interface ComponentE { } ././@LongLink0000000000000000000000000000022500000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/composition/DefaultCompositionResolverTest.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000175610722311152033656 0ustar twernertwernerpackage org.codehaus.plexus.component.composition; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * * @version $Id: DefaultCompositionResolverTest.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public class DefaultCompositionResolverTest extends AbstractCompositionResolverTest { protected CompositionResolver getCompositionResolver() { return new DefaultCompositionResolver(); } } ././@LongLink0000000000000000000000000000023600000000000011566 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/composition/ComponentWithSeveralFieldsOfTheSameType.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000207310531217373033657 0ustar twernertwernerpackage org.codehaus.plexus.component.composition; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 Trygve Laugstøl * @version $Id: ComponentWithSeveralFieldsOfTheSameType.java 4779 2006-11-23 04:09:31Z jvanzyl $ */ public class ComponentWithSeveralFieldsOfTheSameType { private ComponentE one; private ComponentE two; public ComponentE getOne() { return one; } public ComponentE getTwo() { return two; } } ././@LongLink0000000000000000000000000000020100000000000011556 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/composition/ComponentD.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000144610722311152033652 0ustar twernertwernerpackage org.codehaus.plexus.component.composition; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * * @version $Id: ComponentD.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public interface ComponentD { } ././@LongLink0000000000000000000000000000021000000000000011556 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/composition/AbstractComponent.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000167310722311152033654 0ustar twernertwernerpackage org.codehaus.plexus.component.composition; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * * @version $Id: AbstractComponent.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public class AbstractComponent implements Component { private ComponentA componentA; public ComponentA getComponentA() { return componentA; } } ././@LongLink0000000000000000000000000000020100000000000011556 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/composition/ComponentC.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000144610722311152033652 0ustar twernertwernerpackage org.codehaus.plexus.component.composition; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * * @version $Id: ComponentC.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public interface ComponentC { } ././@LongLink0000000000000000000000000000021700000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/composition/CompositionExceptionTest.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000204310722311152033644 0ustar twernertwernerpackage org.codehaus.plexus.component.composition; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 Jason van Zyl * * @version $Id: CompositionExceptionTest.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public class CompositionExceptionTest extends TestCase { public void testException() { CompositionException e = new CompositionException( "bad doggy!" ); assertEquals( "bad doggy!", e.getMessage() ); } } ././@LongLink0000000000000000000000000000020100000000000011556 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/composition/ComponentB.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000151510722311152033647 0ustar twernertwernerpackage org.codehaus.plexus.component.composition; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * * @version $Id: ComponentB.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public interface ComponentB { ComponentC getComponentC(); } ././@LongLink0000000000000000000000000000023200000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/composition/DefaultComponentComposerManagerTest.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000265111107373274033664 0ustar twernertwernerpackage org.codehaus.plexus.component.composition; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.PlexusTestCase; /** * @author Michal Maczka * @version $Id: DefaultComponentComposerManagerTest.java 7828 2008-11-14 22:07:56Z dain $ */ public class DefaultComponentComposerManagerTest extends PlexusTestCase { protected String getCustomConfigurationName() { return "org/codehaus/plexus/component/composition/components.xml"; } public void testComposition() throws Exception { ComponentA componentA = lookup( ComponentA.class ); assertNotNull( componentA ); ComponentB componentB = componentA.getComponentB(); assertNotNull( componentB ); ComponentC componentC = componentB.getComponentC(); assertNotNull( componentC ); } } ././@LongLink0000000000000000000000000000020100000000000011556 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/composition/ComponentF.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000362410531217373033662 0ustar twernertwernerpackage org.codehaus.plexus.component.composition; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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; import java.util.Map; /** * @author Michal Maczka * @version $Id: ComponentF.java 4779 2006-11-23 04:09:31Z jvanzyl $ */ public class ComponentF { private ComponentA componentA; private ComponentB componentB; private ComponentC[] componentC; private List componentD; private Map componentE; public ComponentA getComponentA() { return componentA; } public void setComponentA( ComponentA componentA ) { this.componentA = componentA; } public ComponentB getComponentB() { return componentB; } public void setComponentB( ComponentB componentB ) { this.componentB = componentB; } public ComponentC[] getComponentC() { return componentC; } public void setComponentC( ComponentC[] componentC ) { this.componentC = componentC; } public List getComponentD() { return componentD; } public void setComponentD( List componentD ) { this.componentD = componentD; } public Map getComponentE() { return componentE; } public void setComponentE( Map componentE ) { this.componentE = componentE; } } ././@LongLink0000000000000000000000000000021000000000000011556 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/composition/DefaultComponentC.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000151210722311152033644 0ustar twernertwernerpackage org.codehaus.plexus.component.composition; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * * @version $Id: DefaultComponentC.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public class DefaultComponentC implements ComponentC { } ././@LongLink0000000000000000000000000000022600000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/composition/AbstractCompositionResolverTest.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000001753711174733555033703 0ustar twernertwernerpackage org.codehaus.plexus.component.composition; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.component.repository.ComponentDescriptor; import org.codehaus.plexus.component.repository.io.PlexusTools; import org.codehaus.plexus.classworlds.ClassWorld; import org.codehaus.plexus.classworlds.realm.ClassRealm; import java.util.List; /** * * * @author Jason van Zyl * * @version $Id: AbstractCompositionResolverTest.java 8155 2009-04-26 01:22:53Z jvanzyl $ */ public abstract class AbstractCompositionResolverTest extends TestCase { /** * * @return */ protected abstract CompositionResolver getCompositionResolver(); // ------------------------------------------------------------------------ // // +-------+ +-------+ // | c1 | --------> | c2 | // +-------+ +-------+ // | // | // V // +-------+ // | c3 | // +-------+ // // ------------------------------------------------------------------------ public void testSimpleComponentResolution() throws Exception { String cc1 = "" + " java.lang.String" + " c1" + " " + " " + " c2" + " " + " " + " c3" + " " + " " + ""; String cc2 = "" + " java.lang.String" + " c2" + ""; String cc3 = "" + " java.lang.String" + " c3" + ""; ClassWorld classWorld = new ClassWorld( "test", Thread.currentThread().getContextClassLoader() ); ClassRealm realm = classWorld.getRealm( "test" ); CompositionResolver compositionResolver = getCompositionResolver(); ComponentDescriptor c1 = PlexusTools.buildComponentDescriptor( cc1, realm ); ComponentDescriptor c2 = PlexusTools.buildComponentDescriptor( cc2, realm ); ComponentDescriptor c3 = PlexusTools.buildComponentDescriptor( cc3, realm ); compositionResolver.addComponentDescriptor( c1 ); compositionResolver.addComponentDescriptor( c2 ); compositionResolver.addComponentDescriptor( c3 ); List dependencies = compositionResolver.getRequirements( c1.getRole(), c1.getRoleHint() ); assertEquals( 2, dependencies.size() ); assertTrue( dependencies.contains( c2.getRole() + CompositionResolver.SEPARATOR_CHAR + c2.getRoleHint() ) ); assertTrue( dependencies.contains( c3.getRole() + CompositionResolver.SEPARATOR_CHAR + c2.getRoleHint() ) ); assertEquals( 2, dependencies.size() ); } // ------------------------------------------------------------------------ // // +-------+ +-------+ // | c1 | --------> | c2 | // +-------+ +-------+ // | // | // V // +-------+ +-------+ // | c3 | --------> | c4 | // +-------+ +-------+ // | // | // V // +-------+ // | c5 | // +-------+ // // ------------------------------------------------------------------------ public void testComplexComponentResolution() throws Exception { String cc1 = "" + " java.lang.String" + " c1" + " " + " " + " c2" + " " + " " + " c3" + " " + " " + ""; String cc2 = "" + " java.lang.String" + " c2" + ""; String cc3 = "" + " java.lang.String" + " c3" + " " + " " + " c4" + " " + " " + " c5" + " " + " " + ""; String cc4 = "" + " java.lang.String" + " c4" + ""; String cc5 = "" + " java.lang.String" + " c5" + ""; ClassWorld classWorld = new ClassWorld( "test", Thread.currentThread().getContextClassLoader() ); ClassRealm realm = classWorld.getRealm( "test" ); CompositionResolver compositionResolver = getCompositionResolver(); ComponentDescriptor c1 = PlexusTools.buildComponentDescriptor( cc1, realm ); ComponentDescriptor c2 = PlexusTools.buildComponentDescriptor( cc2, realm ); ComponentDescriptor c3 = PlexusTools.buildComponentDescriptor( cc3, realm ); ComponentDescriptor c4 = PlexusTools.buildComponentDescriptor( cc4, realm ); ComponentDescriptor c5 = PlexusTools.buildComponentDescriptor( cc5, realm ); compositionResolver.addComponentDescriptor( c1 ); compositionResolver.addComponentDescriptor( c2 ); compositionResolver.addComponentDescriptor( c3 ); compositionResolver.addComponentDescriptor( c4 ); compositionResolver.addComponentDescriptor( c5 ); List dependencies = compositionResolver.getRequirements( c1.getRole(), c1.getRoleHint() ); assertEquals( 2, dependencies.size() ); // I just leave this at the moment as I am just 99% sure that this is not needed and not // correct. compositionResolver.getComponentDependencies() should return only direct dependencies // // I will need to add a method like getSortedComponents() // which will do topological sort of DAG and return list of ordered component which can be used // by ComponentComposer. // Possibility of checking if there are cycles probably also must be exposed in API (DAG has it alredy) // and it should be used // I can implement cycle detecting from single node (source) as after adding new component // we don't have to probably check entire graph but we will probably have to check // if there are cycles. /** // c5 must come before c3 assertTrue( dependencies.indexOf( "c5" ) < dependencies.indexOf( "c3" ) ); // c4 must come before c3 assertTrue( dependencies.indexOf( "c4" ) < dependencies.indexOf( "c3" ) ); */ } } ././@LongLink0000000000000000000000000000020700000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/composition/DefaultComponent.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000151510722311152033647 0ustar twernertwernerpackage org.codehaus.plexus.component.composition; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * * @version $Id: DefaultComponent.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public class DefaultComponent extends AbstractComponent { } ././@LongLink0000000000000000000000000000022400000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/composition/ComponentRealmCompositionTest.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000001411311112665067033660 0ustar twernertwernerpackage org.codehaus.plexus.component.composition; import org.codehaus.plexus.PlexusTestCase; import static org.codehaus.plexus.PlexusConstants.PLEXUS_DEFAULT_HINT; import org.codehaus.plexus.classworlds.realm.ClassRealm; import java.io.File; import java.net.URL; import java.util.Map; import java.util.List; import java.util.TreeMap; /** @author Jason van Zyl */ public class ComponentRealmCompositionTest extends PlexusTestCase { // // Component archives // private static final String PLUGIN_0_JAR = "src/test/test-components/plugin0-1.0-SNAPSHOT.jar"; private static final String PLUGIN_1_JAR = "src/test/test-components/plugin1-1.0-SNAPSHOT.jar"; private static final String COMPONENT_A_JAR = "src/test/test-components/component-a-1.0-SNAPSHOT.jar"; private static final String COMPONENT_B_JAR = "src/test/test-components/component-b-1.0-SNAPSHOT.jar"; private static final String COMPONENT_C_JAR = "src/test/test-components/component-c-1.0-SNAPSHOT.jar"; private static final String ARCHIVER_JAR = "src/test/test-components/plexus-archiver-1.0-alpha-8.jar"; // // Component roles // private static final String PLUGIN_0_ROLE = "org.codehaus.plexus.plugins.Plugin0"; private static final String PLUGIN_1_ROLE = "org.codehaus.plexus.plugins.Plugin1"; // // Component realms // private static final String PLUGIN_0_REALM = "plugin0Realm"; private static final String PLUGIN_1_REALM = "plugin1Realm"; protected void setUp() throws Exception { super.setUp(); // Create ClassRealm plugin0 with plugin0 -> A, plugin0 -> B createClassRealm( PLUGIN_0_REALM, PLUGIN_0_JAR, COMPONENT_A_JAR, COMPONENT_B_JAR, ARCHIVER_JAR ); // Create ClassRealm plugin1 with plugin1 -> A, plugin1 -> C createClassRealm( PLUGIN_1_REALM, PLUGIN_1_JAR, COMPONENT_A_JAR, COMPONENT_C_JAR, ARCHIVER_JAR ); } /* * We are testing that when the same component implementation exists in more then one * realm and components depend on those implementations, that the right realm is used * to wire up the components. * * An example of this in practice are Maven plugins where each plugin is loaded into * a separate realm and the plugin may have dependencies on other components. We want * to make sure that a requirement, say a JarArchiver, for a given component, say the * maven-jar-plugin, is wired up with a JarArchiver taken from the same realm as the * maven-jar-plugin and not a different realm. */ public void testCompositionWhereTheSameImplementationExistsInDifferentRealms() throws Exception { // Plugin0 getContainer().lookup( PLUGIN_0_ROLE ); // Plugin1 getContainer().lookup( PLUGIN_1_ROLE ); // Plugin0(alt) getContainer().lookup( PLUGIN_0_ROLE, "alt" ); // Plugin1(alt) getContainer().lookup( PLUGIN_1_ROLE, "alt" ); } public void testThatASingletonComponentIntheCoreRealmWhenLookedUpInComponentRealmsYieldsTheSameInstance() throws Exception { } public void testMultiRealmLookupMap() throws Exception { Map plugin0Map = getContainer().lookupMap( PLUGIN_0_ROLE ); assertNotNull("plugin0Map is null", plugin0Map ); assertNotNull("plugin0Map does not contain a DefaultPlugin0", plugin0Map.get( PLEXUS_DEFAULT_HINT)); assertNotNull("plugin0Map does not contain a AltPlugin0", plugin0Map.get( "alt")); assertEquals("Expected only 2 components in plugin0Map", 2, plugin0Map.size()); Map plugin1Map = getContainer().lookupMap( PLUGIN_1_ROLE ); assertNotNull("plugin1Map is null", plugin1Map); assertNotNull("plugin1Map does not contain a DefaultPlugin1", plugin1Map.get( PLEXUS_DEFAULT_HINT)); assertNotNull("plugin1Map does not contain a AltPlugin1", plugin1Map.get( "alt")); assertEquals("Expected only 2 components in plugin1Map", 2, plugin1Map.size()); } public void testMultiRealmLookupList() throws Exception { List plugin0List = getContainer().lookupList( PLUGIN_0_ROLE ); assertNotNull("plugin0List is null", plugin0List ); Map plugin0Map = mapByClassSimpleName( plugin0List ); assertNotNull("plugin0List does not contain a DefaultPlugin0", plugin0Map.get( "DefaultPlugin0")); assertNotNull("plugin0List does not contain a AltPlugin0", plugin0Map.get( "AltPlugin0")); assertEquals("Expected only 2 components in plugin0Map", 2, plugin0Map.size()); List plugin1List = getContainer().lookupList( PLUGIN_1_ROLE ); assertNotNull("plugin1List is null", plugin1List ); Map plugin1Map = mapByClassSimpleName( plugin1List ); assertNotNull("plugin1List does not contain a DefaultPlugin1", plugin1Map.get( "DefaultPlugin1")); assertNotNull("plugin1List does not contain a AltPlugin1", plugin1Map.get( "AltPlugin1")); assertEquals("Expected only 2 components in plugin0Map", 2, plugin1Map.size()); } private ClassRealm createClassRealm(String id, String... jars) throws Exception { // create the realm ClassRealm classRealm = getContainer().createChildRealm( id ); // populate the realm for ( String jar : jars ) { File file = new File(jar); assertTrue( jar + " is not a file", file.isFile() ); URL url = file.toURI().toURL(); classRealm.addURL( url ); } // descover all component definitions in the realm and register them with the repository getContainer().discoverComponents( classRealm ); return classRealm; } private Map mapByClassSimpleName(List objects) { Map map = new TreeMap(); for ( Object object : objects ) { map.put(object.getClass().getSimpleName(), object); } return map; } } ././@LongLink0000000000000000000000000000021000000000000011556 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/composition/DefaultComponentB.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000214210722311152033644 0ustar twernertwernerpackage org.codehaus.plexus.component.composition; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * * @version $Id: DefaultComponentB.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public class DefaultComponentB implements ComponentB { private ComponentC componentC; public ComponentC getComponentC() { return componentC; } public void setComponentC( ComponentC componentC ) { System.out.println( "Setting componentC:" + componentC ); this.componentC = componentC; } } ././@LongLink0000000000000000000000000000020100000000000011556 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/composition/ComponentA.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000156510722311152033654 0ustar twernertwernerpackage org.codehaus.plexus.component.composition; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * * @version $Id: ComponentA.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public interface ComponentA { String ROLE = ComponentA.class.getName(); ComponentB getComponentB(); } ././@LongLink0000000000000000000000000000020000000000000011555 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/composition/Component.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000144510722311152033651 0ustar twernertwernerpackage org.codehaus.plexus.component.composition; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * * @version $Id: Component.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public interface Component { } ././@LongLink0000000000000000000000000000020300000000000011560 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component/TestMapOrientedComponent.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/component0000644000175000017500000000255010531217373033657 0ustar twernertwernerpackage org.codehaus.plexus.component; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.component.repository.ComponentRequirement; import java.util.Map; import java.util.TreeMap; public class TestMapOrientedComponent implements MapOrientedComponent { public static final String ROLE = TestMapOrientedComponent.class.getName(); private Map context = new TreeMap(); public void addComponentRequirement( ComponentRequirement requirementDescriptor, Object requirementValue ) { context.put( requirementDescriptor.getFieldName(), requirementValue ); } public void setComponentConfiguration( Map componentConfiguration ) { context.putAll( componentConfiguration ); } public Map getContext() { return context; } } plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/context/0000755000175000017500000000000011225200001033371 5ustar twernertwerner././@LongLink0000000000000000000000000000017600000000000011571 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/context/ContextMapAdapterTest.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/context/C0000644000175000017500000000443110531217373033523 0ustar twernertwernerpackage org.codehaus.plexus.context; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.codehaus.plexus.util.InterpolationFilterReader; import java.io.StringReader; import java.io.StringWriter; /** * Generated by JUnitDoclet, a tool provided by ObjectFab GmbH under LGPL. * Please see www.junitdoclet.org, www.gnu.org and www.objectfab.de for * informations about the tool, the licence and the authors. */ public class ContextMapAdapterTest extends TestCase { public ContextMapAdapterTest( String name ) { super( name ); } public void testInterpolation() throws Exception { DefaultContext context = new DefaultContext(); context.put( "name", "jason" ); context.put( "occupation", "exotic dancer" ); ContextMapAdapter adapter = new ContextMapAdapter( context ); assertEquals( "jason", (String) adapter.get( "name" ) ); assertEquals( "exotic dancer", (String) adapter.get( "occupation" ) ); assertNull( adapter.get( "foo" ) ); } public void testInterpolationWithContext() throws Exception { DefaultContext context = new DefaultContext(); context.put( "name", "jason" ); context.put( "noun", "asshole" ); String foo = "${name} is an ${noun}. ${not.interpolated}"; InterpolationFilterReader reader = new InterpolationFilterReader( new StringReader( foo ), new ContextMapAdapter( context ) ); StringWriter writer = new StringWriter(); IOUtil.copy( reader, writer ); String bar = writer.toString(); assertEquals( "jason is an asshole. ${not.interpolated}", bar ); } } ././@LongLink0000000000000000000000000000017300000000000011566 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/context/DefaultContextTest.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/java/org/codehaus/plexus/context/D0000644000175000017500000000724311101647327033530 0ustar twernertwernerpackage org.codehaus.plexus.context; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.AssertionFailedError; import junit.framework.TestCase; import java.util.HashMap; import java.util.Map; /** * TestCase for Context. * * @author Berin Loritsch * @author Leo Sutic */ public class DefaultContextTest extends TestCase { public DefaultContextTest( String name ) { super( name ); } public void testContextCreationWithMap() throws Exception { Map map = new HashMap(); map.put( "name", "jason" ); DefaultContext context = new DefaultContext( map ); assertEquals( "jason", (String) context.get( "name" ) ); assertEquals( map, context.getContextData() ); // Test removal context.put( "name", null ); // There is no data and no parent containerContext. try { context.get( "name" ); } catch ( ContextException e ) { // do nothing } } public void testAddContext() throws Exception { DefaultContext context = new DefaultContext(); context.put( "key1", "value1" ); assertTrue( "value1".equals( context.get( "key1" ) ) ); context.put( "key1", "" ); assertTrue( "".equals( context.get( "key1" ) ) ); context.put( "key1", "value1" ); context.makeReadOnly(); try { context.put( "key1", "" ); throw new AssertionFailedError( "You are not allowed to change a value after it has been made read only" ); } catch ( IllegalStateException ise ) { assertTrue( "Value is null", "value1".equals( context.get( "key1" ) ) ); } } public void testHiddenItems() throws ContextException { // initalize DefaultContext context = new DefaultContext(); context.put( "test", "test" ); // verify inital state assertTrue( "test".equals( context.get( "test" ) ) ); // hide value and verify context.hide( "test" ); try { context.get( "test" ); fail( "The item \"test\" was hidden in the child containerContext, but could still be retrieved via get()." ); } catch ( ContextException ce ) { assertTrue( true ); } // reset to inital state and verify context.put( "test", "test" ); assertTrue( "test".equals( context.get( "test" ) ) ); // mark context read-only and verify that item can not be hidden context.makeReadOnly(); try { context.hide( "test" ); fail( "hide() did not throw an exception, even though the containerContext is supposed to be read-only." ); } catch ( IllegalStateException ise ) { assertTrue( true ); } // verify state did not change in failed hide() invocation assertTrue( "test".equals( context.get( "test" ) ) ); } } plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-components/0000755000175000017500000000000011225200002030225 5ustar twernertwerner././@LongLink0000000000000000000000000000016200000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-components/plexus-archiver-1.0-alpha-8.jarplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-components/plexus-archiver-1.0000644000175000017500000044523410553506244033545 0ustar twernertwernerPK 5 META-INF/PK Ž5mùvdzMETA-INF/MANIFEST.MFóMÌËLK-.Ñ K-*ÎÌϳR0Ô3àår,JÎÈ,K-Bä¤V”+À$x¹œ‹RKRSt*­ “3R|ËRóx¹œJ3sJÀâ‰Y©nŠ®WJ6ÈlS=ƒx3^.^.PK ‹5META-INF/plexus/PK ‹5org/PK ‹5 org/codehaus/PK ‹5org/codehaus/plexus/PK ‹5org/codehaus/plexus/archiver/PK ‹5#org/codehaus/plexus/archiver/bzip2/PK ‹5!org/codehaus/plexus/archiver/dir/PK ‹5!org/codehaus/plexus/archiver/ear/PK ‹5%org/codehaus/plexus/archiver/filters/PK ‹5"org/codehaus/plexus/archiver/gzip/PK ‹5!org/codehaus/plexus/archiver/jar/PK ‹5%org/codehaus/plexus/archiver/manager/PK ‹5!org/codehaus/plexus/archiver/tar/PK ‹5"org/codehaus/plexus/archiver/util/PK ‹5!org/codehaus/plexus/archiver/war/PK ‹5!org/codehaus/plexus/archiver/zip/PK ‹5B§™þ»6META-INF/plexus/components.xmlí˜QOƒ0Çß÷)Îw[ŸÍ“%¾i–øVXÇ:¡%¥8·øá=cˆ›S ÎUy€ôÚþ~9®×ö'JriHÊ×èW–4o¢áŒ¸ÒÁL‘ÌJù+‘\½…a3DĨ£7f„’{Y‹Ðë¼o6*]™&X[Ij43<\z ×$Rê1Kpæî!…‹†n°L„¶…‚t 4ŒÒKG°pf%èiG€„ù¶Dr zƒ?#LæöA‚täL{ (A°‚tì ²HžDŽ’Còbå^¶S®lu~¬`©»üÍ1ô 4­.Fqi/ÿ:¥½”ã”=¥KžâÌŒk"©`û•ø® ¦0ª‡Æ9ø™:Xˆ(‚‰ÊE`®ü*Iþyà{*ƒÀÇÿÀ¿|Ïî ð¡ëÀ»]ÂUK+{K3=e6ÝÂñWÖ•n‰æ¥nçsÚx ¼ª]Tay)Õð-“,äúM¯Õ&+.iÃAõW(n|ʲȼÞE³Á¢ÖL½^­Uœ’¿PK ‹5;åOý™¸;org/codehaus/plexus/archiver/AbstractArchiveFinalizer.classR[/A=«K]JÝï]£Y»2;Û”åIâÁð£Ä·ÛEI¤Lf¾ë9sòͼ½¿¼¢[X˳Y´±dcÙÆ !w e ý¥r•`‡×’PpU Ï⻚ԗ¢æs¦è†žð«B«$Î’–i¨ˆ°ç†ºîxŒlˆ8rî}Ùb#´×PM©£Zd´ðÌQ;qªá«G©÷ ³7YÕŽµF…¡RêBš9û‰êÁÏ4a£G!Òòä}r[dc•0ÿKËI+UªÙì¢æ*ø¡'ߊÊ=CyîuiªJ›Xø§Ê—<Ûb©ìÞŠ¦pb£|ÇU‘á¶¡‹‡À4¤QßuÆÚ“I;aù¯Yo'#@ްû¯×"Œ§:|ÔóÚ­ô a«—awPl÷ô8_c­£ÿ+4€·•èçÈæh‡-±¨<ƒžØéà Ÿy¶`ÏÂ/`¤ÝÄùa¶Äñ(w$»)à\Ú<–gÚÅ ˜xc(ð9ž*!Lð.b²ÙädS˜î$³ˆ{fÙ›Ëêó)ÏÂPK ‹5CÕWªP5org/codehaus/plexus/archiver/AbstractArchiver$1.class•TÛNÛ@=›@ ŽK @zSKJ$ábèB) )*R¡H}tœ%12v´±)¨Ôg¤z‘úý¨ª³NÊ5­Kž=s|f׿~ÿ‰0fQTÃD?0)Í”Š42 ²*¦1£`V…‚‰>ÌÉQ—f^š…(žà©‚g ž+xÁ=4ì”ÇêK0 ”öCC·\}òyŽ¡ûØñjܳL†ˆW³©y½äŠªnº^3ü†^·ù †0kÖ!z¾Üð„azùv€`"Ë–cy+ «é.÷^%”ÙeèY§Í ±’åð·þA™‹£lS$^rMÃÞ5„%çí`$ÍmÓq¸X·FƒSd¡;"©úŒ°ð²iIƒøè9»Í­â‘Éëžå:”§n»¾0¹¤LIסæä& $5Œ`TÃâ ^jx…E†á –4ä°ÌVméêÛž°œêš¿·Ç©scE!\‘¬p›šåT“²¥ÉŠ%¸é¹âx‰J½ÆŠ4o4¬"¯`MÃ: ÔÌ.e`¼à°UÞ§$ýEèï8-éÇ;!ûže½|Oµ!0æ…¿L†Ò7{>ÛI:¶Uî•ÜjUú“éLÇVÛ´NJé­ad;½Ù© ÷£ìéˆ$ý(btB\;ò‡!Ÿ¸<‰ç³½ ܦùòi¦1–=ËNŸ"”9Eø$H¼K6yÁ–q|MúTä>BÞº1*Ú‚ùD XÏ~Aø+z>cªDn¨‰È(ÎÐïoB•«MD›Ð¦¿áV' ½ír òÀV¡°"T¶†(+`Žmå”Åc<Âx°Oo QLÚШÒÚ@ð¥øPK ‹5eMnõYx33org/codehaus/plexus/archiver/AbstractArchiver.class­Z |\UÕ?çe2o2ó²MÓ–)´LK)I&KÙº¤,Ý%m’–n˜„ÉÌK:m2g)-;ŠBQÄY«€e‘$  Š÷7P«¸+‹hýŸ÷Þ¼y™™´Áïûýš{ï»÷ÜsÎ=û½Óoüç±'©„•/ÝÄu*×{Iáº2º‘CÒ4”]y·Œ¥i’¦YšÙX¸‚<|¢'Is²Ê§x©’ë¤9Uš9^šÎsUž§ò|/M”•éÜ"£>MúÓ½TÃgì™Ò,”f‘—óÁ¸Tåe²e¹|¼ÏK>ËÇ­¼B VÊ\›4íÒtÜ*iV{øl•×x©‘×ÊÊ:Ù·ÞËø•ßïáN¡»QènRù\Áwžœç²÷|i.ϰˆ£K切£^:u™ìöQ'÷¨¼¹Œc¼ÅG‹y«Ê½îópÜà /÷ó½œä”Êi•3^jã ½´’·Ëä_ÄKs‰4— o—yør_ÁWªü¡2àþ°6ðU*Då«Uþ¨‡¯ñòµü1/mf¯“-]^:Ÿ¯nvJsƒÊ÷R”ë|ü ¾Qfn¨OÊAnöð-ÒÊ÷úøÓ¼KVvˉoóðg¤ÿ¬?Ç·ûøó|‡4wª|—Hënßãá{=¼Gv|Aš/JsŸ‡ï÷ðBêv•¿ä£+x¯°³NTù!/]e ýai‘æËÒ<*Í€‡¥òð>é‡eÿc‚ì6•GT~\å'T~RåýLUK—-_´¾mÝùK[ל߾jé2&°KåKñT:Oo÷ftXà¢7˜ª³°Ë[Û–YÀîÞDOždšÙ–Hö4GQ}s8“jîïÕ·£“ÕX¼§¹Í€ZÀä‰ê©ôòX¯ÎTѶ%¼-ÜK4Ë·¬u£Oµ‡û™*͵L:ÖÛŒ ,ªÑXÒZ‹êÝáL¯¥ôpˆX<Ò›‰êËúúÓ;–‡ØÈTcbF¤É&´»;‘ŒèQôÒzrm¦¿?‘L3Xôáddsl›ž4™Yîܶ¼Ý±x¸7v‘.D«\·ÅR²^MŒÚ<€ÿ,ÆöpãËßSL´&çvç)frÏX+°ÒZ càƒ–'¤Š­¹j7 ;Z8uˆ¾ºv´Í HY4·î]¶=¢÷§c0~¦ãò€Í¯Þ0Ìym: «6¶»û“zwl»È¸`inŽM…@E¦¯Ç²i02¡ôíY€Ö#r:~ºe©Dî¡aœ'E'2F &WÔ­×1½Øk˜nsÞšŠ„ãq±íPQó2\ÄVÌZX¼¼+œÒ£B¯Ô˜Mäe±xÆ"¤eÃHG¸Ÿ3(Ã8 mÈÖU¶¶AùÔ#¸90Ýß¹Ïׯ'ûb©”i3^á$õpS`S­Â½¹$Ú³d–£¬+ˆveIÝ%Ö}†[d£fU:7})'@ÀÛ¬ < Àã ˪©fPóCÞÖa ¹¯ÕÏ_€êH¬ÍD6g#Å()…mù‰ÍdâY ¦âÚ¸×Ç‘GMë}ý†9–Gñ´¾=1‚/SmmQ4Tó³7,¼} ȾþD\§›“z"»lÖ³Gk¹-‘ØšéwžMµˆ0?. "™ Ç ÿ(¾gµÑ-É‚‰ÁÄRË­¼U}gÇÕ²M‰µùyHŽ­vÛë9/Ïf/¦“ŠK°Ð¬f´èÎ!8R"Éßíd>—F«Ã…så—¤Ro,µ¾?ˆ†Ó0RhG&‹Gœ|>– 0xà^ü­@l‹¥å5ѵb& B¢ã‹bý¦í–KäYëCîC5RÎá‹îÙ¬G¶fõ㥬bþ–¬é)znÿ¨@`5IÛYœ°J ö¦Z9‚©>q¦Hˆß({ã£âà¨Àäê§7‹á;­[”‘kûR=»I"L/Îtw‹°Ž*Ào®MåæpjC,)þi…9mÛ¨O·‰ŠéèÚ±°¯åt Á%KÒ³ "0õ]‘“âºý˜¨ÉÊot¢,ô&R’“"½z8¾:Sõíz$#8¼k©lb~­Ó$Ø4ÚK¢8qj&¾UžNmF°Öèvú¼FwHs'ݪÑ]t·F÷Èè^º›‰4zŠž‘曈uãÎ…?ÅOküi¾JO05Ǩs1—iRq©jü §ñ×øœ*KÅOHÃA»jÒøY¬Ó^~Nã¯Kó zPãoòó*Kãoów4ú½ u:“ÀW£Öø{ü}• ñùGÿ˜Ÿ×è9ÿ>¬aô3_ '4þ‰œ©Â¦/i³)+ä„):€ &pÆ?ü@3“_Ä Š$sxÃò0öGƒéD0ª§%?Çõ á+’¦ƒðÜt&Ä5 %(’ø¹°ÿ ¦“ÿ‡ @ã_ò¯4ú,}Nã_Ó+¿„ÓÑmô^£×q§8\úEH%zuÉ Òg³¶jÍ [/kô}Iãßðoq®Ã2hq—ê>ª2xy•îÓèmz‡é´ÿKþfjY–L&’Aä °´öE ­5"07sY:O¤!ÚL¨ñïù¨nrF»n34`Ùüž®'3O„i¶Š-é §RzJ„ø†4ÔøOüg•ÿ¢ñ_Řþ&ÍßaÜtP\ÓmbVùÿ“ßDù?޼¬ñ[t@ã·">å¹Ã1­ü,F˜ÆQ€8ÀC¦^“ºä®m¢Û<þà5ò Ñ[‚*ÿKãwù¸#i¤ðš,Òÿ·F{è }‘îËz­¸(™ ïT§ò4>¤ \Þ_¢ß—V¦i’ãO’ßì÷¦ô`­»È…r† ¦”OZÎîšêTÅ¥)¥^ô½¬)n‰53 Ñt$‚ƕ°ãTS¦¨ŠGUÊ4Å«øTEÓ”r8³R¡T޹‹ÖšRE¯0M-¤×jƒWøû‚qýBd™:¤Kt:™ë¿)Q²Bšaßc‘ÀÎrÙ™±Ê¸Rã{*»4¥Zñk<]rÚüÃîD¹ef%|`¡wéßWKn˜%ÍLiޤի“ D ¾ QAˆMióaEߎ‰™Jót2kìØ1kÊÖUëÑ¡L/~9a5a÷06Rx- e'.Û¶^Æ2éE½½r¯É{ßÕrœvu8‰$f°o«ùº4©¶µ¸beÇzÇÃÁüüǼ÷ð01ÇÐ’Do¯9óýfYûêuç·µ®]‡”1¦d…žÈ;*L…¬Óû¬ ââqYj>ëyO:Õ¹ k2ñtL¹¼8¿ý1qÔ]ÇšÆÆ…GºÅç?ç>ˆN®9nk´àÚÍ™t4qaü,”y‘Â¬Ø ÈÆ© h1Åy «²³1×5ƒç1j²¼òžØ#oV³Ž`Ú¶ß¹Ö¬j3Éb*oc‘¸ioœPÄòM5µ›—ÖÜûoîF?ž÷8‘`Åè}8„Ÿ'ðì©pOÖPí¦ÛÑXwL2KImÝ óUÏL EMy4U\”£zWFÂq,e¼¤C&Ûä矔„çÓDÎe䢨¼¼WY¯'âÑÎÍŽWá,¨#¹vztÅnôµÞ–¾j¿:OÎ>BYVµÄ(<Œ‹àøÞ´L‰K*u>Y¸¦Ót¹è“t3-¦[¨‚ô)º•˜>MD íÂ÷nÇ·¸ùc\þvú¼Ñßaõw^ú»èn£¿Çú¾×úF‘lô¨“þ~ .èC µ—Dû¾ÒT‚ÑIõCÄõ#¤tQɹrÃÒz¿{€Ôz×y꫽1@e2ö>là”v©‚§\J•´œ¦ÐY¤t<µQuÐ#$/ú2=Šži€-–}yýÑÕ•‡.óû®µr¯±¸ Î5M2-D22ÄÇò:`¡l6¾ ¬?Jê6*·1yƒŸR›ŸÇl~–[üT˜üT/$0T–ÏÂ݆*l†*l†FŠ2T–ÏЖ¢ =NOÙìÉßœ(ºùIÚom>П»þhè/ÿiìÉ8Ná¶Oá6¬K?EOcMp-´$ã©ùµA*ÏÇvìàb6ÍC_ 2}cúï3Þ•à¢}Y}¨y*ò_Wˆƒ& ¸ÌB,£¯Ñ@&ñ¬EbH¸Ÿ°ÞÐX„ÆÕÀðQƒF½ iÓðÚ4¼ô}Ý€öÒ70*É£öM“š²‚Р‡£G¨NTÕRÚx€Ê¥ [p o 4à$h&ì¦é#TÓ9B9 3“é(Í M¢£÷ËT‹;܃tL t¦Šì¢OkQKæx&zê“wÒú€:ÑsRÕ¹U̓tlK™…²áYòøµ=äjÎ@™‰¸Å[?HÁ€7à¡éw lˆf`ê¸}4s˜Ž/¡s®òðžC_³œ4V¼Ü-¾ú€/à¤ ÄæÄßHt=Ä|ê4±ò(DÊcg!6.E\œ8¸1ðàj¢æ]Tku54„¦î£Ù¦e\ûèÄ=´²¥ÔØ20û)À(¢S÷iÙmà ¸÷?Œ“̃Út¤鯢9F—¦ï1zSN‹¡~‚*` Ps3Ä? X ´A2çÑ«ÔE¯a×Ïa¿¦_#.¼ ¯"•¾†ôùº!ß³ ¥šJ/®2úFœ-ó½¶Ì÷Z2—Ñ/a2% {9ý ¸]£ôð(™A;iízñô݈·áCVBn ‰çÓ\…B2o޲Ï8ÆDôgpøWÄ ó›HÐoS-ýËšë->kðý”èK¯É8ór¨ŒƒÅ2Ϋð?só‹y}h€æ…z›?H-çä Ö/!–K©”UxCU³ÏÁœß¢ß¨PÅÉC¸… ¨ í0·àY:…Ëi­¥ {¨µËé.ÿCt&&,O<\I*WSO IˆžL'À;sçj°Ïõ;[)N¡”æ %XT(³çCâY;±yah˜)ÔR(}š@éS´øZ2LK¥x›ÑâvZþr‡å»ÅòýïóŸÅû¨µÅ½VŒÐJ@¶uÖËZûu Ò*É-çJAgµB’9†él ÓÔ³wC£¤¤@aw:ÍD f¦®AÜ@7Q Ϧé<‡fòÉ4‹O¥%<Ú¹…¢¼‚¶p%¹.æú¯¦ëùlCkgîð{à wÚšÜI°Üag62bdEFŒÌȨ!Í¿A„ÛQmü ;Ü£\äà˜5ÃÚ¼hÈäácÔ 8LÍpЮÖ[5H°” $º@"â(Š“È– eEJ†ƒvmµÄ‹XÑól±^‡“s"þ3ýÅB|7愹…!ÿºaZ¯ LÙÐ^ßð3Lï—¯ÎZ¸‡Žë¡M¶Í ›Ã‰Ï3£|ã}`¿‹FÇ -oåJË:†/£cùb ò¥t&_n %ø‰D mŽÒßèï¾S¡þéÐÀ&ü½Y´òõæU¾üá¢.÷VñÊ×›/Îk{®£ò½×ª|ߦw,\­–v$´œß)ø‚! PW>ÚTÅ78ÐVÛh«ï3оKÿ¶Ð~À*¨§á|‘gÃF( ùë‘øo·Baó&¯›ÉÏ·ÒTþ´ƒÖ4›Ö4úŠЂlÞ)Âr$ŸïÏ@Ÿ-. 1øfÅñ£põä㺸îC´÷›á\~0qñ^)ˆ°ö„º¹ .¶(Xvónª!gíq‹·JéÑkå0õ)Tò â-.)ªËÈ… ƺJ¶úû-™þ ã*–d#æSJ€.“QZªö J DÌm =W¤ ñF'ñ ¥¦5Š00I Þü¹ÃoØ>jÞC—üí0¾]9³Þ€2“ø^HoJÍ/À’î£Sø~šÆÒJ~˜6ð#ô~ ~¢K®æaÚÉÓ?AC¼Ÿžä§éUþ ½ÎÏÐïùý“Ÿµ+–K¨—]HºnT,]ìfÉHÝôö Kíò–¥§Rú{ =yéìœB§¡ÖP' –p¹íŸ)ëñàtè¢Ý4ÝÅ»h6ºKvVà¥(yÌÙ(q8`š÷ó4‘¿Móù;´€¿çðñÓ³>.¿hY 4XB)É?vìT¬.®äª"¡%’ŸÍ_,Z\òC•S¯D/­Y60Ê´È0]ÎÔ²¬krÈ2®+Úê‡éJäõC¯æÅ /Á‘CSøäØ×(įS´SÖL¨GÜXAè˜Ê~(‰ ¾MvrÁ^‘ÿÒ`1vö cpÔu€*¥ ¡VÿÐ.R]¸žˆéOŽ °ý4Ày’ANJ#g†œƒRí¨¬ô]†åÜÕ~´z ê¡«:e!œ†Ãäþþ à»3ãÑx$Çɺoæ¾»|wy÷þýß¿~„܉ÒE©#( ±„œòõ4IEȼª[HMÃS¢ä¤‘A]D]! iô¡”Á), 9ÁÓxFÈ74|3ƒMø–¨|[ó)œIcÏ¥ñ|7…çe}AÃ÷Ò¸¥¾/ë„ü0…e})…—SxEë~¤á5 ¯kxC¡§hÖÝ}–c\Û9­Ð;yÒX0ò–?`UÌ …”ȳBºn7œ‚é¿tÛ ¦sʱ\>«44gU\Ó9Ò¨ÕlÇU¸{ÒvJù‚]4ËF£ž¯UÌE.†S([TÌ7\«".š*ô•ž³ªFÅzÚtê }>OpÒªË~׃VÕrw+tŒŒSHî¥u… “VÕ<ܘŸ5£Æ¬`˜´ Få˜áXò0“nÙª¯‹kÏlÝuŒ‚ûXuOÀ¢ßþ‘ÕYç}%ÓÝ·:w}#£ñìõÕ[¤2¢ŸÆL=úÖý#‘$÷ÔW¿g¬út3í̯S&ÂLŽœxjVA3½X˜Øý‹³æZv•¸=ˆ¦bTKù#®cUK­ñ%k†[–T¶È2ãví5¢AõD0¿¨ôsËH¼‚bW› ÷b1Ô ê®pÏÈ:ŠixF»çšò7©¯0ßlÀ~£•7è4ªmD“< ÷C4˜Z׬j¡ÒFÍ5ÛèP•ùc>Mc~¢5ÃRÖŒÕQØØV“Uªó¦†7yNˆ¦hH °îf¡!Oéhólnííq±ªã>|FÇݸGÇ]×9ÔHòB ²QrBHSò:Å$ßäáÖñcüDýTǽø¤ŽOáÓì€fÂö8ŽqZšDÃ[:Î✎Ÿáç~¡ãmÔñK¼£pçMUVǯðk_Á“ ã7¢é„§DaøhÙÌúó.ËŽ5³V½ºÓÍMvšY—PÞÕðïá TDz¾Qw³UÛÍΚY#[\9#Tù­ˆnŠWûáÆÜœôm_Ü£Žóx_Èïxâ²EÛô˜‹LýPÊ€fÌ‚;†RáàŒÝðʶ]7 Ê=ešUAQ Qfj1¶'XÆ×«xkk­‘óŠ]*1èPaÒ.í¯Ê€.*ì¼®‹¨éë7BØ¡åÜ:òÒ©¡ð½7ÖežN³aº9ºLIàíàEp½à}9ßûZFäèÉÄë]­ÇË€Ó”s":Û§gO²ªÞ4IYÁ@b®ÜRñA5ÐÊå,)õüGdÔxËàŠzÔ…ÂÐÊò³ß¿z¼ÔìZg¤GîZ mc›ûIøzôŽòîÂÈÔå Žâ.£V3«EÏk«™–ú&bâ+™[[<åÚ>'ž‘ÀSò6~Òò 1‡1ìB2V®ù`½+X9x½•sÑ[9¹n„’¹Lz?ß$_qMç–¡rÉ‹H\ðd í¥P7IÝÔžà›îKSï³\ÅÒîÀÒ4µ\7„–rcÑÑ47@C cßÜý4ÿ€gr“¯˜”' €_xŸ Œç½w 3÷!’MvyÌÝd!²=!²Ý².”lJ{ܽÔÙÒéò2+Žn ¤3ä‘¶@ö¶Ò2EÃkÉ@öµÒò¥¶@ö·Òrœ:¯d¥4p° Ä1 O´òµÙºªõ| uf×òy67?¥ð(;*áÙÚéÉ-ÑÞ46b*Þ~%Ò2R°êd\O`z’¿$9Cžé©Àô—yä,ôçÆv-¡Û£évæm"«ÑäSü¿åxæ³¾bˆ¼Ÿ5žö\öã Lf"âRá‹,Ÿ™CŒ=á¹¼ŒÌÌãÑ—Ñs½ñ$-ÐÕ©H’¢®ŽðÄKRŽâ±Àì“„#Rìֆkè¥õ¾™eô_ä¹%gì8ëð"ŸŸÅ6œ‰ø} ãûF|=†°ªË6Äq?Ï_X£¸3îù8 *p†«$2/(¯"'Ë%Ü¢0IȃŠv›ù°QáïØ4µ+w ›8ÿ¿ÿ4n¡YàEò2Ÿ_Åv¼Æú:+ðfX§íÜ•0LÝ6ý ¯Nù–ÖHÊ·_ìxÐCDÔ{ÕËb¯´ÇÇÎBKžG²#~$ÎFÚb(Œy_Å×¼ý!¶ýt¤-fIù}äô!þDS]ˆ™};bV…fUØm*è61$Uz€+2C®¡ç2†f¶,c«ÇXÂÇϼmMÞð9ìÞeÜʾÉܶ„Oø;·lçóî„“×0(SrÅðŽþUŸ5àïlò·ÈB¿çÐ'æ%Ò™SœÙ¾¸ìvz¨¼ÝNÙP«éx—e|Oïc+¿fïÀYÂ?±+ÿ ÈS¿ŒE\ÂsøÞÀGü7pï฀’û/r®EæÂ•xñ“Iùß§՜©(‡?ÓÃ4÷PK ‹5ž«l /org/codehaus/plexus/archiver/ArchiveEntry.classUÝsUÿÝ6Ín·ÛBÓ FhµIj—Vè‡FC m-DܦÛtkºo6ÐúÈ8ŽÎ8ã›>ùæ‹ElËØytÆ?J=çnÚ¦!#`2{ï=çžß=÷wvÿúû÷?ÐŒ—p×À4ÞÕ0£áŠ÷3H}ÕÀó¸ÖмÏÃu>hî€W7 |K솼\Ó1dzÍÃ<í¸ªaÁ s‡Íu|ÄB‘‡%.òt”Xþ˜1HÖ”5ø¡É‰Ì˜@$³hÝ´REË-¤¦|鸅Ӵ7žæ=‘hñܲo¹þŒU¬ØB u4=962=1™cE9¸Ö’MÓ¼S¤©#ˆéx©q’9ž¿Râí%oަT¾h•Ëýž,ôçI±`UÊý¥¢½L“%ó ÎM[öŸc®/W:k@ް3ÅlZqýÛwòá3Žëøg=În0étl†Œ(${2Žkg+K³¶œ¶fz$ãå­âŒ%–«Ê¿à”‚œÚ‚œ §¶ §j!>Ý“NÁq­¢€V°ý¬*P÷`¬Q½Ù`\•nï–ÁNñxsZÕ¯y0–ä‹ü¼´-ßf»j¡²?ì©Nö-IùÚJ¶\rÊe‡è `Œ-çí’ÝŒQGÚyß“+U,mº*M<ÉÍ<]™l—•dΑÁ*p«1b hÔ´|LàpýFÖóǽŠ;·}Ley”’žÉ«\£Û &S^Eæíàö:k!&9¦†Š‰›ÈD—BàÐŽIÖSF£ö|`$¥'5Ü2±ŒÓ&Žc…‡Ë&â8b"!“Þ2&’Ðð‰‰Oñ™@òIª)kò÷ÖWìBe~Þ–&ZQ.ø©¨‰Ïq›‡/LzWQabO|k ú„‰/]gsn‹5xLœÇªVÖv¨»e5kÔõd½q GƒÜÉ­ÜÉ wr+wrwîw1qŠëwG¨ÕvN;1»Hq©¡ê5ïÉ u»vö¦¤w+x5ÜŒv¹lHèiÄ9âˆYËsâ¨SÄ «$Z¥’íÎ =†²µwrºÎ<8Á™ë¾h¨3òv³Ò7¨‡@Ç>® ­ö¡xßíx‘äÁ9FO\Ù51ñÔLÜSsRÍ:_ Ùÿ ÒÓ­“|’¤ïB ÍCñ „ã‰5hñ¡5èñƒkh÷„:÷üsû`è'èãg„;ÏáÎÚî©Ø/Ó¸aRŒcô‘ƒ ^Ç›ÁÁÍ­öÊ]Úµ'>›ƒàC‰9\ „/ßGò%äþ¸Þ  30è2è!0m¥©R…0o q\;¾¶evÁ+qLÞ¢6ã¤h›%“=Boy‘ª ÚÙƒ>ñ«¼T+mÈi´ð2×ç£ Êǵ Bì|Æ¥KU.ª/ºˆw³ç?SÃïòí¡P2 Ìÿô ùÏm„ÔÒ"â-b5¶)Õ è<PK ‹5×ú€Þ@N9org/codehaus/plexus/archiver/ArchiveFilterException.classQÁNÂ@} ¥ÕŠAðàEo jƆÄML/îKÝ´kJK¶ù-O$ü?Ê8[4ÊÉ=¼Ù™}ïÍLöãóíeœãÀ†¦†} - móZÆ2ë3tN¼g>çnÄãÀdJÆAïGeªä…#Ñ;1·É“`p<‹ÇÙd,ÔP¿14¼Äçш+©ó¢hd¡L®¼D®OÊÏRw‰®üPÎ…roV—{eBÝ-|1Íd÷¬‰HSäîFd¨øäF­ÓR}Ãbz{Ì”¯û‘øps÷ ­¬¢SCáò+04¿XWqL_b@Ÿ˜nAhQö@õ2E«Ó=[‚½æ„-B›"°MD›8ZÑ(ÛÉm,T±K&úVƒSØÖ Û>åZovºK”~»Öˆéä®íkíj® {¹¦ñPK ‹5—[zlï´3org/codehaus/plexus/archiver/ArchiveFinalizer.classPËNA¬dcü0Â|'cà´‰#÷vl—!“]2;K6~š?À2ÎȆD.Ò‡îT§ª¦§¾¾?>ÑÆƒç .×o&gkÞåÞé¥Ùȃö¦È ·Ã´p™ÒÅ«,¹*ÕÚJoyN57-½Y­e…e‚>áfÏvV{Çzk|÷ñsþǺŸ‰_ç+¶sc¥$\GéŠ7¬*o¬JMé§á‚§¢rZ"…pÕ8Ì›+Ü$ò ãC~´¿ÏXÎ3õø²í “ƒBÙÅÑ%ZˆÕîPȾðQ@qvÃ&ÁñÞæ½€§¡·pöPK ‹5„;Z¿-org/codehaus/plexus/archiver/Archiver$1.classR]oÓ0=N»x Ûº¾§22Ön‚ÀsLB*á¡Ó$ÝÌK=eöä¤[÷¯x¼ó£7I«¢Q dÉ×÷úÜsï=öÏ__¿£†'Øõ°[·9îx¸‹{…ïslrvÐâh3ìÆáDã°Ò8œhN hB0øoµ–¶¤•Ãò´Øûþ©Œs’ìZ‹ üÄØHœÑX«Ó»Ã5—•z^"ów2ËDBÎZ«=K÷…Ò*ɰ>ëèaÿk 4á‚£˜džÖYû7àÃÁ"yýD‡lc÷ ØÇî7Ô>ì}Bý3æ~¨cŽîܤ³[F`‰ö йIJŒ•2Ú µJ¶ªQÃíÖÇ~³¼¡Ù(˜ÿ PK ‹5Ê'öŸ±<+org/codehaus/plexus/archiver/Archiver.classTmOÓP~î˜ëÃÁ@ç_)Ò‰¬¢(*ø‚ ’%¼$ΘˆŸJw%¥]ÚŽÀ/ò³’㿚ø£ŒçÞ¶0×è—Óóœó<çÞsÿüø‰Ì¢6ˆ,fñ(Gv>‡Çx2ˆ ¡¡ÐÑU¡Ùoû4‰q­’ÉP(ïNYt˜þÊiš.R /ƒF0JXc–&;"‘ñr)\îAJ V Wzr¢V9Á*'j•µ®â9 ¤'ìuÜö&nI{;òïDþ$Ti§pWÚ鈧¡"í½(>Åï ŸóYÙ¯*ýÏS¿Ä7ñì ÅÔw |8ûŒ !ß>Æ…/²ßºì.=ù´ªMa9²9B³#å¿PK ‹5³-Þ=?4org/codehaus/plexus/archiver/ArchiverException.class•‘ÍNÂ@…Ï@iu¡Ñ‚R÷c41!n ì‡:iÇ”–L òZ®H\ø>”ñÎРQ6vqNïýîiúñùöŽ<.±_„…š{ê öµŒdÚe¨ŸõžùŒ»!|·Ÿ*ùó!ƒu? †JOFâq: 5ࣔj/öx8äJê>­4 ÃU/V¾ëÑfÀ§‰; ÅœW^ gB¹7Yq7÷Ä$•qÔapÆ"I¸oÀŒ04רû¡ ¿h ÆsÁ£«Dª¯`(öã©òĽԖÜ´õV Ø:”Úÿû†Ú÷Ý•ŠSúô“ÓtŠu]ês”ífköjÞoP,õ€&±IUc9Eú–¡Ø(a›šUÎXt#OÙi¶.Èý†ÑÒ±,ÇV0'ƒéª‚cq×lW¿PK ‹5ôR¿Ògé6org/codehaus/plexus/archiver/bzip2/BZip2Archiver.class•T[SÓPþN[šÒ¦ x×zAÛB(Þ/(VP´ˆZ@Á§4i4$™$eÀŸâ³¾ù 3ZFQŸýQŽ{Ò´t˜=çlw¿ýö’ýýçÛ„‘ÃbýÈIÈÇB®}P„fXˆ‘ •p!†‹qÄpI¼/'pW%\‹#‰ëqÜÀMa;&n·Èm!Æc¸#¡(á.C\³Vl‡»®å0\(Yβ¢YK¼ªÖ\Å6øª£UõUî(•7º]Pî,’,¶¼®3Doè¦î1„Ó™y†H‘ö—t“?ª­T¸3«V Òô”,M5æUGï@ñªºËPØuèñ@G%¾ÆµšG(Üôœu†Áaß aLþñ‰5Ûžn™®„ "¨»åšm[ާ›Ë“–£ñ%?©E ¥\5çl ¥–K!÷-s/À›]·IћΔ^©«ªb¨æ²RöAÊV&u¿[RÈ s‡q„ °÷ÒË8ˆC2&qNÆ=Ü—0%ã2äwS§•<ÃÀl•;<¥»©‹N¯ªš)Ëä©—D:¥›ôg×¼¼`Z’1Gfd<Ɔ̮ë-ã)ÊfeÌa^Æ3”e<·‘‘5èðÓdÞë,0ävæQq=GÕ¼Mû~§tK™ši«CB«ríu³ó1ê°hgw³·5O7”iÕ¦Æ&·(h’]ý ÷çeŠ¡/ýï,ˆ#ºª5xh bÑ2 ® Üû?= g;Žº.À3/Úàg*¯ÈF|a†®&:e(4ôãÐŽ ¢m˽öÉíNoÉ$(Þ]î1nû+Ö\,8E{«£ÕCK·(ÝièI¥×í:FgWv,û¡… „¿ ò‰t!#)–p¤HrÃ'pÒÇMVÈÇzOXÂöI¶ŽŽ·„Agô+$êÎ;$¿#¶ÐÓ¹øÏ†:Áð2µ¬ð ÉRö3"ƒuì«c¿¸’IWÝâZGÏ&™sè$9 çiíf)¹!¢‘Ç(JeS¡O£àío ˆŽÒy §‰ð¿!ò?K¯Âl”bˆN‘Z(ò¡/êk.¶% ð"Ä YÄA¿ôÿi›ãµ6GÖrL·/!cDl¯ú%z« #ÖÂÈPò Œ\€îéý¸-|±Í5ÜjØ o5ôPK ‹5,aÚ<u8org/codehaus/plexus/archiver/bzip2/BZip2Compressor.classT]SÓP=·-c(ˆEñ»¤Ø(‚¨õ³ˆˆQ@gêèC(±Ó64UÇ?ä³3ÚÎØ}óÁ7ÿã¹I©ȨÙ½wwïÙ³w7÷ÛOŸÅY¥b|µî¯øžm•3ÝWŠã_ˆ&ÇŸo–½¦S±ÔËk¶·j­•h‰›nÞ*=±ë–«ž]«¹S÷äÛ;&_s)GÍ—Ö+Ëp\#[ñÂöìõ-d£åZAR ÂJV¥`ÐåT Òå¸$t ƒ°°4÷&oW}ǭЫv6LÓ•/¹5 ~êŠ[÷òöG–3¸…cZ‚i8Œ‘ݨ $6Üi³KÃîHŒy)îjXÀ=éÿj—†aÒp_šXØ¡Z¡­×R8øÐsÙ·òXžh>cA¦1 °¤à¡†GXÖ°‚eô® oµ¬²¸U º¼ªÉŸ‰]Õ}§dlß[°ýÛvÍ×—777€ïOþn‘Ã=üËöÛ`I_×kÏñåH'ävñ7†¶1«áöÌô?ãv[Õª]YgÉíc;¾Í¶*³ÑÚÀ³ZôÜ×á§’Ö"YX9®Éíçåoå»áZ@ß!§¹0™âŸ¢Á÷‰cÆU”kÎ>åî jAÝ¥7!ÞsÁ(ew`ÅQJ- ÀÁ$Ðqއ¿Ó¥~ÞB$×B4§7k¢«‰n3Õ—m@Iõ=¥Ô[èÉ¥šØóªÎ˜½ú¨ hïpÊla®‰Þx_ý©âT ,¶0˜›à‘_ÞégpûÚät¨”) ðIFš$ îÎ1æ"£&‘Á–1g´ âcŒ=‰ü=*Ná4±2,è ’þóvyãüb´ òÓ;·Tdt„:!‰Å@Èèb¦.X”ä¨ð5ïïp<Ä+3ðy§}Žž,â˜g7NCŒ‹U„ùëšpö'PK ‹5äF†qü À7org/codehaus/plexus/archiver/bzip2/BZip2Constants.classUØtUEðùÏ H¹½ˆŠ€â*DPÑUDCq!C@JLB„@H 4Å^Ö‚ ¨ØPEPÀŠ ì öEQ±—Åý¾¹Ïs²zÎûežïÝ;wÊÿ›ç »×mpÁuw]:ïöÍqs\sMÊJ§Wô¯ª)Ÿ<¢rN…9Â÷ÔTOŸQZ=cTiÕÌŠàìü›Í5ÖotI¿¡Ã÷+1dL~pμ¹Æzw@æ¸ü’¡ù|ϵ1W¯pdA?ýíÒ¿ûëo3—[P2¨03røµ˜k0èï+¹^ær J†åÆÿX}Ð…GäÍP”‰o,4×¢`ä°’Ì(~jp&STÒ¿¸(?~¾¥¹úµ3§L7çÇòrû”WUVWÎèk.t;`»1 f<®ÙÐÊê ~®¬¢¶¨´¬Šï4Q3³¶¼b`¥-ú©œÚëÞcRé¬ÒÆ®½ë`®gM턼r^dbéÌéyS«*N#¥µå+gUÔæ•Íá÷òþÿÛæ}?¯ª´zB^¦lREù >³wêﮫçês|°å]Û¹uÚ ÙnT§­Ï7®ÓnÂvÓ:ífl'uÚ`»yv ¶[Öi·b»uv¶ÛÖi·ã¿|ì8ƒ¹nOבîå\³iì5ÿiV ïkTà'gŠëÁ¿š)®ŸÌÏ7€mËç ,Ëç"œ)N t'9p_‘\øÞ¤!Ü/¤Â;dø7Hc¸Í¤ liŠPBšÁvþ3¸]¤9ÂC¤Ü[¤%ü¤ÂXÒ–!màŸ&má§vð}Iûd_;À_Fö„—t„½Mö‚±ÏÉÞ°ÕdXkÒ öÙ¡œt†ÛBºÀ‘®ð+È~°ÉþÉ!|í†PM€½Fþp 9îNrBé¯ûô€×%óà×’ƒÓô„ïIz!Œ#‡ÀßG…ýAƒu ½aÛÉápg“#ö'ÿ„×#™ŽÃQð5¤Ür4ÜNÒ79НÇÀæ’cáï!ý46ýá§‘i7ƒ?‡ä'•|w¯© ŸK† ,'ÇÃo%ÿ‚½O†ÂkF†Át‘¸•$Gý„d_ ÓÙßœÁÖ‘‘#É(ø5äD¸ßÈhØz•È„…d,|'rüFr2ÂÕdÂ$RÓ|ž‚PKJa?’2øBR?žŒ‡×°U è*§Â©ëàn%4…•Z“à‡‘ÉðFª`ß’){“j¸[H üId*Â2 ¾©…ÓL‡-&3` ÈÌtzgÁ&³š’Ó`óÈéðEdl)™ w79¾96›Ìƒ×,̇q À…°Hž k)$eâøä¹pËäy°øþùð×É n“ÂVÈ‹`#åűãp— œ*/…ûD.ŒÛî2Ø{rÜ:¹–#ÿ'îrøvò ø•òÊø”pWÁ},—ÀÞ”W'ljk¼¼6ÎÜupäõ°™òØ~òF„Þr)B7yÜËòf¸Gä-÷É[:Èe°³ärØ|yl³¼v¥¼þg¹a¼a¶¼ þEyw2@Ü?Iޛܕp/Éû–Èû*å*„†ò¸à„?X®FX#bOåÃðýåø-ò‘$#Ö"t‘ë’SÄ£°kåcðÏËõ÷È ð—Ê·ËÇ^OÀ6Ê'a}åS°Rùt,pÏÀÇ»oJ¦Šg Ÿƒ?O>K+Ü å‹°qò%®¹99Y¼œ]A¯$åâU„Cåk±S[àãM_G¨'ßàdÊ7aÍå[ðqÆ·fgìíôÑ߯•ïÂÏ’ïÁ.߇_(?€µ—Âÿ.?ŠåŒ‹)Ö[¸mÉ b;ÂMò“ìå>EˆËø³äLñ9ìzù|œ§/î’_Á’ÿA8LîH Ä×°å7œi¹“ÛL~ ;ñ],„pß#4»â²øÖBþˆð…ü >®¾ŸcÁ`È¥—ÿçù·džø¡Xþð˜ü·ÞcœÂíÎŽÜ_ÉÄü6i±–Á<üzbQƒ1o”õãl[îy™ÿ°Ì…éªÖAÒº*ÆÔUŸ±«µ&ÚaÆà½_6‹ÕÆèýZ"Ñô[ót[ ø’é»@¶âb—­czÁÚÄy²¶°øñv]e{„÷%CXeÆö„ý%;«ªÙ^=$ƒXCgûÄ4€uŠ9cŸ-;#<*»À_#»"¨ÌØ~ðÉý“i¢[ö¡ÉÚæÆLÖú0†ò§ò Ø*Ù!_öH«¨åq\$“y©ìÉ5 {%š);$!`‡f/{˜âÖ;­v8ü.É|V13ô¯òHØ7ò(زL‹ØŽ†],ûÆÈ‡¯…aÇ"< ûÁÇ^0ªËðڙưÞ.óaÊÙû ŠAœ9’î-;AUÈÚý$SûX9 ^UÍ ÒÍd˜Š¥ GЂµàï…\ñrL[ÚŠÒ=i píQÅ’$O„ï#GÃkYq<àÁÆdGslr„8)-®vröqÇÁ?%K˜ò˜Ê¡1ËŸee9+žÐFVÀÇ5s*BœÌ ÙîNä¼ËJ~`“íq›Œï^•[›ïV »AÖÄ£ l*ŸG2Ùã‚®Íî«éI•˜¯:“W’L÷8Ö³Y åiñ ;=¨`Lx%„ÍåtÈ3Ò’cg&ª¢6?>^•Ã΂}/™òGÊ[å9¼“<7ÍG;A¥ÞÎgrË Òœ´ “x—‹Ò´¶‹b¯.EàR„Øë…°åeÙÛ/âR—‹Ó‚gLyŵ]ž}J¦üjy%ÂÑòª$–¤%ña®FX+¯_.¯e)”×qåõi€Y6åíFøri<Èr7 ÄA½9^aLùÖòV¹ AeÝ–§ùiLù9òvÆŒ¼!.¼ðÃå,<’)¯rowÃ(ó›ä½i÷W"ÄuÊ”?FÞ¯`´U,ª’)«Áƒ°8¸«YoäCñ {8»_Ö¤ëúø«äÚ4dl«òQ„$cþr¹>þ$€m@ˆ5kczF±Çá¿’O0éå“N>Gíixʼn=“élSvžeù”ÏeGƒ9ÿºdη•/"Äë½”Ä¹Û  ýËq^?W2èuò³×²UjK¢#‘½Î-"ßÈööÍìÇßâ^[á—oóòŽ›|7=uØ{ñç.pÑʲOóaz´xF•#ÄÁÞ†;ü\ùIö{Ÿf«ÄgIL¿Ï³5ë‹x‡}ɳŸdÒÇZȤ±ƒ‡7ùuvP¿ÉnÿiÛ·LHɨ%ýû¤—Ø«Âé®ÿ1û0?!Ä}ósöî¿ðÐ%™ô»åo¬Jò÷4ÚQWÚŸcä³ûi7B¬ ÁÏË<èlUüɽ·þÿuî¾î’wúPK ‹5÷5šX$ 8org/codehaus/plexus/archiver/bzip2/BZip2UnArchiver.classVMpS×þŽõóäǃÁÅMPa+ÇII‹ù•m $}’žåçÊï)OOظ%„––´t2é´«ü,:Ã"«l¤i ;™®»ËL—í¦»®2Óæ»O²!i=ã{ι÷œïüÜ{ÎÓ—ÿùËa?~§c&Ô2©–)gð²â^ÑqÓÎéÐ0ÃyE¬Ž_!§„ p¯i¸¤£“^×±EÑ7tlÅOÔbjÈÇPÐÑ¢KG\í÷`FG ³JÃÖ0§Ìlµm«m;†Ÿê(c^Y9Ü*:ö(€75x‚èaÛ±ý—¡ä¾ó‚ðQ·h z²¶cMÖæó–7mæËÜéͺ³|Þôl%·6Ãþ¬]Œf]¯”*ÐrÖ¬US•²µHbz…Yû²å¥òKvå`jü×sΑÖî!Á–dvμl¦l7uÂ.[‡”½êÖ¼‚¥dÁ¦ÕçÍZ´ 5ŸG’ç†áçk33óèº8.ˆÜšã3.Ûµ}mûÌÔñÅ‚Uñm×!Lh¾ZR§eÓ)¥Îúží”Ô-¹º5¢<¶ÊýTͯÔ|*Zæ¼R\Ê8‚±ï’ùÑ õŒ³Ê|F.¾ÊüÒx¼­1$jWkéí¼¨üTòÁ”,q¸bú³¼b7Hè˜íYßõ®ëlGí·­¹¯…c`Cj9`  _CÍÀe,XTÂKø™ mã­;b°Ó)r'aàç¸jà-\c@ ßåÆÛ¸¦áº_à—‚+½`ûCj&xD­TÔ7 ¼ƒ›‚‘G^ÚJÆíÊ2š„]M˜NÂv.›e»˜È/LÌÐûˆBe´£ÿÏ+0ð.~¥á×*¨[ÞÃ`ë:–îÏx.ûm>aµë`&4üÆÀoqM…q[ðôýŸsªµJÅõ|«8U±¨NŘï6yÁ®oH BgÆå \/Ž‚÷'pçX ¦¹f-9e# ž­¦®–¼8žÉ¨ã­ëصϕE¡ìV­½Àïô¬ç.4¿:ó°ªU³Dað¡SkµÓHòcªþÂ5Œ¸Sz–TH#ƒ Ègdºø1tRðkÆ^Œ3šJHáRp ð5•ntp¨®µƒ´ ú›Z-Å œ‡1J.…ú”’Nø?Öª#L!ùýGò.Ùè2´\±Þî:ô¦Ær½FSŒ4Å:6þ›º Y™II‡—Ñ“SÇ lÎ.c‹âC ôN.cknÛÒáx¸Ž¾±H_dóøÇؽŒþ\ËS‡“íMèvܽ¯~Ứ/#ž‹‡xlbKŸÇÒÑИ6†ú´:†ÉÄ£_Ôñ½1­Oëúä¿ÿˆ‡ïa£rñøDÒ‘ý÷`ì¯cg Qª#Ã÷ðæpOÞÁ\:rV:²RŸ]tg9žj‘ŽªãÑ8K°ûn:¶ÚCw§‡îNÝô`4=PˆÇî~† |,‰á Ù$½ÒG: ;eiR†%…'Å×2Ú¢¡~m”dŽçñeôª\—¤·ä¶¼O:*—”^ëÑü ‡¸>ƒ^>Ž£xÇ1†“x¼@ÄCx‡QÄ‹pøìjø?…Gð!5ÿ„cø'ðWœÂߨýNãï˜À?1‰ó§â×Èñý^’òŒþ ÑQ”M˜•^Ì3‹9ÙWP•Xd65Ù%Iâ-æ7*…·ån0«Wd Ó2…sŒ8'y╈7G¼2ñ*Äó‰·@¼+Ä»J¼ëÄ»A¼›Ä»E¼ÛÄ{Ÿxàù¿bª1ê̶†›ÌvŒÍòk÷<³2þ|Ÿ{£ÒÌ>Â8W¸Ýmî@››b›fu¢Œs+¤öÊ­ÓnÆ´ÂÝls¬p8./³ž?dCž$ÎŒóF22ÁÚãïó¬œæ]œ`{²9[-|²5Kúƒ>Õ§¨Rí¿Œ=¹Þ½ <}·}»Ñ`ˆ¼dhjµÇÎ[{18×ywÏÒBð£À2û PK ‹5~¬˜ § +:org/codehaus/plexus/archiver/bzip2/CBZip2InputStream.class­Y |”ŵ?3óew³»I6B46@‹B@C $’€ò¨d“,d1Ù› bTJ%âûQ *¨ƒ( †à»j«^[m}´õÑj}k}·èõUsÿgöÛÍ‚Üûãwï…_Μ™93sæ3óí³?>ø()š$&Óô¥þi§ÑA;-¢¯’A¾fòŸL¾aò­êè;+}o';}Ç-?0ù7“™ Z©¥ &‚‰d¢˜L’˜X˜X™Ø°’Hfbgâ`âd’Â$•I“t&L†ñØá̹™Œ`2’ÛF1—ÉÜhæ² §Èf’ÃÕ1Üq v*Æb#bœUŒç–c™Ç-¹,u<“¬ôG.ó˜LP$6õ°”‡«ùÌMdnsL ¹:™¹)LŠ˜LeRÌd/‹Lgr"WOJ¦z1ƒu›Ém%Ü6‹Él«8Ù*N±ŠRAF«¯#"HT ²†ÂÕµ‘° ”ÆÖPÓYu.ÿ”ɓϔ¦ë‹|ÁæP[ Ãß ùe‚,s:W­ÒLu`­“µ•…›åU‡Â« ›BÍþ_gGa{« _¸©RáÂÆ®@{QaÙ¢²™‚’ÁÅ)—ó„ÁªhÍÞá?»>´8ˆ‚»ÊÐÒÔmuÜbëð·ú›"!hꈱ "PDF",½¨ÖÖ±£Î`תˆ¯ë´ÚèT˹×hôñ2F»?Ü©¶@°ÚìÀÄu‘°ß‡FwõßZ_a TXlïŒD›¡pr‡æ*‚ÁÑÔûƒ‘²TI¯«/]T¿rNuMÙü•àë+dY(Øñ#K|­~ED‚‹J–¯¬eáÒ¨ wÈC:æ u¨C:ʆ: AÃÖ¬<âlI‡÷%Lh9¼/aN« §¹«ºˆ/R;€®¿y{l&hXS¨ ˆø›ËBm Jn•" Üê eKSKmØ¿p7µ Y€u¤6„-á…õ¡¹!ˆ†ëuƒ\Ã]øÃ$Ö&_óÚ›FåMX‚Aeð!¸_5–YØÙÖè×û[ý¦a|1j™ŠšJ˜¯Íw–¯ÓfT‡š|­K|á0G‘–ú¼Gåžs–¡8Ôö–’@0™-hTÞ½ƒU¶vÅ<È@Ѭw±ö›nbç9¾Vfló­4M1Åð/îÖ`ǧĘ¢3-Æx±g°ÙwÅ 3d+7µúÙŽéQ;b4§Žëì:Ü„©}ѱó ¹?ÌÃÃMá0ÚðÆŽJ¨ÖÑâo>=i‰mRBþC‚¥¦b]“¿=˜ñäÄd"T5v wyU Š`CwuÁ;’"-þ¦´@ ¿±7vÌõGG‚e:6Ñ`÷1‰*DVÐ v¶Í D:š§­á-eX:â/÷³µµ@&5oy•þ_VUUÅ6kh«?¸:ÒÂÈêl !^§™d_k{‹¯NL¶·C¡µ~d¹Œ°¿i­ž9\›[µ³S«HÄ $NE< 6!"¬ìÜp¨“Ô¬3³*V §À¤#Wû#¥Á桵þúPe8ŒDõÇê]k˜p’ëœF—VDjä0…XˆÊ¹çòþu‘ºsy²Î{Õ:Ç«Šš9è[Í«/DÚ4§£ 7ÒÙnúQRS4g¦êFÎúµ¾pg…K7, %4*3çð†²ŸšóÓ&He¡‰wjxLgS¤3ìgÐ;¢þ;9‚þs†%{]¨3Üä¯ phøI¼°KZÅ'K9€€ÃÕ¾lNQ)æ:é—´ÙI>Z⤕Ôà¤FjrR3“í´YÐñGwˆ9égt¦“üœñp{Ð2ƒ¥Fru“LOþ†FYøËÆ_ÎÐæ—a[„ül vÒ7£#ãxüTÄC |ºÞ¼>¼žÕ ŸÀ/Ï…/®‡?l4—+éf¨fÚ8n¡tkh;MИ»³1hȽ¦A_BÉRM°”{%ÉÝ`F”€Œ¼“ÇÔh—`ÈÙy†a· €ÍATŠ¿y}”ÛGã±¹1}zŸÇôÑð> 6@cûÈŽb\©¬ÝñÏ!è˜ô.<·÷Àò{±ÙûèdêGßUÒª¢iN¦Zu8N§_°'LžDOÇ7˜Š„´Sû6anUò¡gnp3¼‚ ÅPc| “YY®–JËvM¹™’³]'ÝóÀua7÷>O¶króǶË2ÕñГèyøé¤lz‘óîeôý… è˜ìU­ÕØèz¦.ITó\mì°œÄÿ]1ýÄjÔÜ»‡ôc2›‰×Ð4ISK–kdA¿p—ãªè¡1nÃubt'¹j{È嶤Ó5=pê:~_–k IJ]¥Ëq-í¡Q>¾‡Ò!\×Cv·Åµt'9Ð æ¾1*¯Ÿ&xŒò=äàæü>Ì òÑ9.áÜO“´{îÃob›Çß‚¿MnÜ4²è]øò{0ã‡0ãG´>ŽLû¼÷KøïAd¯‘žÁ<߸èFذGHêŠv Cƒ9/ NÌÛáßQ0wÁËÌ4ø2¬°îõ`«o¦ÛÀ%A‡+¨œ’·Çbdt‚‹nª€ý}BÖN² Bø\cS×1ço€púÊͺð‡IØÈ&ìäN&Ò(W¤S¡ÈHˆ½É¦Þ6ʃ»/ѱvg\‹Fí ¤ÓC^ çÊ\S…¸;¶Þ¼¿GRŠÈÄšÙ4\äP¦“°Þè8Nn„ÖÓî£Iõb<)q,ø»J©Vä¿ç¨¤'Bz¸=q鵿ÎÇcÏ“ŸB’Dq/M¹iÜ~(¢Ÿ&÷‘Q½OvæŸj"1†=BL%«˜Féb:'RŽ8™ÆŠ'†Ž‹q(÷Rtüøxb¸7v\ ±Dupyò±»y1“iC˜gÀKH”ó ²‹JJs°vÅóª ©ëlm[\Ͱ– ‹Ñ*l¨8«—Ê‚YïÍ»Ùk ®f$ énCö°ÅÁÌf¿›æ²­ËI§Áõp»iìvÅ.ŽÍâ¾Á‡¸WÏÕÜed­3š×ÏÒýYÍèÎÞU°ù¨8J³„«¯MÔC,"·8HÕÓh±hAÇŠet¼XAÄÏh†8“*ÄJš'|´L4R³hÒûœŒF\íŠI4Io>¥°Ò $hŽ3ì/ŽÂ*z@{Ü2r"u/Ñèâaa¢]„[ÂæqÙa6n-zEgT&n­GâçÔùæá^Œ;@ŠÎ²áèø¡µ¢QÔFR)U„€F;P8›ŠD8Á²Åñõ‹èQ3j‹Y{úÅ“…éßÇ9 óXâØXpxEçy<¾£B}#Ví'>Íù p$ÅÕÁó(:X²œm•׿Nò&»“Ý–]4Qyín»ÛÚKÙ™†Û^ìNî!ç$·Ím¯é¶‰n;î^ït'ƒ¾¤xˆkd/¥Nt'«Ýø¥näÑ#&bxr±Ñ°¢Àhˆv~dÄFŒÀˆ FsA¬shºüÄéCªàvðXÐÜàu@Ðí0šk@ÖyzÄ+n\c²!˜¯1ŒuzTtÞw†´ É€ÄEH/›`ÎKàà—Ñxqå‰+)õ)hŸ.6S©ØB•(«Åµx÷]OM(âê7Ñ”›D]#zi+Ê.Pâ6ºCÜNˆ;èqq'=úsb7½&î¡OQþKìÕöé‚ ÒqþÿƵ³5â?ˆgJ‹¶ÞAŸªÝ5ÖkC,ĦÒÒˆÂ[Èe½Éf“­7Þd‹NÅé?-(2¢Å0,ƒøETÐL´ ÇB¶½ìÕñ8À•£ô~R¸<ˆ8xGá£Hm!Á?Ah+OÑ,ñ •£¥—Åçô:Ê÷Ä?é+ñý ¾B|#RÄ·b¸øNŒß‹ñƒÈÿùRˆiR‰iˆri ¤M,–vq†tˆå2Uœ)]Â'ÓÅô·Cv­!6ÈQ¢[fŠ‹åhqµÌÛåÑ+ÇŠ»åxѶ‡d®xCž >€ì§r‚ŽO85žUãt|*\sLîY¼ ~tàÒYHÏá(s‚ž‰cë\®Jp<Ï1&º) ãÓ&.Æñö´Ž@D™åv ñ¼eˆ¿êø”¢‰þp°[Š7ÇöMâ4¼8¶¯ fl»€ìËÔ /HŠÅ±µÒÃÏú}ZÁ×ÒY-ˆ kÔÍî§“^§xôcÚk‘^+²?‡/ îÒá›–Ü _ÝššŸm:ë—ü:-uÛ¶“½Û*\Ep<Û Ç„Û ¿Ô¾•\àµ{Üvn‡vÈä"·½àêÄáÁ·£—*”75~“Iå›L_`Rc7™ToJì*ãN9â]æØ]ÆÀ]f½×©; ¾Èðaàvnð:ú/Ô€å:"´Í:Ò,X©OnqÛ(Ùm=¢LzíT6¶SšÛn¸- ^{ÇâØé¶'E[ÜŽ¤H§FÀYíÝ)Œ@ª;U#à,r§hRH#ÎdðÆÓc¤{]q\Gƒ@Z©@ m€5Àò©­Gmƒ#±µƒéQ«XóUqÔ„i|4»í 5nû$kÌZÊŸ]8UÎÁ_©;yq·yì]Iº™õ-ëûñžC$ãH>ȣщy\ ô… 6›Ù¶˜ÅfçXnAÂËÉÏáÔË4?'IsIà,š³€³‚ëV?ô ¾˜³ƒÒcòÝ J}™¯ ßc»6½Àëð¸l§Û©Íc‡‡À<­ÈÒ¦yJ”7-nž46‹­’·Y%õˆVyâP«¤$XÅ «¤lð:û/×VÁªNm½<[¥ïß-ûZzð¾»›¦Š^±[ì¡©ªTÍW c·r™AÝ “È"§Pš,¢LYL9råJ/åÉé”/O¦bYJ3Q–Êr:UVR ÊŲЖÉ´RÖP£¬¥Urd…e='ÓF¹„6Ë3h«\N7É3©GúèN¹Šî–M´Gúé^¹šÈ=$Ï¢Çd+½ Ûè¯2HoÊvúLžMßÈ!dD²SdÉóÄxyÈ•Äd¹QL•ÝÂ+/3å¥HÖ—‰¹òr$ì+ÅyµX!7#QoÍr«h‘׉³äõ""·‰ ävq‘¼Al‘7‰ëdØ)w!Yß&vË»Äy»Ø'ï÷ËÝâAyxDîË}â%y/ø}â-Ù/¾ûÅwò€Tòi‘ÊùˆÌ“É|ùk9M>.K哲RþVÖʧärù´#}òY¹Fþ^¶Éçe»|QvÉ—äFù'¹I¾"¯’¯Êò5y|GÞ'ßÅÌïc¦0âCù²üH¾¶wåǨ}*¿@ù5è÷ò_xr|¥”üZYå7Ê.¿UÃäw*[~¯Ž“?¨©òGåUBÍV¬l…j¡JVµÊ¡êTŠ:]¥ª€JSåRç¨ µI S×(·Ú¦F¨ÕHuŸ­ö«,>¨ð&×qô¥•†·FŽ~i¥À›JôK+•>ÛâÏhã_{î ¿è£è<ô¿¢¯žq$½ª¬}æ,âqs.¶ÑYÒÅæ,i"bÎ☳¤à"%y"½†Ébª˜A¯ó‹·ö_y Uk®áR§›k¤ªRø8¯‘¦6™k¤¨a˜™×°«lìò=ö8ºZ¯á”W‰\}ô&ÃæÊ<˜qô™‡«Eí£¿áˆ4I]f®YòFzC®iêvzS®¹j3ý]®yêjzK®ùê z[_œ%ÿæe¾È; ×ïWÓ…xØ^¯T c)G—ã¼ÝEãò™5“]95œÊ9-–÷ ¾~$áù¦lÃaÂÊæ<¹‹&™)³¼xhE~vWjò³£ù4aäóœ£*ðwrA?Uò4s™ÌãïÒýT…ŽümÑ¯Íæçå:µ¬(潋i < ŽøÇR¦Ê%ÊéêªTèt”Íj"ET­W…t™šL¿D}‡šJw©i´Wy©_M§‡ÕIô¤šIϨzNÍ¢Ôlz¦~E•Å¿t®}Mˆ´1ãá¾ó®~ÿHþ1Î4À8Ž_Dwaó¢¸\Ë»­ê§j Pe1oÒ„ RCp?ÚNyž{iØÌÞ8ðÊd¼ø»Qf:íµEÁ@Ç(NØZ„Á… €Õè#C]È£uœg®;Âcáõ÷'óªý´°Æ šŸ~«_DÃé\xp S§ÒX5žYMÅÈ:QQ¯ÑRµ˜šÔ:±±Q-¥ËÕ2ºF-§Ô À»’zUݦUSÂÿ®øÿýø7².÷5 Á5ÿ(àúé]G»G/2©ÕØc{\ƒ=ž…=¶Âm‚t² áÞÓNµêlªS¸P'-Wki¥Z—°†ø>>ˆ›½È4û^OÔ$Õ;á¿I¬’Áέý÷ZV{.«=s­7Óy‰[¬ýòˆÚC=b3Ï ©Ó:õ'ö-üì벚¿ ýéÈî§BR÷Aÿ~Ød?l2›€M‚M†M…MƒM~M ÕãðÙ'à³OÒ2õ|öiÄè³ ûjŽïëÿ7ÜmGÄ}þá¸?½ÿÜ_î/÷—€ûŸû_€û+ÀýUàþúqÿ˜>1õÛ‚Ÿg3TÖ.åJÞEÃ?wiÝf¹’o!åÉê§YYÛÉØ—Q’Õ2Ë“Í?rÎAaï§ŠÃ~†Uo½÷hœú§êG@ñhõ)©Ïè$õyÂO[3⟹fЧú»f>n-èo¾7žõóÿPK ‹5 𤱠=org/codehaus/plexus/archiver/bzip2/CBZip2OutputStream$1.class± Â@DgSØÙZØê¡ ö+‹tv繘„˜„Ë%¨ŸfáøQâ©¥³,³Ã›Çóv‡ƒ ® ŸàGE­¯“Œ ÃpµKÊù¶6em"£Yž¦©l$Á‹.¹‰Ù$ÊEŸ°,ôQ¨âÀ±¬+Qf|¶&µŠ“†µØ_-Dü²Æ3Á&ÏY‡™¬*®ƒwƒÈd~Û}ÊÊá1²ð¾rìÀ¦6:ŸìÙõíŸÐµWïPK ‹5‹Y߉v(Eorg/codehaus/plexus/archiver/bzip2/CBZip2OutputStream$StackElem.class¥RËJ1=w:vl­V‹ïg.TÐQA¤´(Z„¢‹Š wé4t¢Ói™f¤ú7~‚+Á…àG‰7cq£«šÀ=÷u¹I>>ßÞ‘Â6ŠY†Å,l,:Xv°B°‚€@ìø>›f“®¨Pé#Bjcó†`W;MIÈ×T(/ãvCF×¢p¦Pëx"¸‘2ñ ik_õ™ºÞýY Û„ÜEʨˆ^Oré¤Ö‰Z®Ç¢¾ˆ{n7}y¾z‘ÛxRÝ}·zzËpën¬ë:’¢½þ£Xv°J¡²1¤Ô^Ù fõw ¥¡%Ì¡ö¥V![ïÄ‘'Ï•¹„¹ß„;ñ rÈ ë`püÏ; LA7a˽jÜIO‡…p0EþN6ÀAf9MÐâÍ3ócqä2’éÝz…õ’”slÓ&i?cœýÜw&0•Èd0Í]†\âŠ5 ÓßäÙï†òf8Çï‘D滀IÆ{),!ϧ+0ò‰¿PK ‹5†®-p¢*#-é{WU•U–DL-±°¼¼jUaQyÉäö-áÞµ¹u5%…tšºe/+\Y8¸¬j0íCu}K'mª²Êb:yºº°²ŒöAö0ˆY´´ÙÄV}EQIM³&Ž…ËKfVÓˆÄìªâÂòy…5eÜ䵫ºÒ2jõoíæäT%–‘nJ‹fÒ4,ƒ«¾ýf-œ>}:K'Ö¬!Aë*ª =ûl•C £ÑËèG›)ËK*y»ÌîÄ–W—º±* Wgs›U9‹ØóÂ+§•'»®ª*»ªr) +5kUIÙÒR>³Õ…¼+„Œ+«,«›€ÒÿØÚdá|e•í:÷OY]\R]WF7¡Ç¿cV[VÙiÛôªš²:Vfw¹E+iUE|²˜>§žÄ÷-)«,,§Þ6n§æxP¹¤¼¾–Ž‹Ÿå,3í´|®LöyIeÄCã ͪª¨®)©­% é.—M"tie–«ÿ…Ófy*WÅæ@Xåí²¢¬Òèé'W–Ðɉ¥ÃVR×¾v¤«•TT;•&¯--‰Ì/«+6#'ªŒé9Q-Ñö‹bb.‹jçÓbú»S#­Þ_T;»¾n®{1°Øœl"”ñ®`}{ût²ŽtKíÊúŠÉeu´„¸ZZ$ÝUc3k¹åÔšªz>¼b)««rva qP5%tŸu{›u¡[ʲbV|.ë·ª¶nˆWõÊa^9Ü+GxåHÞ1¶"EÅ|*ªù\Ò •ÕUµlBËÓ· fÍÒ¥§Ö…l²Ç-ån´ÑDõWæz¶ŠhÙ­,c“j܃McØP-)4v”ç¦{^Qµ²$¯jjMÙÚ³I•‘\RÛDz º‡¹U¼b«¿·¯ä©A”W(%©ú©¢²¥³¸NW@¯¬]ÅWA±Ñ"Z5ß3^ª(‰ g6YYYXîBª¬`Þ®6êycÙ¯*SL+ã…×™ÚÒ:®É ã*˜^•ËK˸†¢–'¯e_ˆ0yáfLúD}éXc·è^šµ‹bZ€X¹’§áKU8¬¾:RhîÛ :(´7EE4Ô¨‰0×lÔ––-á%j“dž+Ë*—æÔDx§HýÕg󨲥®í¯i·ìÞ…³jfåUZÅÛ—7›BHÕœZAmÛOê^»¤ª¦¢°ÎÜF{I}yù©us½{@žN”±öËXøZÆj ëÁV¿˜„o¿É´ôúâºú>í KK(¶ ÆN7@¯™mNƒXÅgnJÎd:¹Uõ5Å%SËØ~'ÿZ™|Sm¼>€7àwpî@,Àpa.‚‹p ƒÝЀûá!Mýþ=— íü\Ê.c°.ÀũFX€]LÛÀ­»‚Á&¯ÂØÂýÖÀñ,ÂÓ žað8ƒÕÜz·6Á#x–iOB“{ðWþÈ`ì ÀSŒËý¯eð.÷¿žGî¥܇7`;WÃÜï}n=‡¥{ Þ Í´?18Ç®cðx¡ë1l]®âö+á7¸n Àsð|ÎfÚ‡Ìlóù˜'…'`+7\ÍàX‹0ñ¿y#hƒ°9€7ñR~Ëàf>Œ `: 2–ÌàÒ1öe9†³Dûx_GþG³“?8–Dúo°3ÜÚC`0þ3 mߌòÂÊ¥ƒóJk܉"ÞjîÙµuË*X;Õìr7Ñ8¥ë1Ètk«¹VN÷×ñܽ˲ŽÈKMxã³uš4§h™yòXíž»Öí»´¤n*»zS£àŒ þ¸/V>Æê¢¼œÍ;þH„­xµÐŠ!B)B €4XË /§l@@>Õ+:ÕP½²S½ŠêÕê+¨^Ó©^KõºNõzª¯ìT_En(g(|þM¹Æ+ér™ò\¯¾Î+ÏóJ2†Ù!S6º`“dÊK¼òR¯¼Ì+7x%ÙS^á•tM¹É«_åñÛìÕ·xõ­^yµW^cäl4LyWnóälôÚ·{ôë½ò¯$ÛcÊ]fžÞ”±’)% í¡Z_¢ó_Ì€‰â È&—ÛË©šiš >8…°}Ñ!WRjÊ-B²”—š€Ô6,t7èÔáÛàB,ú©ÔÍs©°S'4Ÿ U@#›Ûž9`Dâyާ¦ƒ†Ó ²!f-ÁlE´ñ 7Rnî¬Ð 7QiSÛoÍFçʦ—=‘?•€êL Apçñ2ìs|iMp|JœãSŽ/³lÕ 6£AßêœÉövZXɰN H™“Ç ^ä(3zÌI‰w|"§AcJÀÑŽ/ÇÑá.„vÉ ‰q03%ŽkjMfftgÔ«æ0 win{“ NÐí6G“°»Áº|ŽV{qKJ@e†-‚Ì?“&j“á.ª}Žâ²:t‚ŽÞ V3Le¬ RͬAUéÎäÙ­† ’H IÍäÉ$‰‚,ÏFž„3±Ýyâÿ³6($Zô³µ0‡Tî(úY™ m°ŽÛ  Ú<!{¡K”Ø (½`=m™£:öHýç{Ô|¤ÂQt~Ü ’áØöc0J†c_ØO3ù3·CДaC íé×!:_'fó\'&ô¥Â±f¯;±¬‹L—IÓ/×ñI¤“·&£œ]^ŽaŠ=ŒoD/ ®ƒÅ„/¦#^@¥²ª=ɦޢr 7â)ÐŒ§ÂÍxÜ‚§Ãm8ndzàÂ]x.Äõpn‚ßá8„7Pì° ˆèAŠÂÛàa¼¡›ÿ”°àiψ <'’ày‘ /ˆAð’ /‹‰ðŠ˜ ¯Šéð'‘ ¯‹gÃ'b-|*΃Ïĥ𹸾WQ¿káq=|+vÂ÷â&øAÜ ?ŠßÁOâª? ÿ`#„ô Ž„ý¤ë.¤ÉL¸•° é'âÑÞƒ<¸ÍÐÞ oÆ­ ´òB·•Öîµ’&¼VZ‹ÇVÔÎïaÜ·fáXL€;³i Cáa1´’Ap'a~’±»Kc£G»Çž‡±»ÉÖ£ÁZ¨Uì aN¡•0Y´ú{ÓÐ]ÜeŒ©ôµKó=¿#.ˆ÷Ã}„ÅCâañÄû~x€ø²C8Ùs¾PF0¦b:L»q!8lÒ@‡ ÷y&œ±É7!üžpEåDÃ÷!—/n%Éø™áסVð‡îƒØüV´@\ˆÎ!ÕÚ º…܇ء„©s‰oGºP“8äo`H´@»¬D]CÁøCþ|©rò•“¯ƒq9ùV°N¾<;'ß—€å9ùA+AM¡ÂN¼Œ áu<ÞÄÅðÀGt ?Ã"ø ‹Íõr5Ý¡¯½bìas’:ï% ÞxÆñÈÚ‰TÕãÉï'Ð]šÄeÚ.èÏ@"G‰DIL€#{a-ø„Ži¦ ÷!½$4{eÇÐíL¦[HwË!+¡VC\™X ðFa=ih%LÄ5…çÀ4\ 3É†ÎÆóa.^‹±¡ÓŠ ¢+.€GMXá‡yðØQ+œò¹+ùDãÓ}5­¦ýú6ázŽx¹*Â"^e8TÄ1móAègBŸÏ¸áf3×ïM°FÚk8‰~U¼Ø>¼Xæš2Ã`n3†þuã1 ¾ûO†ýW ›¼•&Ú•÷–ùÿv ÉÀ"u¡£s"_ >BÇä q/ƒXÜ^Çá•AåPr9³Éå, 3³ ¯† ¼Váup nƒ«°‘ÜØvØKîè6ÜAîh'<»à5rMïSšÿ-îï)_G¼c±Sñ&ì‹¿Å‘x3NÄ[0÷c>ÞŠexÖâíxÞ—b ^Žq¶âV¼7j“É¡¸q,%ïv8ż+6–_ôp¨:H—©t,2žOþž,ÅCàÇ ó€Ûù(–‡é÷d”å…Tr¯¡¤Æ®Û@`uî 3½–®NC|%»’A„ŒŽ©3ÉU>N&þ0Mý4ªg¡+>GÆêyHà¾}ñ%€/Ã|¥“hCµZä'$žh¼ÕhÖAŽ^ð´à7igßêÄ5ð+®‚ŸØx\ƒy·F––ìM&ƒÁ¡`i+ ‡Ð$Ç0JÔ¡Sõ‹¦ú4~D¶æsòÜ_@*~E ûºÓ´½1í3Ñ”é\ÏC²žãR®DºíÓž9Mæ$óŒqøs(q8 RLŠ´@ß1zRØø=éùoÀŸè,ÿôûm0„x·Ÿ§xHj?OQ ~*åià+#%¹!W–-0’Ñ¡j5Ãàqk×Óòùª±°#/àJ+„CÁ¡FK“ Ì7°Ÿ¹Ð £¨8it )Õ £™Ó`¾´ƒ›éä*ɤVÓ±°ÓL¦!–â»taCHø!S¤ÀÑÆPDt²Hƒ©"²EO˜#zÃÑ E?X*N„¢?Ô‰ X#Ã:1¤Ó~œwŒýøcT k½s?,L6â×8ÅÀ“ œÍ06yëÊëj…±r÷31×8°Äxˆ H1hwq2ô“ ¯È‚Ab S;É4ì2=G‘#F=(q„q2l§‡-ÇrÔjRV“i t|#k(WuìœM~ð¡cSbf7X„?Û!]ˆüˆ™ Å,ˆ³!YÌ^÷saÕ‹3`$µ¥ˆ%\Ds!ÃYЍ?/¸±$a/R|) ö’‰%;hbIÆZL,iA^æÈ•ÚGÃ+¹Ò˜W)Zt×™O5æá„2Z` _¶q ƛٱ€nÄ ÄY Åb s (8.„$QÔ)Œt¢":ðš R? õ¶øv/ áðcÜšãn쾆˩aB3X3>ȧs<åZ%1]æ­}ë‘¢ŠMI ÍRc'ÅÒ6°øÑé¤Ý`5cµc‡°Û%ò>M2ziŸ¡kºœçÎàƒävÈüpJ~¸{~89?Ü-?ì­°r¯s ÏrÔÈp')CszŒ(ØBíN†òpÇé–¡=¼›“œayx²Ó=ÃöðîNJ†ÏÃSM½/¥«t’æ¥tUŽCP;ÝZN2AÛéNÐç¤Ìk†Ñ‚d¶ ’ä-$™²h$6'‰øº+úÌ0>ñ”pŒû¼Ž©Ôq¤ÓFÂ1éaŸéüQJ¢ã[D†.‡XÇ;±Žoó܆X옲GJ‚ãæÍk:ö¹{Û|dC»$$oŽ&ÝS‚ŧÔ}Žñ%:â+ì.¾Áã‰Ö_ü3Ä÷8Tü O?àXñ3NÇlñœC ÞB)°X*,¥²RÚ¸RÆà:‹Q¹‘êWÉ.¸UñZéà.™Œ{d î—=°E¦áýò|TöÅ'©|NöÇWe~&â_e&þ"‹9D8r¨è-‡‰Ar¸-Gˆ)r ˜!Ãât9JÌ—'‰3åhQ,Lj29VTÉq¢FNçÊIâb9Y\)O×SÙD´›äL±_ηËÑ*O¿—¹â1™'Sýr¾xMž!Þ—ùâ#y–øFH”gI[Ë8‘AY&»Ë岕)h&«äh¹BŽ“µr†¬—³äº–kiÄ:¹„Êr¹^®”Èóä…äeò"¹I^"·ÈKåµTÛ!7È}r£¼I^.o“WÈ{¨ÿò*yXn•ÏËkäËÔë5y|_6ʯäõò{¹CÜ¥|ò:/÷(GîSÝe³ê)«zË[Ô0¹U$ïPä5MÞ¥fÉ»Õò *•÷¨JÂ눾FÞ¯äƒêrùÚ,VWËGÕv¢í–‡Õ-ò)u—|FÝ/ÿ¨ž‘Ï«å êù²z“hïSû§òmõgùŽúA¾«Q¾¯ƒòCÝÊ4ù±>žhýåçzˆüR’_é òk=M~£så·:_~§É¿êÅò{½Lþ «åºVþ¤WÊŸõZêw»T¶é ô•Jêk•ÖÊÖ{”OïW~}· èU¼þ˜Ê/U¢þVuÕß«$ý#Yç6•l •Â%±#à8Š¦Ý¸6‡ÂµÕýÅQ¬*ŠÅ~¦tÀ±®OMò´Àgü¢6Á-ð9a‰”í\_֕¿-ð%aI¸º}6ü¦Qâð5ôÀÏ(aû3aIø \ ßæà‡°þBX7|®„o KÆ·á*øŽ°îøl…¿–‚_ÁE&Té§~I”Ì4º4ÜW>²…ð½yy°"ð7~!¯%i€¡›¼€C~A¡e,ƒŸHž$y¥?S«#/ƒ‘p+aÉòeÊ8©Œ“¯AI*ãÕé0À«Â@›7ÃßáBp´‚>.M‚ð½æzZ£× Žýú'¸ ~¡P8Y G8 ¡»µß]lÑÕÐf^´ÌU·Qü¼œBí8ý7DÂb‰ã×&­ è°…yÁs±>×Ý-œªîG‰”Ý`¶jEMir"ÎQЂß@WyXŒ¨5©s(ÎßñtŠõ9`ï v'“=­¦‡Zá4úÍèˆû9·V=Á¯Ž#…ô‚DÕ»Ó…®¿Îù;7Ó&ã­ù)®HK ¢›@aÝ»;¾LǦ`ܘ­pznClÁ§”‰5vXj Ì1HZ ä$½ò8­ŠÝ!¶Qö#?u󡆨6Ó|7Ì <,7çayáxÊ!‘`ÒnðS¢áß ½BN€óŠV˜½DmûÍ%jÛw ä½ÞIu™N|*%ÄM 6jGm…yaŸÈsœ—¶éö*¹Ñ!Êëíø"dba`»yºˆ–{¾‹¿Ó±ÐÒ-NÌæcjÍÇà­Í[·óví‹íñ¶™·ÝÖ Û ïë]Þ\ëà}Lá´Ç@3…fHw~ÒŒÖ@ûÞ9qí›çÄós@Þ¿æ#'ÓºšÄŠp"Ë•fÊý¸ŽáÍQNLĉi…ù´Mv„XkÓ‘+Ü‘ëaˆºÅ9~r.ŽŸ»Ò°â xíq¦ûÿÑÅtHäÊã‘Y<¯‹_E~-¶×t¬•yëú¥´ãk™y €º®×íÐU »;Ýû»éÞ„a”ëU÷À)ê^8UQB£î‡<õ ÌWÃõˆ¨G R=Jf÷q¸L†-êIاž†Õóð¡z¾P¯À·êMøI½ ÿPïb¢z“Õ‡ØK}„™êc¥>Á1êS2­ŸáÉê œ¢¾"ûg2±ßà,õ…ßãê¬T?b­ú;®UÿÀ êÜ¢Žà5ª ·iÀëµÀÝZá^ma³¶ñfíÃÚwë8¼_ÇãSº ¾¤ƒøªNÀ×u"¾¥“B`üZ'㺻P:Eغ‡ðëtÑO÷Ãõq"G÷géãÅ2}‚X©ûŠõºŸØ O[uq­‰=:CÜ®Šûô ñ€,žÐCÄ z¨xSïèáâ}=˜¤·¡G©ØÝ„A½<Ë$[9ÎØÆ\¥UFi÷“Á24øÀck¿ÅoÈ­°Sù ÂTã@¾Áo1Í8†ñ¦›Ð²r¹ˆØBî‡Ã´ˆXgÜK*Eq/q°Z,3î%žÍ]»¡àq®'¬—÷=ÌØÛXñâwx¼ ö|â <ûPˆ'ø£d×xZ[I¢.”$ÿÌߘøÇh·°Ì7(cl9.5˜Ô}ÛßH§h~'’꾞®&[0×¼Ø{Ãý" O0©`yå×#U昖/¸¿ìx¥=‚ÍIŸ„.»š ì rG¤¦¦º#¾æw%9¡\гZÈ~òè>’¬i³œË¯¡mħØí/ÿB´Ä3\&iíÓ~c¦öEçèo'ÈPGÇô­vb ÌÓ2'&ì3Ã^Q.¯†×¢LS¨HfËõcæ¡:¸Ò WÍ\Û9Žgn<0xGŒ)3µLo}OtRpYŒ?Öî•Ó±dÝ®¢¿¨p¬åÄ–’ýáçt{Û¾sb­r®y½+¨wfØŸjø¦è4'6B+¥ù2;¸1Úðw´9~CÞ =©—×1‡áx)ÞA‘"Óý®0›‰º«íBOL¼“'ž ǧ1–§³´ÚP4“™˜¿.1'Ìj¯.XG†Ö઀kd]i yÑãBŽß‰Õ­°0êDͳ¢ïM> YDìÖ»™·¦Øé*%h‚‹¸•çí`Ÿî.êdÐùQt€& ¬I\´—\R€ÆÇÏ®c›`Œñ<þ´‚Ìp\õÇóafožãÄñ]èêÖygÈÙLÿk†žé>gl_~jŠ•f¶’fO7 tûØYÄñiÿ,b¥JžËMˤÖb;¾áæ¹2ñ£üÅmi^ZŸf£ªÓÉáV÷ñ/OrK»)"tRÙǼ{Gfvøþrôh°õˆ×c)=œéúTMåD=²õ È¥2_Ï‚ez6Ôéy°NŸQ¹Q/€Mz!4êE°WŸ ͺîÐEÐBå}ºþ —“T>§—Ákz9¼¯+àK] ¿è*D½m]ƒ]tö¢²Ÿ^…™z5ž¤×àd}ÎÐk1GŸ‹ùz–}¹>Ï×àF}!6ê¸G_7Qy›ÞL>äj¼W_‹éF|\oÇçõ äCvàŸôn‘¤÷ˆãô^ÑGïu³¬o#õv1Vß*&é»Äiú^ò!‹3ô#¢@?*ªôãâý„ب‹Íú)±]?-nÕÏŠÛôóâwÔï÷ú-ñ¨~G<­ß¯ë÷ÅWúñþHü¬?¿èO%èÏ¥O)»ê¯è¾|-×–ô_äh¢OÔßËú9K·ÉùÊ2*«,%×ZZ^iÙr»å“{,¿|ÔŠ•Ïí%«‹|ËJ_Qù¾Kþd9ÆW½|I¾ªŸñA3 —IbN†íUˆà‰ìQðl2IL¬8&ßâa°ñ-±¢ °?{-Ùúáó°"…ü\ˆýxê0ÃŒø q ñ œ…ƒØCáùbµ;¯ÈÁ›1Óxž×doì¾o—?{¾*Y~à}¾aËïp\Nž1^~‰C ³À‘á0¸ß¨ó̸ŠÜš6‰Áj9^N8öW%Q?/­ºÝ g¥gnß 1=ÿ-@Ë ¢Í³þ‹F¤©]æ«x%/0Ÿð»T~ëiªºÝM(—ùM9×TN3¬ ¬TPVÄY=!‰ÊVoècý­¾0Øêìa´5ÆZa‚5ò¬ÁPl …Ôo•5Üì[È]“§ j<½X‰#ŒW¤ñ‘^&î¤ ÷¥îzN#zòªKÉK²ÇœÉà$þ”)'Ô ‹;Œf?×hòg˜®WÉC÷–í½E L‹ª±‡›6’e¡,i‡íè­iü–¶óãu˜I´€Ñ¤1h…dk¤Y —u2ib2„­,8Ù:¦XSà4k*̲¦C®uœieÃk,·r ’êuV.¬µæÂyÖüN¯–×{šë}½AâÿêrµA©¿äó%£¾ýLJc&9Ú A7×pw|¿›LÿÓ›BŒ ÿî ´e†ùUM´L~ãØÜ‡ŠÿPŒÿ·8š»±âL×€miÅ”‘ñddä?ø‹“™œÓÍL¿þÈÅ2úPÏ‚ùtOƒß* «Q©V1YŒȰ–@¦U 'Ye0ÙZÓ­r˜gUB¾U‹¬tGj Úª%ËQ Ö*¸ÄZ ¬5°Õ:vXkaŸµî´ÖC‹u>Üc][ ð´u¼h]ïZ—ÁÖøØº¾±®€Ÿ­+­MomÆk &YWcªµ ûZ8ØÚŽaë̲vâ kæZ»qµ—Zûp™u#VX7á*ë·x¾u3^jíÇ«­ÛðëvÜgÝû­;ñ^ënüĺÿl=€?Xâë!kýAÄ[ˆë1‘j=.úZOˆÖ“b´õ´˜d=#¦[ÏŠÙÖsâLëQ`½(Š­—ÅrëUQc½&ê­×Ź֛¢ÁzK\b½+6XÖâ:ë#c3æ¸Ö š5âh/3jÄ1Æ/¦âyæ $y²MäŸø¡S’¸˜|å qæàXó¸<OÅqî×]ü±Þs° ½OuFyŸ1Ž Ñ£œ‡¿ÅO ¥2æçOãS¹H %r™Ò©¥‡bZ ë¨ï­oÁg}G‡á¯ÐÓúúZƒA¶†°mu2€£¼Åø`°÷=‘àpu’i$>?ßeþE ›LyQÈü'Z˜CPÇçfEÁèÇ’¿:±¤‰8UÄg¤¥mö>€q‰dýÿH…Ý)¥ÔFNÈH§«äÄ8j'$“gå'͆”‘îè¹ÍmŸfHGÍMo$OAù<\ìX;`iƒÕæXºúã:ÁûW<€€èg¹YŽ-ç5Ø|]ƒÒD®ÍÐÝ¥«vºrS4K›´Š'$¢ËÖy»l¹})vÞÒÞðŽxðÑ‚˜7²¤y²ŒøïÊÒävt|Q9Ú¿Øpì˜Ô±óG`"€íËN¿ÝmzØÉЛÊí²Sé¤Á(»'Œ£r²}ž¶§ÂKö©ðª= Þ³gÀ'öLøÜÎoíÙð½}:üh碴óвçb¢}™õŽYPj^6 š¹ØÜ¥ÙT–ÿPK ‹5@TšÊ 6,org/codehaus/plexus/archiver/bzip2/CRC.classÕ{|uÇñëÚ{çÛ{6fc [3F«Ì­¶4ü4¬fÑŽ¶;™mŽ£9EJQÍ1‡œ¦aFŒ¨(´I %Õ*"¥¨îÏgävßûûŸ×ów]û}?ßïïÚ×á»ö0BÍÎ¦ÙÆÙ´5Û:I4í`»ßœÊ"óàô9Yx¶ ú&\_§½*7!ùx•//z ‰s‹1Ê'âä yénk‘5ÌÝüû´@ééá«P°|ÒDY‡WkÎbɹOà…•óæãå”`n§}½ñ|Ù¹([Ó˜€òŒ†ï°7$ùIì:û3v¬O‰À¶ìÒi¨ õ—ºõÀêJïóX‘ã2ÇÃs þJA'œ©J¼ÏÇÄ÷Ãû¾ýñî5ûF|TЇ‹£^Ư½¦vÆÕÆ¥ËѸsw,nNXû ¾Ž¾ú¾»y!?ÔÖ½†ŸJëCѳ¼`ºÅåîC”m¼8¸Êì7"0Æ×]¨ÞPÎ_ú1¼-SÇÃ×uíJ´­Ûí sÎOØÅ_] GÇúR¸ª;Œñ‹7:`rbMÆx-°¢øø¼/1zá™SÈOØ—ƒ4†íYßhƒËc߯°ÉŽx¿ô(ŸN‰ÝÒÑoXèq<ìãâ†>'½waÓšƒ‹±.ãTÖtºþ'V6œˆ·WVÅcwJåߨ œÛ[Ï-zs*CÂ0?'âLsï‹™—Ü®âÕõï`ivŸ‡± däR¼t~R0ÎVûo‹Aø1"h6.^‹ŒÆ•ªÑ‘¸6¦ä9ü>h(n\pk/?wJ/þ€£tÇ‘›'ÊñéÎòé8:¡¢'N÷Ús'W ƒÕõì%äÖ]OBÊüSS‘a9x&:. Ç”CsŸÅØ9•Oa\|ÕXlÝÀýkÄ–G܇âBžÇSƤ9xrÿÈ( -ëó->ý#—¡Ýé .¸g¹qGøÇ!ÂgÀC?9èwĪ g&¡""å –_+ƒ«“×aQql[Ì ÷n箸TbZUhžÓí] Ÿ³àU$ÅÏëŠ!ޝaСš>8¿á3áw2·l–GÝ ûepñ·OFóÓ¾?á¾…kG„Ý ˆöXú zÕO…‹ëç! ±®B½.|ƒ.ǯÁõA°?;ò#|âßœ7VàDå 58–3€ø*lôœºT2߬<²ß§œ(ÁùÀËoâÒ¹‹­pyÍü–±bþìT>×*ÞÃì×0oÂÙ½˜Úë`f4žªÇkµs?ŲÒEiX]µ‹oVºâÍ*÷-Ø8ÆÍkÃC¾ÂëW"²Q[=2;‹'}íÃ-×úT;˜íÌ@ÓpN/Lï>$5-'Ó4l’û™†SVN~ZjNLaºi˜rmßÛšg-Š6 tî’h¶1ùòÕæý­y™‹sÓ2 o/fÿüôÔœÄÔB«^ß¾i[”mkûçf…¥ËÊìÔâ±a9™ã…ÔÂôlkIfaXÚDkAxXLBL¤i¸énÖÔëØL¹a.Y™E±Ö<9^ÉäH®r/îÖ)õ¦ëØÿ¸´íÜOjŸ—9®éG8d¤ÝšfkÍ‹ÉÖce昆cïôœÛ?Îyp~qazf¬UOí(ßí:*µ$ÕÕt6]\M£éäjÚ›¦ôÿýÓp×a9©yYa–´Q™éEF€¼vì ð1œt–|2t°à`˜º™ÔU®" yø¢Sðà ®1l¶è"ÓMÚLÞg†‘eØÙ†£a5›É•ë­/›ÍM÷¦‘wõ”­ôoöÁ6Û ü{гÜ7Œ\ÃÎÈ»k‚ý 4=oOè~{‚Cpµ›²MwFØ7Ý.¼k¹Ãå-î,»ýKìtù/w×b»;‹½LïÛ‹£eo›¦ÓûþÓO–Ó—6Mð¾õ­&ȧ–òPeªÙêά"ybúä‚ô î­&ú–Eù-1œÈi>,íËG¤1VÃ8éÃ|TúûIcù˜4ŽñÒGÙ_Ú¤q 4ži’àãÒLZ8X:ˆC¤s¨4‰ÒÁ|B:„OJ‡2IšÈaÒ'˜,}’OI“8\:Œ#¤É|ZúS¤Ã™*Á4éÓL—¦0CšÊLiGJÓ™%Í`¶4“VéHŽ’fq´4›9R+s¥£˜'Í|i ¤¹#Íc¡4Ÿc¥,’Ža±´%Ò±'-âxi1'HK8Q:Ž“¤ã9Y:¥Ò‰œ"Äg¤“9UZÊiÒ),“>Ãé–$c*g(Óø¬RÆre:g*38Ky–³•rÎQfr®2‹Ï)³9O™ÃùÊ\>¯<ÇÊ<¾ Ìç‹Êó\¨,àKÊ |Yy‘‹”…\¬¼ÄW”—ùª²ˆ¯)‹Y¡¼Â%Ê«\ª¼ÆeJ—+K¸BYÊ•Ê2¾®,ç*eW++¹Fyk•U|CYÍuÊ®WÖrƒò7*ë¸IYÏJe7+ù¦²‰UJ%·(›¹Uy“Û”*V+[¸]ÙÊew(ÕÜ©lç[J w);¸[ÙÉZå-îQvq¯²›o+µÜ§ìá~e/ßQÞæ»Ê>¾§ìçåTÞåûÊ{ü@9ÀCÊAVÞçå~¨br˜)Gø±ò!ë•:U>â1åc~¢Ôó¸r”Ÿ*ÇxBù„Ÿ)ÇyRù”Ÿ+'ø…òO)'yZùœg”/ø¥rŠ_)§yV9ï•/yNùŠß(gù­ò5¿SαAù†ß+ßòå;þ¨4ð¼ò=/(?ð'åG^TÎó’r?+?ñ²r‘¿(—ø«ò3¯(—ù›ò W~åUå ¯)¿ñåwþ©\å_Ê56*ðoåO^Wþâ ¥‘7•¿=MC½îišê OÓF½éi²ͰÕ7œy×»8P®üšÞzþÿPK ‹5ÍZN¸8org/codehaus/plexus/archiver/dir/DirectoryArchiver.class•WûcÕþn²›Ýl†×‚@TdA¡€€Q,$PÄ  “ÝI2°™YvfCB‹ŠZmÕÖjÕ6¨µ­”Ô–Z vC¤•>±ÚÚ—}¿ìßáµß™™M6!<ÜîãÜs¾ó¼gî¾û¿7ßB)êðA ·#ÃZ¤deT ]tGaÆÆ!Œ"C-zd°"°cÐDFC&ŠC2gepäØ"'½8Œ¾ ô㈠ŸŽà3B>Á1\…÷¡(Ž þÃQ<"FñY¡?VÇñ9Y}¾œÃbÝ“<Åbø"žþÃl<Á³Âv@†/Ëðœ ÏËðB_‰á«uÇcx/Eñr_¯Èðu1èQ|3‚W#8¡P¶Ö´LwBiÕâÝ ¡ vÊP˜ÒdZFK®§ÃȶêiRâMvROïÖ³¦ìbÈí6…Mv¶«>IÉn=çÔgÒF'=›ì6{l}ÊÌÖo4³FÒµ³ýëê…IYÃ1ÜA!bôÉœKÜh§™6ZôOï½W¯OëVWýN7kZ]”,—óV{}*¥Pseåü&ËÍöS2dº¢j†šsÍt}#):Mã©ê¤)Ãqi.W=†ãè]4¢Ô´9^ç ™v}ã¶M}I#ãš¶%Ö¤Mǽ›9¸Qàf=#^x¾û “GPD„ ±,ÊG“v¦_î¬úž]%ÉfØCνÛu·›É6-;bçÜ`•Lºµ+C¦dÚvH™Ü5’”Öþ 3ªO”„ØN;—M>ÌÌK¼DD4¬ÃöÊð-œŒ`P÷ñšÂ’kq-;…¹ív.Ñ“sÜk&¡» šÍm )†%¢é;¾‹S ‹ÆðºÝFBr`Zº@%RK)ó=¼®áûxŒ÷ð®\g§‘Õpg‚„é$,›ŠÇˆŸÆY ?À~ oÆ´×á¬éÊ !Ë‘`HÃ9 Gð¦†ó¢ñGø±ÂÔñ5¼… ‹¯9ë~‚S~ŠŸ),m½œ›‰¤n‰Q¦•LçRFÂt#ÝIÓ~Ž_°à6°à¨3­p'‹;Í­vÌ#†×ØÙ¼ª&nÄÜh8A7˜Z€mOeFÛ›ãáì!¿é5³2=“1,váÚbømȰæÒ®áß©5ãØ Ö\ž=êÚ>E¤nµñzÑØ²ƒFÿNà ’ÆÃ㉚A›çUÃ^Ôþã—RÙ »u§Åè#DÈò¦±í0ð•áé5 ¯‡öHK 𡜞vÆ¥¨ Ë—“µÉîê’XHåUMšçŒO½ÏGüª¯Ð)Òã;;ÍÏ­ÿi˜uTùzZ6«„Òt˶L> |ñrÇà]ô#6}TmkwÖ>ì¿bj.|P«'ÈÓb^‰–¥ «K”hi¶üf;evšFÊ+È-t…=¾i =TµEÂ6‰ ·{ý!ˆsÏAÞCç2®zYÆ]\inÕØ‹0v'fI›½×Òò+Þc¹¸mÂÉî›æ®§©ñZ,L§ç~SßÔ“qû7zÞ…ªö¬ó aùÂg1ÊÛ!¿”|–9ÞÉ]=gÅ9\=u†‹¬çXæçã.ŽšÏ€ ØÈYaÓˆðòá%©yLËŸ€qú(£0Œ øN¡¥n3°Š‹YŠÚÙ !a© £²„û뵕áu û½Š9š9…DÛÌ y3ÑHDþ¢Ö­Ä-%ZƒJÌj4Ë)‘o¡¾Í(SåøTÀ׋ lóøöáfl'½Tê-¨Å°:ŠØIßç)­ØEßw{å_BmRÁ|ìøµªà.̳ÿ2ü5/#t¦†ÙghkÛk‡P×’€³Ö¦É¼„Q^òÜ‹dbx¹Ì£¾­Î+Ö­r¼”œÇQ,?qs‹*3¾,Håä 4ë*Cç°¼2D}+¤´ÎáÖAܨ[*3q›ŠVúyž_5JÖWS7zw`G›7ô¢p1 9ÌâÜZæ§G± 2ÿǘ›G»Ç‘Á¬š'ñžÂcxšÿ[ŸÁ xžÞ¾6_ÂxÅËî ?ŽAdÕÎü)oµ‡¹*¡¦÷q/³QJ}ïà>®Bãò²w¤ µ‘&²sªKóXÍÝ6ŒÜ+YзգNÍô”¿Êñ&ó_É,œdi5ª9a!ì+4*Ôx —¶ÈSE‚*Üí +ÏÎûYѾuA³,¯9=ätHéH›Ô=®ŽÿPK ‹5Ñ–›Íí ?org/codehaus/plexus/archiver/DotDirectiveArchiveFinalizer.classVÙWgÿ}!d&ÃH0ˆšºÜB@Rmm ¨-Bh)a©D4jÅ!`ìI'E»Ù}ßWí¦O¾õ¨­ åÔö©§§/}éà9=§oýjï73B€Hmæ~ËÜû»¿»|ß̯e؆ ~lE¯D¢OBý|ùû H𡟋¤ˆý|”p+¡ Æ.pTÀ€c–C‘P…a.Ò"2TŒH ÏQŒ‰Ð8Êq O@¯À8²" 9<É&·Ê °DœP‡“~Là”ˆÓžð4êŽxgÛþDr¨£/9ÔÙ•ˆõï‹wvd&Ž+'”˜®dGc–©eG[ª2†Õ©éj‡fªiË0O1T:zšã/Hg™«Óoª#Úƒo—–Õ¬= Ë#óUë¼íFFe$´¬Ú[Vͤ2¬«Ü½‘VôAÅÔøÚÝôZcZž¡5a˜£±4YŽ)…|,§«4(fzL;¡š±ÃrøÑªÍÙìÔ²Š®VMâ·qÅqrb«F\¡ÝTK3² ÑÈÒî]Ó†ñgæ2ňzõáRiÜ”1x4ò°z–àÞÂȈjª™}ª’±É{uJAi +­‚¥é±.K5òB¢‹EΪŠ4ZÞ¢·ŒŒkfá»úâi5Çãâ–·B`Øz‡!2H³ä00ªZƒšiÝ¥ŒÔ/&!îJënO”Ex–¤£`¦U'µKÕ¯‰ƒÉ¨GTFvrÑ-£2½(ÃÊ…Ùu2(ã¤P2bžmðî0'ø‘€e|‚O|&ã,bdpNÆçø‚oP¸_¢›JÔ¡éŽJVd°&nš†ΙFZÍçmF†á…kâ1|%àkç±—´)§OCóÿ>z ;—f8œ·L%m-¶ó)¹œšÍ04FJÖE[NxŸY†³C‡%²X4êJ1²[•×t?M¨‡Eêj·;þõî¸-ÁâP9‡\hî¦v›wbŠvpñ.fLÉ÷ª–}’ÑýµóÃí>N%!ˆê9úîÂOŸHW[&aß+›n›'7#åùœ®‘›æõ(‘€’w^UÑÞ©¼¥ŽSFÁ*¾žúIÕ"Uo]P|7¤%Š_]…ò•ã+º¿¦T/Q66ßÑ1¢[‚NqÑg°j!å•z6@³ÆnãŒÊUžÖ¼jS–JdrÌ4NòO Í°f®Ú ]ç§Í¾}¥xO25”èH¢–þ8"ý’Hü²¤™‡ß’ö¸Í^—ƒñËŠäÝ´j#Mþhð)x.ÛªÛIJö‹Zˆôÿ°ƒf+E܃{{Æ™ ·Ó…K‘NèÊ¢ Wá6^Eùh^’[Hn%€zT'vÌfÁ.8Ÿqޚ߇ûi$7žJŠÂ°µÑïà/5¦å“ƒ~“Ø5Tô4NCfèÝ6eŒîÑ4©dø ²ªJÍ`y*äBp Õ-å!2_‘jñýŒK!_°æV¶!áº÷<šgHqW!¡lÇVµˆW°Úu ‘¿y¼‹œNbMCHœÆZ.bô?X…ïŽàºI¬?‹ !ðå46”J--]#¾Ë#\çDè(Üìæ¼Ão®»ˆ@Ï êRÁSØôãež=&³•ÐÉý0V“ÜŽ ”啬…ò™@+ý‰îÆ1{/c3•÷.žˆG)ZÇv½ý†´ƒ[¾ãýËŠ¬C$6bÏ?PK ‹5Ð’Ù 2org/codehaus/plexus/archiver/ear/EarArchiver.class½V{Weÿ½°2Ë0. ZJ£ÂrÙ2ÌÓ0×(Ã[;/Ëà03ÎÌr+µ‹æ¥û=ìøwçärÊSýWçôYú žwfÙ]ù§Ãá½þÞç÷Ügÿþ÷×ßQŽvü(c£ªÄx³M–1‚SF%œ–!‰Ë·Ä<&†3Qœó98Åoã¢x¡E1.!%–º8ä2 œˆ"-&eÔÁwS2.ÁÛiAf ¨…Åå(Ü(¼*øÈˆ·3âᬄ9 ó ›uî˜öü4·ü^î¥\Ãñm—¡ºJ›Ñ†8f˜¼‹¡FÏßvë:ר†ŠC†eø‡Ê›[F"=¶Î ÛoX| 3=ÎÝmܤ“X¿ÒÌQÍ5Ä>wñ' ¡£ßvÓ‰½œÔ2^Â1ùMš›š4f¸›àš›èÓÜîÜžT©ô¸ßí8sÓ&ææ‡ZlTeûæRÜñ Û"YÓõœ †èa´iZVÎ µ¿DÜÙpkjV:1컆•^íHnÔ —§È;ó¡Ü¨a¥ÌŒ.„Ö­ò„|.NËwç»Ö϶Ò)É z\Èch]9½šÒüI‘h«¸:2¤%K’u)“kÖ)‡bØÎ¸)šZ[”aB‚‚6´SZSöIxGÁ»H*hF‹„+ ®â¥í“¨çæS¡¾T³£™‰ NyÚЛ/AµPeUïá}1|@ ªºÍ=Õ²}•Ïžß¡àC\ZÞ`Øz²o¤»=9p,¡9Ži¤4AØAõ!á#7qKÁmÜ!$HP© >‚>Á§ >†mׂÚR5ŸîÇ3>W Ouùå %¸®à^Uð9¾Pð%®KøJÁ׸£à|« ŽVßá{ŠÃi͵HúAÕã&Õ×U†NUÔ§æJCÕÔG)®ÎN©IuÖ0©ÆÛÔqÒ!mÙį6“§5«ú_¡¨oK…êkÞ%ŠÔ qCA/î*èál[O§Y >EðÅðºåÖ‘, {çš…Ñ=îù®–  ¬*™w(?•â®D&9àmWtar·¨%·5¯ÒœV…y×UŸ¢8=õíð„¾Í+q„ز?Õtûãk%gÁx‰šrhéî’†üˆæ›æþæRåÊyY½Â÷K"HØ™޻ܬ’k2<ùG Úð’Ô\tÍç'ƒ–SKe£™^2HÞÊÛGøˆ‚XK öh–mQ˜a3kyâÚ·œg Órx‰©’ ýv:-<ÝDžZŤ{Ò,âÈ»ÖFQ£¥ªgpÿïGË(vÒž=Êèút°¢vD³&š9´{…ÎÍUñ%°x¬ì>Ê À «é§!¸Lðçi§„p¼€½43¼ˆNB QW WFóÁxë}Dâ?#’ņ»hz€Š±Æ–Uf!‡7U1…ÖYl\BõñÖXMµæzl ñ%÷£ˆë0G êC–œbµ d„i@§ÿýy­É`oˆ·f±)‹ü†º±rZofYl)PÊì5¼ˆ¦!OÓ€—WÐ òf”T)dJ¬­}ÉC?}…äxˆÌK–ÑH«CADÄê0­Ê‹Ø"âS“c»@7Õ(|ù6dz¨¿‹ÂÓ±†Ð¡KØZÐ 0ž¦€Ža+ÎaÎÙØ˜×¤Ý8𳱂îzÞ^ôåxÿ¡ÌB»ˆ×¶E˜B?C=²xŠÜú4MYl_ â¼c]¤[ãrøŸ Ã_NSLÃ΢ƒ]a>ü‚Ýe¸‡mñÖ¶ö%<ÜÇŽ{¯Á¶`Sù˜¢Ñ¤¼vp‘~Ч0K's°±W0k¡Öy;pŒ"Í‚•°¸,XG2HøœÀëdéÃ^èÏ×Ì¡\ÍÈñrÒ ç¹Ò’¹I|·H³ÛE%#çKæd€øPK ‹5̉šº0org/codehaus/plexus/archiver/FilterEnabled.class;õo×>f]NvvvFÁâÔÇ¢äŒÌ²T·Ìœ’Ô¢bFa Ÿ¬Ä²DýÒ’Ì}ŸÌâkÍ0F®àüÒ¢dªTF!ˆb׼ĤœÔ=rF­ü¢týäü”ÔŒÄÒbý‚œÔ •1¼HE#ƒØŠœÄ¼t}ÿ¤¬Ôä6FF&`daº’Äb`’L lPK ‹5\H{“ª@org/codehaus/plexus/archiver/filters/JarSecurityFileFilter.classS]OA=Ãn»Ûµò±ÊGý¡Tè* &@0 ¶IM­†-$Õ2, ²Ým¶[ï>ù|õÅ^Љüÿ†ÿC½Û"BiŒq“™;÷ì½gν3óíÇ—cH˜Á# q܉á&4L"©`JEJÅ]Ó*fT¤U î)¸¯`–aÐÌ®¬­æKå\¾Ýx‘)•²«E“¡ÿUa—ïqÃáîŽa¾pw¢KÂÁ2ƒ”œZgW¼-›¡§ \»Ø¨nÚ~‰o:„èÏâÎ:÷E蟀rPu†¥‚çïeVx£nÔ{Ÿ ÷­ŠØ³}c[8í×§Ü7m«á‹à ';ׄI‚"\Ëi„Û¦’-‰Â3òn­J›W/êžzIi5jëP4ò Úx‹ˆa #?CÌvÿ È«$BËî[v-ž[W0Ç .YÎI4ÓkøV¨œâ†;Ö“7ˆ£}qt£GÁ|ð¡·]#uÙx–-efòÅœ‘J¯š™6äIˆtŸEÌ\[ˆ_çmÈVˆœKªo3,üÿSþ|s×¶†ô_ù2­ÅY޹L àÓö3LtÊjÂ1LÛ!!ž¿FÝÀH•V…a2yñ*tº=¸Eï)†Ë4†Âƒèµ±ðÜhÖÉ3È2²‘Ô'°#Zt¡ŸæhŒá ÍñV0H–á*®QT˜ü†l„츴œø€®ãw!“˜]‡äéÏÞ""¾–ØûŸßåÃSîabÉÑ0B2äßÀ(ù·1ÖÜož8ûHøý‘)ç&Å’lÚçDC¸JàzS×8e7£@ÑŒJV‰éwy ¿ÉÞèWÈeI˜eYšåˆ®˜å¨®šeE™eU×Ìè:jø§a߯šÂÇPK ‹5|>´3org/codehaus/plexus/archiver/FinalizerEnabled.class}½‚@„gA±1Qß ¼ÄÖÊB+ û.päæø‰ñÑ,|Êx`bAá6“Ì~“Ù}½OŒ`æbêÂ#,x’ìuœÉVeÁ•¼ MØúa©S—‰ÈxS±«7#ü j6LìÖ²õpQ™?ÌyËYSKÅBYÕ=ìËFÇT‚°úñ‡‚GJ$›.Aþ1 æ}‘âEÊNQ.âÚ!,tcÙd>·£c8Æ!¸ÉPK ‹5föнkß4org/codehaus/plexus/archiver/gzip/GZipArchiver.class•TmSW~n³!Ù( ¢¥¶m‘$–K«X”òbi£`ƒTðÓ²\“«ËîÎî†J?ë7?Ô™6Œu¦õ³?ªÓs’%tÎ$÷åäœç<Ï9'÷Ý¿ý8JØH£% £iÄPêÂlãe<ƒ Lj¸–Â7i¤0Å÷o3ø×5ÜH#‹é4nâ{öáÓ-¹ÍËl ?h˜Ó0/¶ÜmÏ—Aàúeׯ–»%kf=0<[îÒfúVMíHߨ>SžqgCysí˜iäMå¨pF ž/¬ $æ(\à\Y9ò^}{Sú«æ¦M–Þ²k™öšé+¾GÆDXSÀØ)ÏFJ«É]iÕCÂ8#Ðß>$Š]`gŠO/ìZÒ •눞 *uÏsýP9ÕE×·äVSÒ¥²li:@'…l¡GN¬P”íðÈ2<2³ù£€,&CùæeåÌ·ÔÁs‚+ôZõô¥i¥5IgšwZ?¥Û ½pü[wq¢ø±õ}ÄÿDâÙb¸L+?UÀgH G+ ·üñ9¾ ­äÁX/‹}ï8óaО| ºóÙ7H­÷ví#ýOËœx Z6ñÙrñ$†8ÛÀ9>’Kw=|l ÷ÌUtÑ: CôØIÜÑ00‰1’2Ž%z}WèÆDû[d"¢“´_Á—Dþ«fbÿ5Ý ³UŠÚYZ,ñ²/Ù´Luµ…µ‹8X¼:8Ý(ÚùvàT”2ÕzþxÕo‘ÐÛ©6FÄ·0JF¼·ï÷céç;BãQ¨h²aä?PK ‹5ÌnuÑ×6org/codehaus/plexus/archiver/gzip/GZipCompressor.class•TYOQþ¦- ÃVvT,(ÐdXTTe_–B‚oCÚ1m§™N‘ðƒä™DÛD}óÁeüîLÁ²Hâýg?ç;çž™_¿¿}Gϰ©  1qC‚V„ZA#µh…&t£â“1.cBAb5x.è /1)¸W2^+hÆS˜–1#cVBèt«àJˆècC+¸VZ;µrÚʇµmrwÇuL#3%¡zÚÊZ.C‚ÑØìCSB£neÍÍBæÀtvƒ45aÝNé=ñ„\V†Ü”•—0®ÛNRK02eòZ.mžN"e›Ž–ôK[¹;“sÌ|ÞvX¸&Q–X:“OŠ Ø´‘Mj„ge“ô Z6ë´ù&ËÖÖ¶–Nfεì,­Ê•À,U‰´§³Ä£ìØ'a.[eËõÚ#"—ŠNtIè¹>:/ ‹T•&oñNd™×¼Švt¨XºE,±èˆ%´ßlq¾ptd:4l;6Gš‰$˜Ü¥!"¦Q±Œ«*Ö°®â=Ö%ŒÜ;ì¹2sUTÀÓel¨èþïSI¾7Ä^¥{]Òtͼë¿)Ó+gÈWkŽ^׈½ëú«»¶ ÂVÏ„•ï©^nŽ/ÞH÷ïDÕF.gfÙQôö®Ån©ü·™º|Kϲ›rìOþò+„µAF’Bkôv¼Xr×öy ñ;jêw$öö]ßËEó(m¸¦SÙzù“h ñÁå#$ϵæÝMI#•H«â%HçdxÀ»ÚSöà!oÕwÀ#Ê"Ñc¼àÏô ’®Æ/Ø¿@p?^D¨„ªª¿BŽSª‰\Díúõ Ôí— †ë‹h*¢‘¤ˆ¦ 4ï•þqîUêã*e=yú0õã´Œ`£˜ÁV0áá‹à #"l6@k/=Ÿx™V˘Ÿò„¨iæé¿j=Eïi§€ø->Ò–3„ô¸DøŒF]¢éf¿À$µÓÔÏÑ2‹0?ç,yHÚé&(×:٠7ÙèPK ‹5ÁL 6org/codehaus/plexus/archiver/gzip/GZipUnArchiver.class•VÝoUÿÝîlg; ” ]°°€@¿PP[@)-°¸¥Å~H[D§Ûévp;³ÎÎBAQ_}ÑMLŒ1<˜4Ÿb ñlA”¸¢ÚŒ½D$YÃ/Rw­ÄåJÜmî~Þ.H ;yC©{PÜUy^‘ãI ºüŠ—ñ ó8~a>:™³~fFñK³XÀ‡‹ÔP(àW‹Íp‚6YüóØ:RÉcÛÍRÖ+ -änñ­JÍ á5¢îÛ‚åËœKÏ£ÿPK ‹5l¨6s,93org/codehaus/plexus/archiver/jar/defaultManifest.mfóMÌËLK-.Ñ K-*ÎÌϳR0Ô3àr,JÎÈ,K-Bˆä¤V”+À$¸¸PK ‹5G²l…|4org/codehaus/plexus/archiver/jar/JarArchiver$1.class•RÉJA}=81‰û:ÁÝQ¯Š !ôñÞÛ¤ãd&t&Á_ñ¼xQð zõ£ÄêNpÁ“ Ì«zUõººªß?ž_À±å,Ò˜v1“…ƒYs.æ],0 ªH%G |mý’!UН$ÃXEEò¬ÛªI}!j!1…JˆðRheü™JªÃ†\9Ф.…¢Ó‘ÄìVb]÷ÒjˆnÇo‡ò–@è ¡zRûM¡ýS¡þÊރĭ¶Ð¤ººViŠžðCÕýóZSÉÁ_f½ÌàÄ{¦³?1ÙgÈVã®ä‰2½æ¸c*rp‘!þ»ºšhÕsXÄÃÎÿnðK¨ßÄ¥º‰ ý’½HbM3eTOvæexHÑnˆh70]‘7L–OHÓEzã ìÁ†³ô2$W!;×O ƒÙCãƒâkÊæ„Þæœ;ÌmY(n½ÂyßìÃÕ=¿ÿÒ5ùü£¼…%Þ¶ú^_c o¬ŠöLd9ôMZ…)ªéЫ°™™OPK ‹5ÉXÖ…¯Horg/codehaus/plexus/archiver/jar/JarArchiver$FilesetManifestConfig.class¥QMK#A}™Ì$1»ê˜¨ë~±àÁˆ:'OŠ QÁ%z™%öÔI:“ÖIOèéQ–žA€?J¬Ž9ˆ, Ëö¡^׫W¯ºè§çûG8ØÄ· |Ô},–°TÂr Ÿ||öñ…ÁÛ•Jš=g­Ñfp›i_0̶¤gù¨+ô/ÞMˆ Zi'm®¥Í§¤k†2c¨ËDdœr%"3ÍT dÌP=QJèf³Lì°•ê8ìÑ€!ϳpœˆk®{Cy)txÎuø“ëýi¾úGÓ†r,L›'¹µ¬¯5~·Îù%®â02Z*«©Di®{ÂZ0̽qݲâ*J(ÿ¾‘Ê.䘡8:¶¼’f˜æfÄ¥òñ•áàÿ×`Øþ«Ind©œæs#úû†Þ×Í =iã_†ã<úx{ `vkŠÊBBFX\¿»”g(z–tVP¥{õU€˜#d˜G0mÞƒ;©Õ¼:NàD7p£N1(F7ï¼¾¿ñªM½ X˜Äf +Tó°‚(¿PK ‹5ò6ý É92org/codehaus/plexus/archiver/jar/JarArchiver.class­Zy`TÕÕ?ç¾™ÌdòÂÄÃ:"b˜d@Aˆ[CH‚JØ]˜$/ÉÈd&ÌLØÄºÛÅÖZPêZ#«¶’ˆ¸V…ÚEëÞÖ­ÚÅZ«­K[»|òýÎ7KBé÷ý1ïî÷ž{Îïl7ùÉg>BÕÕz’çÓ¼D>Kå³ÌÍËóy¯tó”gºø,姦-ŸUò y(À-RkõÐvns±åâvyy±›;¤ì”OØÍçH¹ÚCÃ9"Ó»\õÐ޹¸ÛCãx|âŒ$¤–tq‹×ºy‡×óY¶ÑÍçºy“›Ïsñùrì.¾ÐÃñÅn¾¤€7ó—Ý|©›/“Ý/wó¾’¯òPŒ¯vó5r•¯ÈÈW]ü5ÍæÅBî×¥v­Œ}CNþ¦|®“­¿%S¯—æ·åò[¤¹U>7ÈènÞ&åw ø&¾ÙÍ·Hy«p››o—ßuñZÈ‹]Üëæ;=towñ]jæïÉÊR»ÛÅß—I÷xhßëæû<üþ¡At‘Þã~ùìúÜÜ/ Ï.¹òƒBýn?$´?ìáGøQµócòy\ú~TÀOð“üï‘Ï^ÿXXñ´›"s~*Löþ™ós7?ãágù.~ÎÓù*7?ï¡õü‚|^”ÏKòyÙïð“²ê—òù•lòkÙöUi¾ææ×Ýü†›ßtóo¤÷-ÁËÛB)$ð[aÏïÜü{7ÿÁÍï¸ù.~×ÅòÐ78æ¡kù=¹îŸ¥v¦ÔÞ—Ú²¯fÁ_¤™tó_eìCÙø#©}ìáOøoüw!+Æÿpó§RþS>ÿ’Ï¿…eÿqñÿÞvþÌÅû\Š›©¼!ï¨jµY¡žDUwÄZ"oí ¯µâUç„âUéÉ8od"´Öj«bŸaíoÅT‹‡;ÂÑP$ÛUÚ>ôÕ眈ù¡xÝž4$A·ËŠwXéîDc(e.ÈÝ•¥*]­‹âÚÝ“ë¬P—Ì'âLc²eGO·BmZF'd/b÷ÚUŽùâ³s‰gV<ødÀb°Õ.«K'9\oE†y­¶%1RõYýq§u Yî^̰ؓiÆAˆÙî®´(P™…c#&0M?ô½`8Rö!»Y°ìÐDVØ>Ð\®‹‡s÷[õ_\ñ5qdŽ™ª‹öÀ †l`8ZB1ÈaBs6$-mɱÁˆ%Ö1ÍÌË^*<åé«ÅsµíTØ•dfŽ-¿ÿqUi¤æYx£µ †¥Ä¡1$Ɔ܂¹†é62 =ÌtXÎuë“rYm¸dluF?õ`Êê5ÇV[Qœ%s¸¿zÚ|:µkC3ê‚Q]í°ÿ­âÌ»CÉN—ò¢Y“Ä.-=IŒÏøâr™”Y&.¥µ;ãsJV˜ 7±ÚæjºJr.qJ(ѹȤ¹•”·‹” e…›!¶-óZâzÁ— 'Xزt®=¼ÂÀ¶d#ìj{ØA͇–¶Çc]¶!“»´—œ<ÈÖ¹mÊ»¥<{ŽùC¸Ä J¼¢Ža¾«5b…¢‹1ÑÃ3¨akCjµ•‚Õ¬²k·>t{Æ…0àÁ·[4«xð*ÐÒ‘`¼ ¦¯ICköÞx$L ÎXÛ)0 EÛÂm!¢[˜“ÚÚÕJ¶vZƒ`Ó·`„º±¼¸#jÑV¼&jãkÆÔŒ­ƒŸ6Ìð´Vùy`Û"‘‡Ú5 |¡]ì`γ(ÖoµRà/ÎñN•B¤I¿¡·Lz‘^2é×òy•^‚| Ž.UbªÃèieqó¼Y¦*¥÷°Áà¨Ï¤×èu“^¡§Mú9=còô¾IÏ¢¦F¨‘>—Ô4-‡ ‡8˜»szÚÛÃÒöÁ/ò«ö›j”òÉg4Èò·Å¬„?Kú­õàx¥©Æ¨±r¹÷Lú%ý fóÁ‰ÌùÁË#LPãä3Þ¤èߦš@o.C„LL“¾HÀ7™3ì·ìqÿºNPæÇÁº•:ªý.…«®o£&ÂA,ŽJ,ìOÆôÜÌD›+€ˆ¿ &d Ó”/lqeë#zåR“Lu¤š —O8áG×ÂGµ ñG™ªLã­Oõù37;Èeüe&=O/@‰ušãRSLT¹ª*«Ãݦ hß 7Ó"˜o˜ª x´ª0Ufr>{L6¹ÐTSQ£—SHõcSMS#MzNš¿Ð(VÓªÁ$›êhuŒKÍ0ÕLÁ¶7såu¡xRP« +³åÆù’БÐV™ªZAÇ}n$Á4úÀ˜- ÎIŸ¿û*C'˜êDu’©¾$ûy‘„©jÔYR‹  Ch:®lœçRsMU§æ™äJ“ì4y;!hØí‚K¬x¨öO«œjª“¡kø¼eªST½©æ«±ð7ûùbS-P .Õhª&µPÎ?ÕT§A<¼PºO7Õ"ÕìR‹MµQKÕ¬´Íɱ¦Z¦–ƒ ²õ#@eCý¢fS­ÍNd0a¥:æO¿/OÕ1ÉY¦:[­JkûPq4Ç/T…LÕ¢ZMÕ&TXj¬Kµ›<—ëL^À ¦ê±Nµhá™ÂÒ´üVfjÍT¥A,ºÐéi³ü!ÿôŠÖ·vú×…#¸w‹€îH¨;´lÀ䉑 þ+*¡:cQ«4QauŽ©V+,6/ÖÍÑSu üüƒº¡cZ@PJ½ ž¬Îfú è/P4§'Ñ&) Ž`, š`dxê¡ÆML£rMqî0>jª˜èx·0~Š›4;}Îÿ=]f:ú¿È˜Ž9(¥5-‰d<Ôš@q=¥yC·•zŒÉ> åéØ"¡Ÿ®8ç…º»­(âõŠ¡ž‹öëJÅ1Ç š¾°åŒÏ›îNÆR=0ÔeC¹£†Ni$ê  ÛòyËÙ‰%¬´wÑ£ÍñغÔÛ›Gž¬D"Ôae÷Ý? ¸Lï[²ÿËzƒŸÚÂÉJ&ç7Ä::¤>ù Œƒ”ªÔ<°fâÁgIšÇPÎø\Š<Xm9Psƒ2û=:ÏZÓŠ$=!¦… еÅzÀú©pL°ÞXŒËÆ"Ø*• Hd#>]ËÜ‹ñ¹V{¨'’óèWNÔ#O“|¦Qg†U‡ò¹"ýŠh»-y¼K#kˆ‡Ò!@yg(Ñ‹[u« ™JB?k®OÚÍÁhµy€ÀM‚%p *8W’Á%ƒ“Úÿ‡L\§ÞåÙ2}HsòU§Î¨Øà”ÖÙ鑳 ËZòÌHü’YéÑ"³Ÿ°  'ýf´Ab§¶¶Éyh_VÐáô=IDÅ4š~LOÓOÐRôÚ?Íi¯Aûg9í•øýœžÑõgíòvùœ]>O/èòEzI—/Ûý¯`)I¿Òå¯íñWíò5z]—oЛ(GàÌßÐ[ø¾Ö2P#*ô;IŒdÈÇð:wR^Àëê#w`7å/ï'ÏN*¸Ooö[|'’ß­ä Nʧ ¨ˆ¾L%tùèFš@Û(@ߡߑ$úú=ý%Ó;ôGûø±“B™ƒS³;{tïä¤^½ÃˆÔ,{©½‹ËSô'zo¿½Êw’9x¯{°×½Øë-¦?Óû“½:í½üû©p/È–…½(Ñ,€TvÒ°ì)£±AÌ.z÷}”†Ñh$ 0žÊ9ÕŸ9ÕO@|LAݲ¿¿Ò‡öù]è“ùAV¼•ŽØM×ï&/$Pâ=¬JÑ=Â;•>ÕO¾G…¾ÑYb¼XNÀ ˆ9 ׫6²D3D5f²D ÇøGôqŠ´€È\íØMc–—÷ÓØ&\ÝÜKÅ»iÜò`?¯vôÒpÝ~šPíøýäoô9öÐzŸ£ï¥îjg/­®væ^dè÷9ûèÈÔ=|Î~šüèÀ)G¥ïZ–3×;eÀ‚<9§Ð>ÇYíòå=Zq/¤q<ÕÐ\`ÔIÇR=¡ËˆÝÞ†kÝNÛiÚõt“n§Xw¤FPeq‚ Eè-Ã&€eº©ÀÛ±ô/ìþÕ°AsíyìÀ.ïÓ02Féìø/œðmÇœ˜ó}vÒ}œ§Åp´eÊOèo8cŒÆ'ôwÔ¢Te÷}ßu û3âú¡-.E÷iô(P÷]ú} %–5ÿÄ™ŽAÂü·¨¿¢O@ßM‘cyc/u4ú(˜æu%¸ÌHcU)ÊÅTôC£! …õM¹ãÓ²ËÓÒ“ ]>´¢B— ÀÇûÁÃ(ŸÇÉéK¨‚£<’ØGÝ0íc²­D넞JQ™éïÑ€×1}4C,ßý4}”}Þ™èÝ Ë£xlVµF€âJrryy•ñ ò±9êU™¡©’ Ë š:ÿlûü 8fÖ^X’Ý4ü«ÞI³¤Ô×GÇ/¤Ë<Ÿ\Ü€›hÀ¥&å³Ïè£J2G•°‹Ý¶ÙÈÃØDÁš:¥)¸‹2m¡£ro1_4gPO)ÝÚE Šz÷½àroãðš÷ûжSOEyÚò ÷ô~Z$¹y¹ÚÅÕÎ 1Kä³t7-[5ÄìÕy_^¹wåt{Ïì§³`ËÙYÁWÃ|_ (_EE| UñWh: ,¸–êø`Ã7±ò:jáoQ›’¼•.ámt9§Üú鸚>ä.Ò(»"+l€HßË>u0”øóN£Y<œtg€é%Pw'%©”KyÀ” )‡<£Úª·r!alVâ*«²WÑðíÀðÀð9 R˜!ªpHÔŽJaTá:‚m6³…ÁÂð ¯ £›‚ÞPµ€½­A°­,4wSûrPÕÑGý®vøÞÆ>:g eÌtb`5vÂFxª¼]Ô%òŸ)5¤/Q Ë% º·Ð8ÔÖh«S‚ÚJ]ËwÌ„çÌëÝ·§Ô¹• R›Ç—j³!ÒOà„P”ªÄ‚ì¡GDÍ«‡ïÚ>ZWÇâ÷Ьݴ~¹/¯6x7öÓ¹ÕnŸ»6=,D3ó¥qÞ9»4s>KóüE½ûÞ“]ûè™m“†Ôlòó}ù>×taµÇçÙC'Ùæ¬º ]11^à3 ‹|}t±ÏÄgÕwhDÐçó2–&¿wßÍAÂ6„Ÿ³Ü»&á¬È„¡%î'7ï¢Ñü0ùùšÄÅOÑI¼zöc8‘§iÿ„Úø§p&?£¯ð3ôu~–¾ÉÏÑõü<ÝÈ/Ðíüõñ+ô ÿŠçWi/¿F/ðô2¿I¯ò[ôÿ–þÆ¿£Où÷°äïp!ÿ‘‹ù=>‚ßç*þ€gñ_øþçñG¼?æeü ·óß9Âÿàþ”7ð¿yÆò>¾F1ߨ ÏÇ`P»A±Á§ NmFHë¤4ŸÇÀñå!Ð8’ÇñxÀòSÅØG9ŽæÃšÀ x"j&Ñ|Øþ§1: !ɨy°k«ÞÅM{i'O‚:኶ó‘\†_¦;x Ä0AŸmám¶‚¸ù:­« |½Dk¨ŽžÅå\¼†Šµ®:éjN1eò¼8UâÆÍÞ•ç%[h tìòˆÚB1±Jý´¹—,ïšÔ„™)­®ÊµŠ_NÅyO\*ŸËÒV^¬#MI-) z/ï£+ÔÍ:6E¸þ-8ÂáË+u ÀK% jR¾*¢‘ª˜Æ«át¸*¡iª”V¨Qt¦CQ5ŽÖª t‰:\Ëèmº7gLÈfH|ª¶k›5¯”®MÇ ]›ÎGë k3_œ§k3 7×@£#€KñJ]‡ùP„RþñR)àÑ®ÚBçæ2ãj;Ö÷¿FQÅ0KÇáÃ$ô†CßÔ›ŠÉ+ì0¼)@ü凟í%3 örŽ®ÿ³ip ž útÀ– ƒž=‘KÍWHMqššLV&'€Ì|MŒäu’ZwR]*µª%E½´ô`[¿šN¾6tüê=Y¯¹"ª¤:™ÀCˆUL»¬ÈDWB8¤&“W¨RiºšJ³Õtš£Ž¦:5“NW³h¥šMg©ã©CÕÒ9ê$Z­jèJUG7«zzH5Ñcê4Ú«Ñsª™^TKémµœÞU+èÏêLúH­¢ªúLµ" lç|•`S…¹P­æ å êæÅ*Ϋԥ|}ÍÕÕp¶ùvm5‚>É $x†ó¿ ˆ¥jï¢Oâ_±ÿÈT ±ˆ½ÑÈÑv-qPZñCˆ_%t”š<7vvÀÀͶ{; * ÞY9¶’Ó±ƒsEñuQYíK áµæ7–ËH?}³Ÿ®k¬@ý[}t=Šoo!³¢®fK/¹+ãm Àöo•Ï À• åþšô‹D/4ÛsT;²Kð!²ÖçxԱ蠒€‰°t®]ÞŒKÝJwÑÝhŸ‹ÚÍ«§±¨î%—‚}U?£õ,Õsô%õ¢^¤…êeZ¬^¡eê×° ¯Q‹zàxÀxbê¯WPB}HëÕGt®z“6©·–wèV̹s1ç̹súÕÇZø'‚Ñ °¼Z':›à'ŽÓµ{ì>§ˆ!c—vA°"À¤™)»”+Àã3¯=ë0"Ök"„ïäå­4:À‘£1l'‚,4êä3WŒjÝ4èÍG}†pœÉk4ÒpÐÃI“Œ<šb¸iª‘Ÿóæ3-ýæ#Ô¶‰Xe1DÜ,‡è㦋”ÔFë¨ì‰ãÅÊ7£"£”JŒ4ÊIãŒQ9§·O;Lþ—"uŸ¦‰¿¡üº¥¿ò]t+b1àÁfZ¥f3šŠÏ(®ê£Û¤ê½]‡e>'B©ïêžËuO‘ÏéÐ=½û>À Ì¿cf^ižº‰ }N£>«·Ú”¬¥wß–ŠÁ'ÚGöш¯²W]B¥¸jW­$7Òbc*6¦ÓdcM3fÒqÆ,ª5ª©Ñ8ž'Ð2ãD 'Q‡QCkŒ:ZgÌ£Æ)t±QOW èz£¶_61ý—à­œ¢\Ï$ê|CG7ðáþå^p£5ݸoi/Õ¡¦]úLjÕÎR‡º¦úP:Vi–„­XVŒ¤'³jXJ4XÔ»ï› îÝ· ÚÿdŽÜKE¨ÿ°î‡„ïÍðº ñHVðÙŸÛà$ø¼|^OóŒ Tol¢EÆyàóùˆæ/¤°qÅKh“±™.0.¥ËËè*¬ùºqUFk!¿™Î:hbµ“5·Ë©ј_G wò)ú½VjG"cšBp=2|Î.GSÆö¬ËǬ§&oçò€·¯Ÿú›`íÔ¯ìÜD:ì„òB©-?(iFíÖyÅCÚy¯Je¨-Éd ™ cŽLXƒÚçê£GÀÎ* ÚaÕ° Ÿk=ªÝ£d†‘{LÄÑ«§ïÛTîsî¢Ç1'¸‡F‚Ä!©v£á’†Ï ï+éÛêÇ…@¸.Sbh¡QÃõ¤Œ­ThÜ;‘ÆÛù›hºq Í6nÄïëïÄ·SÒ¸ ¬ßÖß ÖßO7ÐmÆ.Úaðü?À#<*ÛÇ‚áqÑû†,OÈrTŽ?)Ë1Y¾ÀSbú[sð4ž‘åY?¾Às¢û¼h¼ ˸ß "‚Ã~|7ˆ¾'g^ÉcÝïËò’¼û'x9ˆ‹ðCY^‘åU9pRtr~LðZ«ñx¯ûñ†‚7iŽZ ¡®=æ>³-a&‡Û¶ÙéxrxµBù>3‘µ2îÛ¬O´í°ìTšol:m%íÎä u@AuòÀšx2n¯Sð´,ÛAÛSƒ´]ÕOZ=ÙÑ~+Ýkö'´·Ô€™Øa¦ãòì½öHœ¾*ÖÛôߟµ)2:“I+½1af2ÆÅ]©ôpÛŽ˜ÙLÛXÂ:À?3=0ßg¥Ûö˜é¶n3²2ö× #­iùtv:¾Sn:0`ÙñT’>šKè–>íÓè(FÌÌH>S¦-(X7fÍDf–ß­ý{ˆÜêe»¨–ÉÌ„ÜyÉŒùª€òÄHæ ë 7igã3Ó¾ñÅó°û3–Ý£Kè.ì´,+YN*hžÙá?ìn ‹ ½)™µÒ¦àÂÃCÙD¢pÈt¶…óL¨®à¶Äñ*Ù˜JÚñdV‹¦éãòíOÇ%ãsÌâ©¶+·½SÄi x¹VI×’*‚ÅNG£ÖÕÈgïªýÙ¡!+]ЫH%IÛìMm·‡V)”]³ŒÐžœÈ"¥#*MŠ i§6vj¯•Œß$Žê‹É«÷^JeÆÒÖPœÕ¬ÐŽ»ò´ìO[æÞN·ÌyÜ‚ÛRÙô€µ9.=SYàûr1o`3¶ø<Ö+TÏîX°ÑÀ°ÉÀuØj`@–^l70‰ùñc…öÿ£½ ôƒŽw`'±ëx§V~fKnï±h³Ý kÅ*”ÃÒ°á&oá' Máx&œLÙavb|0lfÂq;<˜²òB…VV×6ãɰ–²„Í$•ºmËd²ðáþƒáæŽp3CBÂòS¼#ËÏ L‰ì´ ôsüÂÀ»ø¥çi{üø•_ã7ÞÃo €EÏŽ¢ÍßÉùßc÷ñ[³/æ—`˜„ò¡}ØÏîØÞ»¹u•?à"þÈÀŸ°•wVR±ÁJQ½ÚÀŸ%Æ¿H7c¿Øø¸ÈaçÖ¢ 4nOÊ,Û©°&bxtð4Zœ‘i~nåLjÓ´=ÍžåGòóhÀ % (£¼—µå•‹ÅqøåbaWt s‰ðœÏÃç9¼Ÿ÷xô-ÝVö0÷Êoëiê¼§QÓ:%›)­uÞæ•31FxZ6jL‡[5ëJÖx U8A~½ÂøNâ¼Æ¸^GÞ@ ïÌ8ÅßFÞaÔS:‹òºî—ÐÇø°–ûZoÂ*\C0=´±×r'%¾Îe×|–2l‰†ªs˜·vQÙÓh™D¨oóY䡚j™}mh¡,çpÉ¡n瞊D=‹r¨—ÚGùvç°hò,|Ÿ<ør \È{a5¯…Íø¸¨ú[Üз8,ô“×3Ѳ|¼ç˲ÎáAžvÓþ‚Zú7òIQ‰Ë]ûå»vÃtlµégÇdÒ ×T¹þ£¨/}n_ö»‡7:‡çÉa–VÈó±aÚÐ\ã?™Ó¿HÁœçp3û²Óèí´Sžgtã3ÐÜf΋8"ï {nUZ.ª9„gÁ®ü˜«*P«‚8_ÍÁR5+Uu,í.,íºÕ$“A7³©ã•’8Jr¡Å]äzSwìuÚ$mZ¸Y¢øetACaI«diž$]ãg>¤¬y&\‚ª†jD•: j1šU.SçcƒZ¢ƒŒÐ}3`›&î,‡…!x/U¤õ°øˆ‹`—ƒ`u¤¸xw;³±ˆ•º"j9#h£÷ET»T»ð«Ë±¼Ò)v IË,²¨K‹jpk»×lÌi3]Ä|Ñ–ºîˆƒ]LºÌ«{H +óÆ{9–©Î¢î‰¸1Gœî©B=ÎìEÒiò)X+¡·h÷$b}± ´öHI;¼u^§¨5‘VÙçë:åãgþÎÈÚB+r¸°ÃÄ}uÞЊ ¬Ì¡ýåYuíE@mÇ<µ‹UV¨]hW×bºÝêõ:¢µ‹t5…`=nü=H#^óœ7ò¾(c‡¬E†2OUÃF–' a5ßó;ÕÉî=ÊdÖìt°Ì·a­Ì³ÚXO&~Q_kèâ \Òá -îðÉ`þÜX‰:‡êXÕZ‘®*L¸KCK;|ãg>šæ^Ô«QR6…¨º‘)føelc›Êb‡Úç¦ÉpÜäv:ÉÉ.±Õc /D!w3Và /Y/¢ˆq¬g¡ŠÓ¼¹&[Ä«‹xŒ9u¼Y}ùs¸¥z󺘧CXJ¨¥›ŸCMÃS˜wÄs¦ðfüÌ' GÑ8‰ÕîL_3ÌÖžr1ð lë l/¨K?Ç\rvŸ9-âmщi¬:H[¨Ãl´#¨T·£FÝAZÝEÜîF›º‡óè^\¢îÇUêÄÕƒ8¬Âõ0žT¸7[%Ë~ ¯jHê[õÝÅü]\¹¸Óô/›Ü!ËmèÖ—?…ù Ô…ŠÿPK ‹5=HÀß< Ñ7org/codehaus/plexus/archiver/jar/Manifest$Section.classXk`ÕþîÝÝìf3!H@ÈÃ&1j@,D”(ªõÑa3É.lfÓÙÝVíÃWµ¾U¬Újª¢…VB•Š´Õà­ÚZµÖÖZÛÚÚÚú®Ö–žsgvv k«üÈ;wîy}çÜïÜÍcÿ¹'|hea,ÀÆ0ŽÇ¦ n ÓÚ¦RZù7qKAgåV¾Æwp[õ¸‡ ¾Ælâá^¹“gw±9„»Ã{‹ﱕŸ÷°­ïóì<»—‡m,5Âv~ùaîÃý<ìâG!<À{7ñ°“‡yØÅ>þ˜‡Ÿ„ðS^yˆ‡‡C c7a}²×ñòã<ÛûŸáI^ÙÂÏBx*„§Cx&„Ÿóþ_„ðl¿ä½Ï…ð|/„ð« ^dŸ6ñ°“?ýšÕ¼Äûï¿aÐ~˳—ƒø@ha[ «'-P¹x•Ño´d3‰dËr3–IÙsü–Ñkzß’†ÕÓ²,c“} š®ÌfL’®.^d¤ãceÒ¤M#¼MV—¹V dnÂJdæ ø¦-'í©.2P±8a™ÙÞ•¦}K²ÉTÌH.7ì¿»‹þL}ºÀê9Lœ¹v:­DËÖY™¸™IÄÈ¡e©¬3I0Ÿ–çDå84|çiX†“¨P‡7 ‹ÕЉFáz Kp¢†¥ˆñ{ ¯âL Àåþˆ?Qå O§Ch^ß5ü¯kø+Θñ‰ƒõøŠ„Ú ëŒžÎvF7,Ý+}M"× =–²2 +«N•Ϋs”§køNâ ꀱ† p¡†¿s _ÂÙÎàÙ?ð¦@óÉC¢gRº¢QÝå´´ãPWB‘¹•Ñ™šÒÎÁ¹A¼¥ám¼£á]\œƒ¿/JœêrÍKˆ 5œÆÞ¿‡s5¼Ï³òì|H-„Y”£û—†,ú©ÊÃA|¤áß¼ï?ìâ^:IBÐLHžùp•ÀYËúÌX¢{Ne’óVy§gÓd]-×ó{}º©nµ>×Ý?O7“f/‡Eü7múHÉpä ½¾SI÷º8êýk²‡iZïÍÒ·¸Ño:Ö «KwI¯«!ëÐÓñT6Ù¥[©ŒžŠÅ²¶ž°”G½MrQ° ¥u¥©>v'lzɹJdRO)‡sijÓë ¸6¸€&þcìT¯&üœÙYÑýüßÇ §U–ëY¬ž Ž ¢Ùd&A…¥ç³X¨Â° öl__ÊΘ]:­éý‰TÒÈ8.go*A‰˜‘ÊX§lR\±”m“ïÉuzŸb¾!%nd¦ÕŸ°S›ÖD€“]qȩ́‘Ü«®÷´9@öcRøT SVÌÌA›æ¬x-ºõSÓ™&JDP!\¥á2¢Q*®d·FçÒÑPƒî8¡à¼)~+"*ç‹Óbç•4­žLœÛ@ܰç“.CÇ´vz7úúL«à®ö¿û¨c‚/\éìÊ´{«IU±ʤr§µÂiµíLûÄX‘“Ô¡Téô¡Ž‹Òn¤?îŽJ©ºè%‚<¡þ%é…NŧU›£ýe–¹6ã.RxdQ]0¸#’ïîe#dzRaZõ¶m‹Ôs)â\ñ+õè"w/êé}üFÎeR‹Skèf¯Bö‘sÃ.>9›Åp(‹ºJóˆ:3ñ«“š^‘à)ãAœ‘V˜ûú²u%ÚOõ'µŸS縢N<¼Ï5E-ÎÁ$úv<?$÷WšIn±êIýT=—ªõJîÌ4žLo&ýªôlŒl‡Œì€ï”íðoC "¶¡„ÞƒôÚ†Òü§ðV¥l9cÄFøÅ-¨¨›Q'¶b}Óµø>OOÁÆ59¤%=K"d#¯-Ì«â~Ä¥aŒ³ËÕÀ3ˆ¨”¤««E½ƒü½%[R¿'6íÆBV?„É;0‚@¨ˆœJ¯ƒÙìÄ(z¢’"À±;0úwOeop>nGõƒM43€);0ö”æí¨‰FšQÛæçǸAŒÖú‡PRëß2°7ëÅqe âYHñ<‚âTŠ ä—0Q¼Œzñ ¦‰?áñ:Äëèo"!ÞFR¼‡¬xg‹pø—ˆp™Ø«°˜IñžQXI@úé·û…ˆÑÌÇx0_‰.ª j[¸݈Ó3¡•U´¾I¿;I2Dßö0:»&Ú«ñüà•ALØ€rF¦r"AkuQÑÙt¨/¬GM& ìB}›¿±–ߨõWN&±õ˜×¼£±í˜ÒÙÌ‹×1µ­¤¶Ä•¯á™« Ø\Ä!{_ Š­ l‡Ø»žÒŠä¢ñ^pC›¿Öï W‘“~#ƒ˜6°÷µ|9®Â8š–a²¬@³² 3e5Ž”c±HÖ`‰¬Å©r<ÎÐ-'")u¤å$œ#'ãb9WȃqµœŠëd7Ê&Ü$Å­²r¶ÈÙ¸_ŽGäx\¶©Üœ†R\L8÷RF‚H£Rô¾ˆNkŸÊ×:ᜮÙ=^¾öà‹4£Ë+6À& IY¾äã”-8Zó«úi×hú£ëœ“A<ក'gcêÊ¿lGc´‰RÕátå’5ÁKVg¤™SEPò¦½/7VÒ¡yøEM"(Eµ\„qò8ÔÉãÑ £e'Ž'à(¹ ä‰çRÁ< ·šZ£ÊnʱV•ç´ÎûÙU/ð¬ÃYN"n๠¹Lé&írD»Ë7W)yÛ2ˆé»0v[È3 H§Â3R¡°g’¡»µ«p†K:!R¦‚®)QÀ;!w¾Œ¯¸ògÐn>sUÇ›ñQ¢¢b‚Ö¼®JWfQ*ûQ.×¢Bž¥ôꎬça•ëa)îœW¯zd»ÒµU梌Y™±‚=§Éa+¶³w>òŒb¬¼¨À^g¯Æµ Zâô°½¯á<·¢Î¤Ý¼¿šc«6 ¹G&ýáÆ®F‰¼ayªäúcÕž±jµ_JÄùÊXa!Óï&—Š^¥µz6ÕYCŠŠZw»¦g»¬3®2¢He6úK†šeèQy¸3oåùs)ðÊ%Þ¦²5g=fj˜û5 àj–6¹¬¶ØMWa'1\Y¤‘™ ­¬¶òHÇæÔšªq)Š9.ÐÌ èpÜWѼõh,l=G¸ôYæçû²%òeÖZšPÊï@¼ SäÝX*©‡Ë{‰Öq­¼×˰QîÄmr¶ÊŸb›|˜èkÈG1$ŸÀù$~)ŸÂ+òi¼&ŸÁëòxC>‹äsb’|IL•/{çû—âD\uêÜú±m.amÄ%¸Hå™r™«š9UP˜û¯Y:%¾ƒt)Û~ûâÆˆjÏGïC]MûQW#³wœY<´ã©~ñtcœ©tª _GHþ#å߈ÈÞÀDù"±7Ñ"ßÂÑò+ßõzkñ­CY-néRVó)<æêjÚíP–䕸œëž†ÆÝðoU%£L³…¹{Ì*g:-œ&RÇ€Ü ¿Î¥Ï‡°Ï*_u¾ ñ•-Tä@ “ôEî9¾´(Çöç8_eQŽ£b®|Ì%Ý:ß\§·”w²rìæò¬t‹h¶yß»¤o¤ï ”ú&b´o&øê H¹Î5#1 ]¡¤ß{®ÁK]¢›Ñ8„„Xe¿ã6Bcscävü›waA´‰,ïæE¬r㸼õ|ñEPákÂ(_ ÆøZQã›I~ÌÆßá˜êk+€r†å \kÈ ”ØkiM’žëðM—Ûò÷]*°­ûI·ç»îõÞ]÷•œõêMRkçñFœª¸SÒe N¡âKÏ”þPK ‹5r–fR@æ!/org/codehaus/plexus/archiver/jar/Manifest.classX |õÿþ3ÿÍn6 ¯ ÀQ’l^ PCÉ.˜ªâL’Åd6ÌîòðÕ‡ÔÖÖëikU¼¶ÖúHëqk ÔTá®=8mkk½ÓÞ]Ïöj{Wkõ½k¯÷(÷ýÏÎÎa}@>Ÿù?~ï÷ä…?<ó44;ŒÀkAü$ˆŸ†ñøY˜Ç¯‡ðó2Dð‹þ)Ì÷?+ _ñF¿ CÇ›!üZ½ßR·Ã(ÇëAüKÿ¿…Q‰WH¿ â?BøÏ~Æïð_!ü>„ÿᘉÿUÿF âQ‚B„D i -(dH°ÈH”R Š‚~SmÊ‚"FcnSz‹s›IA19Œ¥ø aEEHLQï©êᱨ c³˜¦ø¿Î‡˜3ÔÉ̘Ua,ÌÏVç©ÇùSÌQ+ÂÎ%O1¼DT=æ+Ð!±P]W+À ÔêBõX¤¶5å¢VÔ©G,(êrCH4†DS†h‰Å!q‘^¢¨-UÅ%aìÀ›A±L-W‡KÔÉÛ ðREc©’¸Em[Ô–K¬Pg+ÕÙJu¶2(VÑžÝfo&™²ôË2í¶!#6Óe­™ŒÜ™Í˜³[{zº:VoîißoMt¬mïîÙ±¥½«»ccB Ò¹ËØc4 Ö@S7Q¬“ÚRV:cX™-ÆP–Î+PèîX—híÙÜÕ^ 1¹p›h·Ÿv°¶kc<$.¨,œµu¶vwojíY— ÌZÓ¾¶usgOÙ*â­WïèìH´ïèlO¬ëY/ :4\DÔUw{[Ý[u³V@kߨIÔaÃJö›éÌÓN;*6’–g®%){ ©7ÕgÙtÓȹ/ÃîLî1í¦]†Ýw)T»H´K([ÒÀÓsvËf’CMëô`ÆØ9dDwA:¬>sŸg^l oR6ašz•›ª)Au^‚êœÕy ª)Au^©>/9>&•²îýVfÐÌ${ÉfÀ̬1ûìP¦€ÔPSûþµ$AÙF@š®3i™‰ìðNÓîQJ)%R½ÆÐÃNª½{XÑ7‘_쬸•õÚ¦‘1ûVï¸ø,¼á6iÊqaÎ4ÉTÓf+IÙ$Ún‘c¹}_¯9â:¯œ„-IZž‰Ûad3ŒÓ&èÒ÷/ŸƒÜFÿyØÛ0pJW&­d†¡ÕÔn¡Ñ3ƒIžVÖx¸]¦ÑgÚ+Ôe¹L c˜šNîOÚéŒ/±ƒé|8 [`ÊD äe;+&™w·:ÛßoÚfŸSa™û2Ý~>• +>1äÃB`šÑ×ÇêПÈ’Š—O—ÔœCB)gœFϧÜò³¡X E³Ì( ›ößgAÎ!H1¹hº¦³AÜ®0é¬]¨Ëo;ÓWÚ­,…3Ü ™”"µ½v2cÆ ›b;epöt_!:6±Dg¶ªã\ˆ”¦÷(å¹p`múaéä€edhfϧ¡L*WóéW‹" $½—>ò(æÎ=’å,;[ Ûâc¸*O¢ˆv%æEd·×ƒu– „ËA–Ï\éaJtPswÖR5¶Æ'ÒÆ»hĵ4‹f¦Oï\î%%âU!ÉUY<#';‡¾^pñÙÔI_7“Gd]Í™æ;7²Òr²°¢@]¥¥ª¹¶!pAQ^gvˆ’}‹L¼H¤2kSY«Ï_¡Jö5SŸnn¯¹6©Êû¤¼d =(®ÐE+^ˆ¾5¹DÊbkÊÙvÊŠÕºhÃqŸkXk›ÞÓH:Mãp¿Ž;ð Z¢6æQs¨yT n7æqt¼‚WuÑ.8!4¾+ÃVwáShÆDkçŠ(Àæ·¥²C}Q+•‰ö'­¾¨+m4?´Du±N¬×q Çs"¿¿`BéN]nElîYÛ°\Ù°CÉñEŽ4çP.éô¶\nP}¸B1lÜ3ܸ'—,Aq¥.6ÎS%ÑfNáÚêKQQ«ˆëø^ÒEBl¨~?ÝXam¸èì»,£kÍûF“éhÒÚc %û¢óç+ÒW±‡éÄó6[jx‰fRQÕãÎpKËâÆfÓmñY'¯ŽÛp ÏûôÉPÇGq;kðÄiPÇÇðñ|„ÑžuÑ%º‰•gÔà1]ôˆN]lkt±…™$¶ây]\­âKªb¡‹mª}\‘Ç‹æçÖhzÐ V÷v&º7™ŒÑ eAÔkšQÃÊ…ózx.> 8\#®ÕÅudˆ?Å!†fwžâp–ô=D‹Zïâz]øŽ.vŠ^]ô)±z!çÇPð·=ê;CÇŸá«:ã)ƒ]¿ZÒñ7øvP èbP$u±KôçèKG]Ü †Ô7Á3µD¸“ºV…fjw¾ÿ5x½ òŒ3f+¾gtaáÛ:~ˆ—Ù‹u?_ˆùÚ¬Š¾”Žo)Ü¿R>»u¼€ïœ&u®[ÑWkíÔ°JAU#6™A7}õ•S^Êv³Â]Ï Ú›ÄUŠ›é´¡ÆœéÅZÇ„Ju™i§À·¦s¥„ÅèÉ3q©12´¨îã/‘Ä««)J°¸˜~×îOgÌáÜŒ±ÉN˜v†êÂ÷Åœl,Î3lôöÒ|ÕÍÍì7œË{΃ê¬â¶QWuï.¿çXªjVðÌ™c~QM¥e=yÜ/ý Ûæ êk!E»Ó™ýK‡Lk@i˜¹œ’›Õ:¬”m¶éw AV£‘\.ê#ÂcÑjõµ š½7tœãÈ_L9~¹"j4¬ó9qƸXdº,6S†zSV†cZÅJ__û9lZ™wOÕHNE7˜ Ö@ïPÊùfª)JwzÑa™>à@§9]Fig.¦ËÕ—šÇ]#— ùðnJFT•¢2¦GÕ÷Íéû Pnr+OeÍ™S%æ# ÀdTÁFîJ°Œû¬o¿û=¾ýeÜïõí÷q¿ß·¿‘û›|ûZîoÆ-ÞþVî?èÛˆûûà¯æ}ÛY³ ;oö\çÍËwH „ÿ$ÔßT”áNüo?ˆÝ(…äé‘Ò _Cð$*"¡£(Ûö‚£(åIݱ“˜;ŽòmãзÁ¤Èä1Tð¢b SŽ`ê±qDxU¹-™vÓ`F|3·EfåÁ«Žb6¡#ç©ÇùîfNn¢~ óŽ"Z8î‘:‚$txƒb©®;‚ ŽåÖ‹œ5Xé¨9ŸÂ÷a!×÷:oµ:{õ.Áó¬…Žƒ¶šv=æhæk½X© "¡íÂÍÚ0hn×Fð1ÍÆ}Z÷k{ñ°¶h7á.õ¿7‘ÀrÜO“âÍã3¸M<Ÿ%§®ï!åˆ9têý8H“ßrÞ>À³GœÕŸpõ9þ$ïÊùã Í']Ä|×S½šºHíÓ¨«GŒö« \6rÙô4š¹\ÌåEOcɓޓ•v³éFh·Aj«ÖÖaºÖ‰¨vbÚGz=GRz8|¿èÀË”%ij·Î‚ï8–*]¯û:è¼KjY6†å-²Jž@¤®J*Bî饄iÙÖ8;ªcXñJGO½íri)m8‰õ*`ªG°²%XêÈec¸ü,ÇB/ê®`Ä8—*|Zóá³ú˜:kKŒb†ŸH©:]³µª´a íU¥9)«JǰvôTº`8çÓpw1ÜÝXª}«´{°^»qí~tkqöyôkÂÒÂníܨ=Š[µQÜ¡}÷jãí ×ã[Ú^ÔŽàíüXÇëÚ7ñ†ö,~­=ç8äfá¬1h‚x‘.ø’³º)íåN¼åºK­Á£tÛRŽha”²¯âøe›ÆÀ|_áJ¢—Yþ8W'ÄJ µá/Ôàšs6ƒUƒúwñâØÖÅëOb’²od½²"Õ\ÏóŽ­\-¡½®|åîrCÁ`s)$´çÐ^@™ö]Tj/2Ÿ¾í%4k/;ÊEsL<ñ;*±3¢€%^,äï+Þâ•ð½œbtž@˜¯¶¼Œq%£:WuùAL®S· ²QGÊî¥| “µŸb–ö3Tk?G½ö 4i¿Ä2íWŽ”3r¼<)—ã º@œ&Ûa<éÊv¹+[°.F×n,° «cí·(Õ~ç#ôÈñ5®&’}ÊM¿¾)*îŒÀ'Î?ˆiu1*3†MÇcþRO¥œsv_u'¨®zSsªÜ•høø¥tq.zŽcs‹T®¬’cØB"-˜WZ8‰™U¥'Pådƒâ£r᪀Ú_5zêpA·*)tR’e˜!è’“P-§ &#X"§c¹œV9 ² Ûål Êó1,ç–QÜ*çãÃò|\.Â'e­WH;Y¼rbv;ñu:>€A†ÍÓNä/G7Kå˜Dwzv¼Óµ£ZÁÑ AÄO×¢;x¦²çáX¾nlUÝŠ&Seãê\ÙÃ6§8mgɊן@üÔ‡¼Ô³kˆ0ÛépÛëUûRÇt+Të%c¸ÖsË<¿[”®k T‘ÑS¯=IÁ¯Ãn6ò…®Á¯ä¹óäŨ•ËÐ /E‡\.¹ŠÆ½×É5HʵØ-7 #×#+¸EnÄíò*Ü-»pPvãAÙƒ/ÉÍŽ±»XX’ü;½*ËÕ4v±É®ÒX; É_}«uE*Á"²½Åñ?÷]ö?rÆ!`'«ÚdZi9ïz”=ãP¬î1䡨qDÔôPwz½#àtíÚ×;RÞð€‚u¦ GÖ!gÏuóI÷¢¹Þ}¸ ÷e¨ Ü¢B>„©òÖªÇG_¡ì³^b½ú*ÓéI¬Oa]»AE\Ž£G>‹-ò˜¯qíôÒ`'¾‹ïQ§9hgVƒŸÀ÷½or´JðB”ªCù¼oî xs×ðR䆉È/Eþ!^v‘¯pÝ«+KÄr¥}"Ÿø¼¥{éøkçÛA¨ÿ/¹Ô.rE ¹Åk"¥7|Ò„¼P|¯º­1á¶ÆHÝQˆÃãжQ&ycޤ%~ŠÚõžl¥¤û#ü­Áß9ãsî;¥ï<Œç®1>Sœ›fò½eÿPK ‹5þg•8org/codehaus/plexus/archiver/jar/ManifestException.class•P=OÃ0}—†B¡PD÷2ñ!°„ØZuA0–¢î®1‰«Ô©œ¤êßbBbàôG!.ÁÐ [º{÷îÞ=ËëÏ÷´p‰nÄ©â Ä!!kÊáø4žÉ¥™´‰—ÎØdp6!ø·ù³&tbcõc5Ÿj÷$§3Ý8W2›Hgêú‡ôËÔ„›8w‰P¬LeUˆE¦Wœ¤S©Yj'fÒ‰iÍ‹.Ê»•Ò‹Òäv@hÍ‹¤^¼ñB4Î+§ô½©]zâ«ZÒ†-Âõÿ½ Gž¿,úðø¯êC|y9Ç€«óçàüâ ôÊÈCÈ1jØ>Ï`›Qï{ ;ÜAƒvÑnví5šý/PK ‹5ŒIjŽÌM<org/codehaus/plexus/archiver/manager/ArchiverManager$1.classR]kA=³IwÛuµmúáw‰uk“]ñÁˆ Õ‚nR >N¶ÓÍ”ÍL™ÝÔø¯|RQÐw”x÷£Db@¹sÏœ9÷Þ³ûó××ï¨á!v\¬ãºƒnº¸…Û.Áwl8¸Çð¨l 21Ø¥8ÃVëf/3RÅöŒÇõ=êa±+•Gþ0G¼ŸÒèêˆ'ÇÜÈ<¯@kü„asZ&ÔÙ¾©“7ãHœgR«NÎ|œküÕƒÛÓ#‰}™ ®NMø(à`ÓÃ}x ÍUbؘPB]^‹Ó’dŒ6|[xàa-m†gä|pé|P:\:TÎS}ù47¼·J ST)ÃÒ¤öaÿLD9Õ1ƒsªMȇ4ìÊäîh`ôûÒS7ÙHS*C~´Ú³<³_H%³— k³>ë1ÃÓÿ MØp6Ok¢ Tùx°p•²þ^‹bcç ØÇî7ÔÞí~Bý3æ~¨cŽî-\£³] M,Ò¾N˜M*KX.ЭŠeVi·°VåÍâ†FÅ]:ÍÿPK ‹5¤^„ ãE:org/codehaus/plexus/archiver/manager/ArchiverManager.class“íkÓPÆŸÓvI–E»Õù2:5ÓÖ—a(º)Ș tXüx/iFz3’tì?ò³DüàWÁ?JäÜ<¹Ïïœ{ï¹ß|ùŠ*îáî< \2°jr¼lâ ®ÎCÚŽk:®ë¸AÁz¡”Œ·C‘$2!Ô^îµwö¾8n(”ïvÓ8Pþ&aÁ—鳨ë‡2&l6ËsZí(ö]/z'ûb˜¸¡<â r[˜™eîyò "•è° sZ¹ÏƒPÎ@:ÅU½V“ºžÌ^×ÄμG³Uò›×ØòÂ@éSBµÙzÃÛ¹Í>B½(Ùz2~%z!+f7ÆžÌ2– Ä®P—±“`a7 œÝ)²;ãìN‘Ýä†)€…[hêhY¸;`A_Fr§@„ÅÉfîõö¥—üɾOØú'c'ê½~aÿÕ'„Ç^Ö¥6Cìb!v±sˆ]ZÇÒ‰®u;—6ÖÿØ3eC}J"èÜ}1ȱÙ*C4NÙE[ÉŽGs5îYœf¥Î_5Ž‹#eiJiàLIY>©ð­>‹s<:ÏÊ*ÈžÕ o¨7*ŸQ}{ z•O¨cîÃ¨Ž üÖ8kìYáXÁE˜MV þ?PK ‹5ñy`¼ù­ Aorg/codehaus/plexus/archiver/manager/DefaultArchiverManager.class­VkwE~6M»ÉvKK EA±riC r°Ò‚’¦…rÙ¤“da»6hñÞƒ~ö¿z- ç ŸýQŸÙlÒ6l%ýy'ïÌ<ó<ï¼óÎþõ÷ïOÑ=øFà ދáL72˜V‘ã5ÌÄÃl7¢8«âœŠœŠó4\ˆ£³*.jx—4\Æ Wq-†¤½Ç1ÜÐ` CAÅœ†M\H[”MI#|Y6¦lnª¸¥ÂR1¯ÂV/8¶g˜¶pìÌ8n)]pæDÙ¨UÓK,ÐÌúf¢1mLA׸i›ÞQÉ]D'¸BAo†ÃÙÚ|^¸ç¼EO"ã ë¢ášòàŒze³ªàHè^†[(›w„›ž7l£D{RšåüÓu79ôHÞbÁ«–y°Éd(`0+=Q·c’¯8×ܺF6¹PÏtìª GAwI4))KfnwŒ´eØ¥tÎsM»4¶ëßå5[!ùé5xÌW[Ø^Ú§jzŽ»˜ &¤ gçV­Ò¤HL½±QÖ˜÷Ïá~ bFSÀpÛd{(ü‚½,ýÈ‹K_^N¼uµæ¿:ÕYÜG2S¦%&Ï-áWdT¢ë؉! ®£©¨è¸ Ûö6î¹ŽíØ¡£Šƒ:<ÔxYÚ’¦àÌÿ˜Ë ÆÛ*Y'W+”šË¥þ;Ìï6C«â®Ž,ª¸§ã#|¬âŸbQA¤DÏ}<`ÉËßÛËK;ªâ3Ÿã z<ƒªZ3éD­X”áˆrxTÇ—øJÇ×XÔqïèØ‹}:Þsì?ÔAÞåmgò7E9¹¿-ÀgN…-«·êØ,±ÞbÃe™EQX,X"])UѨ’~®WøÝmÕ'šŒ-Óe^vC+ëM]ðª;¸õs3™If¾åç“‚C!…*¬t…@õ‡Õ8>#úÊûËçO¾ ùªcÕ<1ëWŠÉÐò³-LoÍ3-è;,M:ÑüºVõc4ZgCÀûZ}|¬<'ãÜîO‹·yTÕYP^Q°cMzuÀ€`gµÂ¬X®cÏ lh¥í2*aÏ1cÚ’W¿Qòéòœº¯óƒfÚmà-•% €Ê> ÛaþKÓ*´©‡P~b'‚$Û.ß9Œ]lõú¤0BK>üJ‹ø‹Oó‹-BÛ—ID£#‚?ý Ë8š?¾½Øïc ÔçX²7êSxƒý(í›üñöøˆ¥LýŠÎŸÑ5òj÷ˆMÿ€žìh—G¢ûÝ?ú ×c#âÁ¾ä ŒÓwœÞ£èÇ1lÅ„Ï!EÌ~ÎÜÄ'z“Í ÞÂAb­'ßC8L¬/?¤p^zƒWO›¼2ô¥7K³ä•{.¯ñ¼Ž¬â¥É’æ/ôI^¹Ô_è‘Gè]Bßtbýî%$¾ƒžØ ;ßâÀHbã#ôg÷<íüÉÄÀvæörª?ºé 6]~ˆ—//a3l^–iJiéVfp‰B®ðãûsì:³éiå)ªØ”2DòÇ~)%‡ ¾L¢,NúRz0…Iö"þO•Òd‚ÄS$ÿÊ^]Þ¶ž‘ÖŠ,Š7ã÷á•–Ó:µèÖVP·mÐÓþÊwÿPK ‹5o,°‘£ðBorg/codehaus/plexus/archiver/manager/NoSuchArchiverException.class¥RÙJÃ@=“Ö6ƸUëZ5Ö¥µ.yWTô©ô¥"ø"ŒqLGÚ¤¤‰øY . àøQâ´Uqy’¹sÏÌ9÷ÌÌ}}{zAëXNcÂäŽ)§uäTœ1``¶½˜KÃJcžÁäS“W"¨ð†`È”/ù·ëÜsíjHÏÝbHmKO†; ÙâÏå•c†ä¾NäÁ²ôD%jœ‰àˆŸÕc9ßáõcH•wÀdX“-†²¸¶CÌZv³.®)tíØ îq—bůFNm·\;¢Jß#[}®»8Ãhqå7ïFÕGJU9÷‡Ø†"2Œ}çïE"0Ñ<ÃHÅ·ZĶº7­‚‰,2h… KȪ&ú`2lÿçtTíÓË4QT×âͦðÎÖ~{Pûtzè·ÌS µ„¦ÜÒL£9™§q²Sj#b¾ô vò-“x@r•þL H="]Z½‡~s‡h `!‡<é/`˜²±¶ 2♪ÆèE¶SËŽs §týæC.ƒ…XÆloèÈÐCÅ»ÆßPK ‹5‚7§íiGorg/codehaus/plexus/archiver/tar/TarArchiver$TarCompressionMethod.class­TÛrE=3Zi7›õ%ŠíÄB&Ñ-^Ù`BâÄ` ÇQ%ƒ‚«ì<ÖSÒ¦ä]e/Æð<ò¼š§Š|E¥g%;*£„rÁËôt÷™Ó·™ùëïßÿD w°eb‹&.áSŸ)¹¤ãsw |aàž2Ü7‘Á²Ž&.⡉|©ã+ãx¨cMG…A«7êë ÙÚsq ì®ðÚv3 \¯½Ì0Vñ½0^´-º±$ìÆnu‹!½Fb‘!óÀõÜh…!•Ëo“·âïh¢æz²ï·dðT´ºRqûŽèn‹ÀUúÀÈ-åš´m‡ÎuDÚ½®<$!§ãÈÀ^lÖÙ‹\ߣœ´¨ã† SOEPñ÷{ Crlʨãï1XUÏ“A¥+ÂPªònþH6ñœ„™ÅI!/´e¿Ä8Ë?Õ*Ãd˜Ïõ®o7â¨G’b9?ÚÌ ûa²e˜y$}П€yÚŠPÇפ Ç¡ sår™áEî(÷œ¹óòZ¨Kͽ¨##ס´š~8ò‘«&=9s^ÑX˜Ã'®à*Óó=ia¨qç» Ä|vÄ×þÉíQ¿Z$-là±…*ž0\O°qävmrÙê&—¢ÒùFGÍÂ&ê KïL%!·+k»$†It4Vÿó þ-|RĺïË@Dro5¢Ú[qD­¾|2¥jc¨MF(O^ðtW½]£} ™ÊåG]ðŒ|‹nx†¢Ñz.h9¿Ë0û¶kOôS£<4¥W¥­åª U:Oç°@¿ß%€¾ÂkÈâ2( i<ѧ‡tô™!Ý€F{º|´Î’åÙ8ɉÂKðB6u íWhµßÈ­ÁÄÒä¾F€Úß†Æ 0¹1^Â8/ã½ÄÇéSÞÇtŽÈp‘d¸‰V’ÀÀTædvRÙTsGËêÍtÖh%©©(…á÷V«pqõlhU\?S™)’w Ǹ°™ÕKÇ0õ wŠ/ae¾åjqrícÅÉ]Z_a\y'ŽŠoÂݤ~€o ÍS1Op…×qƒoáÿ%þ–ø÷I*7úᩨÝ-ܦôÒXDŽºË‘'«*°@ŒE”¯½?èn¦@‘ÙÙ2­Óæ)Ëwó ÷F;±s”“u²†>¬âC̾PK ‹5j^$í =org/codehaus/plexus/archiver/tar/TarArchiver$TarOptions.classTMoU=Ï3þÛ±CC> ”À™„8å«”–¶!i‚ÁMJ“¶R…çe<•c[3ãBEâÀ–°cÑJ*l`{ر‰K6À½ã±3Æ!RÞ»ï½{Ï;çÜçùá¯o¾EOáFE,§1†—ãÀŸq´ÂÃj —x^ãa‡W2¨âÕ E¯QêmpTãƒËÌÜuÄŠ'¯P³Zr£»¿#ímc§é©l׿uöxío&˜0yD(›×j·h¡U[-i¯.‡u9‡ÙC$R¥:ÒíÛ}¬üo“™n¶]wfƒè”«ž†}¯F5Õñòw’ÐVý˘E–N® û™5ƒ«ÊsQýU¸„ª˜~¢un:…æ0ä¼õAžLQpeÄ# ¢ô ¦œÑ‰òM–˜Ùjwíº\³¸ c™«†¸ªá!<¬¡„q Ç0. xPÃ$38®bKÃ6®i˜Ã‚†%¦8{ã*è’Óÿ³sÄèбÍ[²îzÒ²xxPm¹Ò”6¹Õ1lGÒ’~m®rïŽBÒï¹ …ëuüc#+²Ã›'ý™Ô{ó´?“I4—ØHªzÄ«*Rt‚n8I«=ÊŠÑ\Ö¿†Ðç{ˆé¥x ½¸ü{I½¤ô zcJ§ýô]÷1§¡â*Òâ â Lˆ7q\¼…“b³àf ÆÅãôO‰Ô#*ùÎúðñY}~,u™¯=„Íð‘°‘Ž3ÑOõa8š'± vÁ‡½„„—›ÓKÚL±ð÷û·IGø]hâ½pnœ£ñxx¸B+Ö’Ô¿Dâ‹! Â›âÀؤ6€Xºä\˜ÙG$ùãÿ$yi(yÍ—œ×‹1М #‚œø4€œ"çCšOEjN†5~ÍO“æþÓ:ï?-…Ÿ•&uIq7@J’R¼gÍ×?ƒg}¬ õNˆÎ½:Ï‘Ka"3=äÃD¾#"ß 2å¹#ð¼G L$öåÇH"§£I…‰üDD~AdÒwä…HGRaG~‰$r&Ú‘B˜È¯Dä·D¦}G^Œt¤väH"gq.¢8.þ3²ø%b¡"RK"SF¨àï¢ Ý ^ÍE<éUÑg›xâPK ‹5s$¨‚,½2org/codehaus/plexus/archiver/tar/TarArchiver.class­Y{€TguÿÙ™¹³³—^ûdy$,„dY^ Ë’ÀY’˜Ü½»{avf™¨5µc[£­Zmºµ¥FÒ0 AƒZCj|D£}¤‰M[cÕÖÆÚZ[¥¿sïÙÙÍ" þ±ß=÷|çû}ç;¯ïÜÙg~þÄ“¨@³ÜÅ!œ­Ä0>aà“QòÜ—' œ‹"ì½|ÊÀ§£¨Ägô寕úl”ÔS:œ×õO)ïi¥Î+õ7J}N‡gªðy|ÁÀ#øR³ð¬2¿ÁW¢x_Õákþ6Š8«ÃßEð÷úüž×éŒàÅxQ÷úzßP€oFð’N~« ߯ËþÉÀ?ø—(–á;Q4ãÕü»Q4áÕø_•úžíûJý@©Óáßù‡Uø¼Z…á?uø±ÿª$öGñü üÔÀÿêîÿW…ŸáÕ(ÚðsÝüB7 H‰D$ /:i )ŽˆÅ D¸•TF$‘*žK̈L¡âR‘©™fÈô(ö©ež“R2C©™JÕêfŸÕÙ§u–òf+5G©˜Rs•š§Ô|¥ð€²Ð«¸±Ú¢IâªÂ"¥®Ö!bÈ5Ylȵ†,Ìì¶2íé¡áŒÍ:éÔ;7˜î˜©”iOZÙ¬å!)µs8G¾LK¦Sû¬LÊI lqÛ)ìçeov’öŽtŸ-XٙΠ´$HZùlËpÒ>‡•I rI¦%geZÚY¶f­ *1¦Š ý² Úü÷Å“„˜Fº¨øWŒçŸ™(ÁÜÎ|îrOEÑá|nw.c[C\^礜ÜzAE]ý^Bµ»šÚé¤ì®üP¯é¶z“äÔt¦Vr¯•qôÝgsƒu_vEºsÓè€+¹lm]ý¯pöh¶ j]Ý/¤‡¯!ÖF»ßÊ'sc±¬ëp 3ä¾I‡`ö˜ØF'c'réÌQO¶Š35ýŽZçúËÓf\˜éVÕDi/µÍW~¬×›"ö;‘ÏQ·ˆªØe ¹ž=`¶Z’Vj …aÁÄÑJ¹s!;•Ë4þbü7©°.vrv†éëçsN²¥ƒ‹†âlµ5&íhO-“Ûa kZðD›]V{sNºEßÕß›Ž$좿ÍD:•³œTÖ^Z7^º ·=LÒS\¶¶žõ Rßnëc9‡{ &,iÖä ™K8bœ®<_ëuš$™¥½ùþ~µiàŽ ôJ"OQÏ€zò®ñ÷)º&tøV+7Èlïï``ÅÆÙ«#U^jœìîüðp:“£"›Ó™„Ýç ZÏH$m+µgX5I¦³šü«-uì,9IýÍd÷ Ó}t˜‚3™ð“„\tw:Ï]Cn7¥Gö›r‡Ü)¨¿ì dâ!Œr—)¯“U¦Ü-÷˜b1ê¤W} Ñ•>“©Ë¡_•V†èÎ!'§9O“âqæœ8*n¸­qÁ”¸6Sv†±b¥âêÛ¬ÄñÄ •±,óYzè º {—åYtQÑ¥qõy¼×ŽgÒ &—ÝÏæJõç“:s4¾¥kO\»-Æ û w5_‡¬T_Vû°±.eŽòêg²™’’´šÔ°R‡4(3š Y¥rJåÕH‡Õk÷*uD©£Â¼Ÿ}‘riÊë…)ýF¡ßY¦3&)…¬žÝm»MWR<Í¿Øß½ÙœcL~Å•5 ^_Àíu0,ðìpŒlñ]Û+69~{“´‹wA„‹ÔtÉôbE/»Ã§ŒcðnÍ:÷é-Q7ù-W5 MU6ç—ÿ"àØÅo–¿óF´ð®æÞaÇ¿ýÃÖð°¢bMå[ìì=Àë{íko/É×N/jtqñH.íqH2š÷e½…Ç­d^M1gœ)Æu•Ú ¨—–\¤éMržØ-žMÕÛ³7›N²mó®î«/½N[°TZ3ÞŒjéØo\÷¡sQËMÄÅË—/úu´Ùkr6MêöÖ½ùm¼÷»Ý°“íÎäS +ç7äSý&{¬E2,'YzÑ æ½„ÚGwÛ¹‰JÖøue"Žß¤òz'^Ö¼Ö¼–Ët´²]ö‘œ¶Íîc|‡ã‡ 7ÌÚÖ»¦%Œ%¸]°x2{:¹Q¶‡$ÃÊÈØÃI+Á#ÕM®íí“vTz¬%—H‡’z3'‹[¯8sîPÞRmj'ƒdcNÚ©Ñ*'[ú4¢a™–Ù}ŽNLšþûµÎ0šr¾PŒ;ÞÊ0²3‡íNv ÚͯýAͯÊl^Kž›³ê::&o%¬þàÅÀ¼ºI„Jé¼—‚ú$Ê;ýŽßçnóŠyÝÎû¸Í-•äív+™V¬=ÔÑûŠÒO¿±7­[2é<ëž™õIo&¬«œ>=ˆ· £ÏcnQf´(¬\“‰¡aµÉû[vyéèuúªjè^¯6uwlèð>bµç*1Xè£nÿî.Á" ã€Úf“ hÛì>ÙõºOv®î“ŸÕíÊ9þ&ß H hj…4TœB á,*zF<…É0Iã"$+{(=…ª“.Ú›9ÎE˜c#1V «0×ã*¬AcÀÄoqÆô°ñÛø>¿‹·øû¶ð©s¡†ÇQõñ`ØeÞR¶8TZüÞê/ÞK音©NCcfSügõ˜z5T ØFŒ]˜‚nÔb‹<Ë[í#+¥&R…ØÚû{ló÷¨n˜7Š©ªå¼¦aW£‚ã]ľ›Ø÷”áV—p«ñx›‹ûàä¸Ó}Üš‰¸ƒÄ=@܃—À};Þáã®÷qÃj“Ð^Ô徉x÷—a…KXabq±þ4Vd"ÖÛ‰õŽ‹bÝGŒ ÞÉÝŠèf`t_¦¡€Ç<ÉçÌÎÆó0Ï VpSÎbVOÍìQÌ9ǹ؎¦§}Ö\e50ï®åcþq,TþY,`P.$窚x‹ ¸z¼à5“..äÆ× NcÉ1£¥þÞuþŠšzJsYƒ·è ãL€¦º+rÍD^ÖÓ4Š–Q,?£Xy «8·*XÀu|† ¸þ=ìqV Ác®áa=êºÂ®R’ÜÕnR½gÐ*èj>–»cXMbàS¸©5 >†õÓZNãæÖPc,x·8ÑÖnˆ…(F¤ #žóÛ›çønúá=ˆ¨Åñ~¦î°£A3aÒŽ`>ÊHþ ¤ð—̵“øcü¿ï 8Gc½„'ð ÎâU|?Å“øÎÉt|ZbøŒÌÇyYŒÏI=ž‘õø? ¾({ð,?Y¾")<Çvý«n¼l…Á¹kñ.ê¤DŒ;¼!Ê™Ôì½ó[uO{\s@2~\Mï£Æülàꇨwt£-ÀL1*ù êGîäiΫyOïhòí· É·_[»š Øt ¡à‰‘ /Uœ˜PΞÇ4¼€ø:5ý&–â[hÀ·]ýˆ½€û}˜:TК×ÐvÇÝhŸ—zêæ¿ã¼¨ØÌ·JžèûÒäÖ›b°Xm,`Ë1Ä›k¶Ðq³ýè£Ä"eièu¹“ÛŽáj­l?Ž9а:T ~„0ÍÁZº»³K™ÓúÆh)¾ÊzášË¢9tá;,Iµâ\׊#¨iŒ59w’²o•ï’gõ)/Ê7Üw/Ú¾Ä ø!å~Ęú1ªð,dn­dnmÂlçõw›T`—„°_¢Hˆ‰!©&æV<(ÛðNé$òt|@f0÷jñe™˜/É\¼Ìœü,”Ùr,’ÅÒ,KøÉ_ÇÞµ^:¥Av’s»´HŸ,çõ yƒ¬”ä:yPVË{åyDZ儬•Ge½œ–›å)i“ÏËFžc«|M¶Éó²§Ù*/“~…ˆß“n†ÜÉ8ߎ©ø3ÞO!9Áfà£øsæõ£˜Ïºò6æÿ"| 'X_BšÅ›ƒ”濸”¶)—ú«C*ä»xg•g½°>=æg}“ßL‚c¹ìvýeDÀß-ȪVl®#WÜ›NXÂ'Üt» ÜS†.!<^¼ßxû‹[fhé=ïUõ†Fì<É)ƒ—õtªëÁÎÒcl¨¤1=DMàPé2­áó ®n6Ãßìƒî†BŒ FYˆ=Å›ý#WÔ¤'tO|™Æ>H€÷‰ŽO ëöEÊ#à ¬ÿÍÌAþPK ‹5$$:9g ë0org/codehaus/plexus/archiver/tar/TarBuffer.class¥WmpTÕ~Îî&{³¹$"Yð"SÙì"ñ“BPB‚D’ ¢‹l67ɲ÷ƒ)­ZÓR«­Z[­VJZÛ$‰Š‚µ-X[km:N?§ÓéNôO§3NéóÞ{³{ó¥v “sÎ}Ï{Þç}Î{ï¾õŸW΋«ð^+q ÷P‡ûJ¸ú¼ ÷‹¬_†/ÈðE‘’áK2< ×exP†‡døŠè}µã?  ÷iøšÌÉðu ßùñžÀa?Žhx2€yxJŽ}SÃÓž ðð·4<ÀQ|»è¢óOÃ198 á¸†A '4<§áy ßÑð‚œþ®†ïiø¾†“†8…e8­aXÈ(ŒJT/‰ðeY½"ö_ö㌯*”74®]}kóæ;ÛÖ4´7mkTPM 3Ö¤’™l4™ÝMäL/àKµ¾y½¨R¢X‹'Û³i3º[¡²ygtO´&žªiJöå²¶¸V¡$5ö 0'¯³!—u+•v&R±]õ¹în3­àé¨WÄrét}bWS×>ç¡ÍŒY%–r{ün“i3–JwÙ:2Mžâ¾BQ—Ù™ëaRÛŠWÆ“ñì*…¹¡)ã¬Þ¢à[“ꢕòæxÒlÍíî4Ó›£ J*šS±hbK4—gGèËöÆ3 KšSéžšOöFs™š¾„¹S4ëï1Ó5Ùhºfs4mgÆD/›Ú}“øŸ7Ížµé:8» ÇíY«¦Û´vK<š°ð+ ÙB½ÇÌÖ0ö†ª…¶¹ÀÖ2f¶ÁØÚ&ÇJã™Æ km1ÖQ_MäUœÍÜͤ@fW¼oLÆ%ŒÆ}1³/'ó¬šF»Æö}¡jagr‰,‹/›Ny–´dnwýþ¬É“êj¦º»špJ„­¦ÙeÒNÃ_C™I;5XaVAhû³¤¥{Óñ¬9.†XÌÙBÇÛ™ëf–’H ;‘ËôŽÑ.–He„ší©\:f® [Êò$X*Õб ·Ë°U†:Шc-nÖñilY‡ wèØ€:šq£ŽZeX‡&·Èj½ Qìðã5gqŽWÌ*v"šì©a¡ãÉž±KUÙžG}…‘¶®’Qgèx?á ltZ×Íÿ?òãÇ:ÎãqÊórC¾P !)=¡=ñ¨!E­6ºÓ©ÝF4i¤,ª–sI傎úF[¾¸®0æ›ÆÂ›ø‰Âì¶±â¯(ÄêÇ[:~ŠŸ‘ê®í¦Ö5Z667nn4ÚW7X‰¾M:©nzÓ ‹†8]JÐn+T|\Tó¤ÊU6%1Å“…‚6¡eÏ"ƒÑÍ 3Ù“í5+,ZlìíÇzxÆH¦²F¶×4œÞ „Zj±ŽØIŒ½ñFÊi$Î¥Mj‘T»Ì&ÌL†vÙÔÆ+oË“t`?×ñ~¡ã]q¼ @ÍCÕ[^Âtæ,jÛëPõRŸîþçt”Õ¯ÀwHøã7D…K tÝйӌeljÚ÷g²&o¤×L§Ýo˜$váåQíë3“¼ªKœVçbmõ$Q¾W…š>dW˦l iš¬W뺮pü}ò”àý¨œ*6’h:ÝKõí'XnÚ¦)DVç™5Åë”Ó¯ô§&éÔU¡[>$¯ÙS½ ص, çÍÐ[‘łϛÈOb!?(ê”â2¬Â|ÿßù ?< o82 _X £(œ?Šâ‚“9(⸑ª›è¨ e”Φ;q¶ äVæV:e%¨y-×Û¦ÁÈ?1§­ÄhÛ4I±lŒ:¦ÃH›ho;ÏÝ9 F¶½ñÝ1%FJ0ŠL‹Q'UctÔEŒº‰QÏ49œŒ‘G^¬ŽëS|–P×…½Ãªj˜é‡QŸæê4JÃЭ‡WµaÌàÂw³Âža”‰TFù Å^yæP^ˆöZ蓌9ŤûPŽ»DW"ËŸ{¸¿+°·èoÌgíg]ЭËg²ÎŠ_Y«º;±Ã‰¿Æ*C|!ï¼Øö[u[Á1¨äaŠÃ¥?4åáNbo^EmAµX@+™H…Çyæ µŠóù[÷YwÁtle©#õ zëÂ#¸dUpþQÌŒ¯;Œ"ï ÷{ÔàÅ¿û ñÙ<8ÊØŽñÑqrà(B=ŸçsÉ AÊYäÇ¢Á|Aô²Iq줖Dpº;¤0¡(9ŒÈ)Ì<ƒŠ­£˜U1{„Ä<òÌ©¸Ô^—q=‚¹#¸Lq3Î`ÞÖŠªQω¦ãYrhóÀ7ÞJ™oÇ8v\I/2Âa–áe,Ãv̳셯óö¿Á˜Î“¥\5ØîÄ¿‹>Jæñ/Á«cÇÿ1œNŽÁÇÿòññëvüEê¤ÐãU­™Ó g»´7â•é%…ì"'óé-å‹ü¦ðó; ï3½˜Þo™Þï™Þ©ógö•¿ðJü•ôÿ›‹(4;p/”©°G¾í„UeBƒÓv—»^øÑIÊUõ®”;S|=¢ ÙUGpEýÂÙXôØ¢¥ªaôÐÊ`ÿBóPÝBÑïì0®·}^åòù ú¤ß++Û΂vˆk;‚Á‹O Ne‚S™‹Ê­$(ðâôO,¿Hßãz\Är¥P«<¸IùРŠÑ®æ CÍÅvU….ä·Úd•ê ¨Å8¡ªqJEòW (ßÅf#Ä?í Z‹ýÈ8¯æ,ÿËq“)7e_(›ÐÔ Sö…=ùÃ×X ð U|]ßä:îÏßËFh×Õãùød"W‘‹Æj–GÎ AŸÁÕ"3á±ÈY1°Ä6P*ë«ì:§¿ŸV–Z,/~凯3^­‡_µ FmÂ2ÕÎêmA“º{ÔvÜ«v _Åð¤êaÅz]Œ?žoLÇÆä®Ê^VÍFæR"#õú‘ J;"ga¹›š<6Ws”Å5¤àÿRŽ í%HÒA‚tÖ«ûÐ!<¨ÀÃê!Wà¤zÔõ>ʃ4„»-d•™@bü~r:â€%c#™Ü ®ýHˆD Iyí«|<ðÞKß(\ä í\abOa‘zaõ,®WÇxw˜Ü 6ªئžsq¿cR;÷ÈO('ø¤ó:Zb_Êà+n˜&Ðò§í2¢YÀ›%_Ä~õ"ʳT¬‡:ƒÅê5DÔ9WK¦x©ÌG1ì\åWËœ(Î#L§Ÿ”å)|jËíÕÌÔØ`-·¾sIë›Éj§°bÀb‰oµÖ‡^!èe˜Á ßdÐo1è·ô;˜§ÞÅRõnP¿Æ õ>êÔ„ô7hU¿Ã­ê„ôO ©â7•ØÿÜPK ‹5³#GRÂ9org/codehaus/plexus/archiver/tar/TarBZip2UnArchiver.classUkWW݇A4T¨m©Ág„©¬K•§1øHq©ýÐar¦+ÌdÝ™XÚ?äg¿@—®¥ßû£\Ý71Š+Z“•{Ï9÷œ=û윛üûæÅ+ô¢„{&N ¨—É,¦²(™˜†m೘1a`V‡Ê&æpÉÀ&,Lš¸ŒŸô2¯Ã z¹¢—Ÿ5Т_ \è¿„A²(Ð[˜ØÈ,G5)0䡬4w¶¤ªº[uFrNä¹õMWÚo3Év Ì9‘òm•Ûn3¶u¹ËÍUÞvðT*;q•]uÕÒ£ 1ókx­^8^pþpŸºvÙkA].hf5•'µ/pôýsCîJ¯™ðHðsâàøÆÆê®'I…Ìü;h¼{@¹;¿-¦Ï؇é $r§Aâ)—\¤?Ýúý‚æÁc)ƒÙy2z¸ãiÍÖÂFõ2FÉ“Eœ¦@®YX²ÀðGz˜îÚÁÛ't”—Ý0Œ’¼§¤›È¼n%R®ú+ÿ„ôòO"•oµo†^´ÓP2ŽY¦y­XXÅšu ×qC`æÿkgঅ[p,ÜFÅÂÆ,ÜÑ]ßÕV£³_01ŸR¡]ÕY`uÎç)U£J1Ò@¹=u7ôíû‰ BápdâÃ1,v/«n«èO}CZÝ_“u©G–7ì‘€Ýý›ÜŠåzIgƒ¾L:GëXá¡ S|¬€éDþj¨iÕŽ“¾¯ñϯ[}š§ï•l•;i\àBásê´±LVdœ¤ ð·1îl ãøŠ¿MúÕ ¡/ ׯéÍrÜûŠûÏiôà$W“;pœÅ7´¬4 ßâ;î`¬ °ÈLÛ_œÜGχÖL´FÒ¬6‚¶¾Ç)bdôÔòŒXb„^Ïj¹Þ\æô9Ï0tû%Œ‡¹ìÔ>޼žÜƒù ¸‡­‡ÚØÇ`¥Dãè†J<>VÚÃñ"ûNó§è=Cn>óÎ=™yýœBY É8ÖQ¥WÅfkO;¨`˜ëEæ\bÖ,5˜#ÓËä?ÏŠEþ{\ed‰Þ ½5,óV¯Ãá»Âë¸A$iÿNÛcD«PfÑÆqšO)1v† k&µ¶2Yü†s-eƉxžV.0žaÄà§Ðâ7ñPK ‹5ÁÞ2‘É;org/codehaus/plexus/archiver/tar/TarCompressionMethod.classRkkA=“lv·iúpM|Äg냤`…Új±†(B…-è§ÉfØŒlfÃìl)þ*ý¢ èðG‰w·±- ²Ìœ9wÎ={çÎ|ÿñåʸ‡»U¸¸ââjŽ×\wqÃÅM6¬þ«~—Áë½ãGܹŠüÀh©¢G +D¥†+3àq&HûâÍË× •gìÇRI³ÇPnµ´ÛIÆ$ZëI%úÙt$ô!Å"÷NB¸–9Ÿ-3‘)Ãn/Ñ‘Ræ„g©?‹Å1×áD í®ýC®;Ét¦EšÊD3IÆT\µ{Š™¡PêàÃR$Nê$×F«ýö¬Uƒ$Ó¡x.ó .Ÿe¼gÕ°Š5*Q%JÔpwÖw£í轜Q7FÔÿ:È¿ò2#c¿«²©Ð܈ñ¾¡Ÿ2Cåoÿ5o¾8mƒ›Š_ÙhýÙö÷áÐ=›&–PÃ2±}MÔx…øÊ·i°¼g„ëyRp`yë3Ø–Wú„òÇBxŽæU²v`á!YìÂ#V;‘ã<ê„ E.иˆK4ç¦{E ¨Û_a Ë^)Z^%V<;øpênš§ ®õ¹+]x¡jþPK ‹5¬ãKà·3org/codehaus/plexus/archiver/tar/TarConstants.class]ÒÛr“@ðo[hL´Oõ­gMèAí…7¦P¦ t éL½é`ʤ©péøl^ø>”ã—$îpÅþ¾ÓîþþúM‹Ô¤=v4Úe¤ym·Ã;#æ0ª›i2Σ$?‰F“x‘ˆÎQâú–(ÔUzŽ%*öt±l=W®µÀù:+®1Òݶí˜2SŘЙn¦÷¦ûŠºlÏÏQ±:'EïžùÜòüc§Û•„Í¡6-ìˆw¼CÁí¢+8ug‘ DÄ<8Ú-´ÏeîC!Ë‘¹Å¨®Óõ?[™¾:¶ì¡:”×a´Æ/£«ÈEÉÀòl˜ >ëb\ÕözgE‘.Ö„¹ïÙâ8º˜¹Ž™†§G™×Ó9šƒt’õãîp3Z £lö1Æ-±£fš Œ~z_D“±ñcÿÄ#Êúë83ò(3Ô&F+ÿ黌û9£¥ ’n*Ÿ ¼ùzËh_xš ø0ù^Á›¦œçmàG¹-A T5Å:¼\rµäë%××á¥üÍR~Eñ*¼Vòz©ÿÝžû|W±¸Ï†âûÐÅáGŠÃO7à§ŠŸÁ›ŠŸÃ/¿„_Ñë¹ßÀo¿ƒß+nÂ-¥ß?û–\oÿPK ‹5¡ˆýqƒ×/org/codehaus/plexus/archiver/tar/TarEntry.class•X |TÕ™ÿŸ33™Éä&™ &B B22‚‚$%$A'Mx‰[¸™\’ÁÉLœ™ˆ¯ÚÚM[ÚnuëcÝ´ºŠRim¬øÈ$JE©˜vÛµ.µ¾ñQm­}h·ïvÝê~ß½w&—á¦?ä÷ã;ç;÷|ïÇù&?øàÑÃp`±hôâBqã»<é…ÄÑB¬ÂS¼;»Ißóàûü§?À½ø/<ÍàGüåÿÍàƒ3xÖKàˆ?á[ÏñÉó ^p×íçÝ‹ ^bð²¯xQ…# Ž» ÿs¼ÃŸ^e.G½8¯yð:‹~£?Å›Ìô-~ÆëϼÍà¼Ãë/üª¨~Í»ß0ý»lÌÓ ÞfðŸý–Áÿ°ˆß1ø=_þ{ânü‰OþÌ'áûeôo þ—Áû þõý;«ù/·¼Jú,^á. Ü < x¹…âÅθ:  Ì ïV/WC15ÞêJ'£ñ¾µC»viÉUtc ÑK7D›@ÁPJK¶õ’´¾dbhwÎTô*þÚN‡t±;ÊÜ<‘~-ri×ÐmcÑø¥ëbjÝYk¢t‘®µ/¡#fjêl½§W»¼CÝHšÛhœ·Î]Ñ},1Ô&Bë'%‹:š¶îØÐÔÑnÝ PÜœˆ§Òj<½Y ixÔøZZ×5m wïhi»hGGgK+7½+P–=_×nÕ?ÐYG[8ÜÖµccëE;ºZ›;7´881ÈçEãÑt£€£¶n3©Ó¬û¦4k†z´d·Úà úɈÛ¬&£Œ›‡Ît4% '’}¡Qö«C©Ð`L»‚5é^®%Ci5êV“­ñtòJv?»‡æˆ¾•מ|Êj¹¢©–(‰‹*lî¬åKeµ':‘Ï‘þ%D֬H"–ˆ“Ù‰”‘'®Úí:qa¿¦öjIJ¹[ ]6¤ÆÈº†Ú`^)(£éw*{w:CgmÛWD´á\ª¶ÉLýÂÔÔÞKççg+Á›² E&…A_”²bJ–ÊDS' „¶õ¦ØÕmº*SK:ZdKû ðåè¬mד5­c3L&Céh,Ô¢¦Èûò ër<üYZo°•Í\ê).uö÷:½<}ÙËSêîËz˜w]zӠൾ7p4uþ†MáD¼íÕ3D¿DyP¤g4…?Ág3ˆEå{QMϼºí©´D”œ‹¦(efl·K‚¤–ŠÑçúÆØ·'M¬×ë„dE¸Š†Ò=\1‰]»Èjn”©Ns[2¨&SÔ)’YŠ‚~sãíJ %#šáÚ⬘ÖWAƒTãöÍ›rhˆÚ`’o]¡`'ºt1ØnJdn, FYÓóQ¢ˆRás‹2Eøñ%Ȩ)Ø‚Í ¶2P™®‡²@„Q.*Døc/ƒM þ ŸP° ±’³E§cTÁv\¬ˆ™¸ÂžHéÂYì,·¨TÄlQ¥ˆ9¢š¾í‰Æ{{RЍ!b®˜ÇúœAâZzš$¢ùbƒ3±×*b‘¨Up÷+¢NØ‚QEYàcøŒ‚ëqƒ‚Ïb¯"êÅbºSŽ%S}NÁÙ! ÌäܨàV#ìÒ¯1H`Ÿ‚K@ETÜj­áæÞ¡àa¢ú¶VÝg1É5n±DKÅÙŠ8G,SÄr犊øïVŠUŠ8O¬¦\Êo€‹OEÿì˜:Eו©´6`TîÆdbPK¦©žVœZ_±+_þ%nL‹÷¥û¹Uõ¤Ìà îfv <ÔµS[¢|ßö9»ØèFâÝF•ï.´»;½‚zêo2q‘›ºr/‹å7´t"œØ£%›Õ”6%ÃzÇV†—«,mZQéW“Miã)if«ì wSŽkWtîšÆî6ƒ-Å)zƒJ½®™8aRŒ©ÚÜlË»@$¿Rã:%7åf=%¦¦¸MGwE5¢öp§£¿V2ýƒ—Nd£^ÎÝ×F•ùyc†ý{uJ%¹‰â2ÞO~ Ö^™æ¶_s²‰¦=Û×¶$‚ÎHZ™žÚöì§2~ç©^­ŸK#‰Á¡´Öœbõ©‡žªòì{G§VŠB½wïwu­Î{z{õË:9ÅҸݎy4Ì_‹0ƒ†~êÒ4´Jî©úºÅ\·š+uX}Ýn®—˜çÔ~õu‡I¿Ó\Usí1׈y¿×\©§Ó: }„ ôëgQÂw[ðK Yð™„Xð8¤÷ˆN.£“§á$ˆÆ!‡ ·ùãpŽÁ¥#ã(ƒ{jëñú½( 3P|5ûQtøj2(c(aPªßêL|G¯Ž”Äüèj$ .G1Á )0Ž2LÐ¥G°‡¢ç`Ç|­xí8J 5c˜gµÒcEòìÏ ŸrÂ:28FNxEx>ˆ…,Ú°x‰ÅþÚ êFÐZO åÚOÔ;2,wÖ;yq•»|+ïÄ™åNŸº^Z®Ú2ZšöÁGËÅw£°Þ•A°ã,öÅr?*ë}+3hXî,wÊ; Ô—;;ùNýƒùBœÕQÏÙ@RCÄþîäÖ¹AZ/ÁÒ¥g†o'ÄÔ3ô?ƒ¥ÎÞ Îö…î@0Ûs¶ D1òÈHb±Œó†ÖåÙŒ±I…ë1Ÿàß(ÞG!þN1ø•äÞjQ€Eƒðb¹(ÂjQŒ”Ý»Ä DE9R4´]MãÚu¢_5¸Y,Àí4pÝ-áQ‡‡D‹zLÒpô´áY±ñ{qþ$Và}f1…4È”‹FQ)>NÝ=æëá¦:= ŸÄµ¤×jÔáS´sQ•âÓT•NŽp6#hÇ-ЦJí87$é_€ëhçÐsã3fê­£/\¿^#7287/óD;œâа¥Ú½¹ÌóâŸ1¬W; ~&Ï5&O%Á b¹"ƒæ¸pžŠ-nJŽ›‚ÏÓÎà¶×ä¶ÙäVœ¤ÒÏ`%q\ùu¸£àX•Áy£yGP*4”‰>‹ŒÊœŒJ’ñ]M©¦Œ¥:J7]ÛÕùÚ^¦sRŒ;&'9Ùb¶ÖàQ—ÏãÚi,þ²i1ÍÜ'i£'vãÁ¹`ß…ý:˯ã“åJ#¶ðñTFqŸG\£ãh΋½\l‰½/û¶uÕ’WWò\Ûºú¾iCìÏ—ÜdK|¯­äYù’/°%þFsÄ2G<û¾<âM¶Ä÷åÂÛHÁuèí †æ“ü8ì ÄÙ9M;Øf†öÛ¸ßäµÞT¤š©ô…ï¤ñÆxHü­ôÀí<§#ß¼Ý «sÌq™\ìØIJsZh Õ…,».ç(¿|úp?˜EB5Í.CpË=(•Wa¦¼•òSX(¯C­¶Hä$?€MÉi£éaCr±)ù«ð8ꃺ.=‡T±K‹uÎŽîþ!8ŽsÎàþ¾aËT¾öÐÏ\È{ å7P"¿‰Ùò^Šð·°LŽ¢IÞ‡y?:åØ&‚JkŸÌà29ŽOÊ |A>‚[䣨'áÛò;8$ãˆ|ß—GðCù$ŽÉ§ðŠœÔ£ÑH>½ˆ~ž=bL¾ô“,[Çñ¨>‘Jú¹vHïÒ4c}GÚ1j­—P½8éûc¹ Τþê¤iXö û7gXz,hɉh©‰Rh6RùKe ›gbæÕã*yòlýIVžgJa.“á\ó ˹SX™‰™ +NTÅò+&I¿ã!Ÿ¡XC±ü1|òYTÉŸ F>‡ | ò¬”/bµ| ëå˸@¾‚Íò8ÅæUhò5ôËב”oPl~ŠOË7ñ%ù®—?Èü9n“oã€üî•ï #‰Gä¯ð”üµåa›ÌEd‡Íˆ5#"ð¸®åÿPK ‹5N?Ô:Lº8org/codehaus/plexus/archiver/tar/TarGZipUnArchiver.class•U]SÔX=2† :¬ø‰êê00D¿@ñu#²2²¥»2×kH¦n2ÊîòÙØZ«ôÝeyîdÄ(Ö¨S•¾Ý}»Ï=Ýé›yÿáÿ·èFL@Y‹±<Æó¨˜˜€màœóy\0a`R»¦L\Ä%—MX3qWµ˜Öî-®iq]͸aà¦@ïµ ’YîÒèª@n.ªI'åRscMªª»V§§àDž[_uU í¶3—¬±À”)ßö˜¹î6c»Q—›\\å­/¤²WÙUW-> Ã[mïŒÀþ’óÜ}áÚAdß êrFŸoÆQSyRÛ{¿Ü0ä¦ôš ·Ÿ;Û÷.lz²‘QȨþ³ \èLÏg¸½‹\_"7d2)D*ðƒÐ­¯dè™;‡²fvghW¹šª…!Ôb˜íN6là›cà–…Û˜üFAé:!“09ç†a”=%ÝDu%‘rÕ?ÅgdW|©¢®¹Ø ½h£¡d3KÓš·°€;-ÜÅ=s?Û7÷-üÇÂ,Yxˆa ˺äßµVÄA¾ŒŸ•ïu ”M°²ƒÃAJ;Qe#RÇT{ôênèÛ+‰ Bf·gôëù+wN«®«è¥¾­Qî­ÉºÔ³Ê›õTÀîü×âD¹^’-¢ß—Ivªö•vúfcê‘ÏYõw0È_5­šÀbÒö5þâuÊOãô…’­t'õ œ-ýHžîA_,“y'i¼¾-BDŒ³¥a¿ð›¤Ýú’P¢5ÉUpí)oC¼¦Ò…Ô&Wàr8#Ô¬4GqŒ«nÌ2RÇö–ǶÑõ5B‰9£-„¡4ª µã8AŒœZîK Ñêá^­Ð]Èý‡ç¼ñ¤߯žwc[0ÿ(o¡Në‰V¶Ñ¿T¡²w nï«la™Jõ ¦ñã´^¡0ûlν{ÍFyô‘ÉQ¥UÅjkM+X åyÆ\bÔ${p‘L¯ÿ43fù¯q“žÛ´æiÝÇâ,S>âm\!Ò2þ¤þ7u[]˜b}ÑFp’§Tè;Åk&µvgòø ¿¶:3BÄ3Ôºp–þ=ŸR‹ßèGPK ‹5¿ôCÁ ö5org/codehaus/plexus/archiver/tar/TarInputStream.class•W{pœUÿÝì{ó%MÒnhš†nx5Ù¤ H±/hÒ´´¤ $é#­@6É—dÓdwÙm "¯Ê£ ´ÐJ±•"Pš ÒT…ª " ¨£ŽƒaœqtÆqÇú;÷ûºÝ”à”?öÞ{Î=÷œsÏùs¿=þß'áÀüÚOá?–àNvùÉ»ÃGÎçd¸K†»e¸G†{ew· ÷Ép¿ð>/âãAY=äÃð°øQ‚=^ì•ùQ?ÎŽâ1/÷âK^|Y¨}~|OÈñý¢òI/¾*ó/¾æÁ×åܘßð⛲ü–œxJVåÄÓ|Û<#ij²÷œ ‡dx^¤ûé̸/&¼xÁ‹ñp+üxG<8êÁw\½fwº_AmQð „“WFRM­«¹6£©ÄH{d§É½µ ùšníëKš)w,j6¤ûò¶6(xf¸W“îît_Ÿ™P¨mŽ%úëzb½æ@8¬‹™;8…=‘ÍD]*œ¨ë'´ôRZëI'MbA¡æŒŽjažt/‹D#© ³«šÃ7†ë"±ºµÑx:Õž¢WÃK«7*8©LaFs$j¶¤‡»ÍDG¸{ˆœ’æXOxhc8Úf:S‘¤ÂEgäF®)FC¦õC¡lz׊‡¾î¡XÏ6+Ús>FN úfO,ÑkIz™‹UVúœU[dÛÕ3KrÇQ¥…›vô˜ñT$¥[ýfª-ç0E˜V-E†ì‹'·Eâ¢j]õ:*§Õ¡vÍñDÓÃmL1ŹêˆY\E!Ñ™/'¶µ§ãñX"eöjõD”S¸¢Òº¥PÍ‘áäJ˜IÝj1w¤ìä/¨ªþDé÷Å¢ý-áaº?Û ÛP8Ú_ǘE¢ýYx¹‡Ìhj@Îk˜ í±3¡¯äà•èNÕÖ‰‡£[¶<¤oÒ½ÙŒZ ñÉcÈãhmÆìº°âcÇ*K…‡¬uqO,>¢}nŒES,¥ä<´¦SS눥©­tz&¶=–Nô˜«#’¶™Sa¸Pθí2ð ¡3¯D«Ðd  VʰË ,—a6؄Ͷ`«¸ÜÀ2Ä‘2°k<˜4ð¾G·§Ïƒ¸³Y!8ÕÝ%Áö«Ö^ÔõßÒÑÖœoàûø—ñ Ó2?ؾ%(œWI[W¯²ƒ»85“r»GRfÒÀkxŃc^Ç®ÅuŽã‡ EmM+W[647Ûš[ÛVø~Ìn ùìu6[¡úŒ'WySaÞG®ÒÔlÜÐÖfß„˜L²Ú‚Ëy‡·ð¹ÈO ü ¦Äm²èôP‰æ· b›¨úçxÇÀ»xÕÀ{r¯_à—Ìx¶?´f+\aV:j=,?}­í‘ÔãS`Å'˜Ž ÞEÿ¼oàWx[¡îö8¢ö¤m‚/eNÝ˽ÍH2e’å0‰Ü–x5/y Çîp WyþS¶ õ-7Òö&`sN$ ³¶ uV%’lùܽõš†¥2ƒüÓãØÅ;…µ6Ã’³µuêl+~~*y;l/MÕfÌjskþà4š>Íó–7—èlH^£€¿ÂÞÓ5ŒähðOã Ÿ[×1ò¼œ×qÔÛ2o±³Ôé{d.-u.˜ÜÅ…Ó\¥Î»ëÝ¡Ž€;ƒõž€'ï ¸ÇPXê xv™‹c'ŽÏ+ušOg Ñ0°›ÝGÝO°?À?ˆ…xˆx‹±‡éÛKø=ª]AÉóPŽëÉuSª˜A½\CeM65känºï&p{xÒAÍ+x™n^"÷z½0íP×Ú¡Îsœ¢ý9!Ê˹ýöÉK5¹5c|*5*ëšÂÝc¢ÆRQ£ùÓ¨8”c[emóá³’’·“r.²îer}£p©g¹(z ‘l—qôŽâÊC(>‚’Î Ì,™•A@Ä2(åªä,‹,È`vI™µ.”õ®ËeÁ!ÁÜ *Ê÷Jå»28{³U¼–óškŽaŽe'ŸvJ‚ ±Â}c8GDj2¨ÅY9眔°üÎmEcØÀqn';Åy$-ñ‹r?ªãdÉùTYJ ) ÙÜ»Çu‹S=Šëleë‹•À8´ ƒPg½óq”ÖAM'qëœ@-5o;ñA(ƒ›H,܇òZ™½Ô=†Â,qá&Ñ\«_$Ëg³| p|™È|•è{¸>Ž9ü¬ªÄ›DÏ;Ìâ{¸ïãFü·à·¸¿Ç=øQÿÑþGŒâO8€¿Fâyü/àoütü;^Á?XŒÿÄÛøOÿ[y‰¥åPeÊ­Bʧ)¿ºLªQªv5CmTEj«š©bªTíT³Õ.Už­£9la£ZÄ–=„aä©Ëˆ³UR3ê >BQî:a6únQbÜUSê(žm9öãT&Ið8œlËÊÙ\å5ãâSåU¢W!_…P¤jQ¢.Ì©˜2Û`>ûì ºb¦LØ—Û}¡GÍ$ÍV¿êò¥¾lúœæ)»®Öó,›ªsÔ;¥¤>öÕw°B¨.!hlYE¶‚£û5 Ê®{òñ,óœõ.Y:jæ\/`Q@S“û-À³+Î×tÀÕ[ï¸z—x„¸Ê¹ û ‹ÝBîmäÉ×KeÉâ£Þõ¡ZG­ÀwE…õ`ÔÔ:˜ÆËÆNüù´O"ÅWV=Ű>™ê”ªC íóªÃÙO¢BÌЯ¢|ÄTf1_‰ÏâVºàÂ\ívÞÇnÓVnÿPK ‹5Z ²³¸Ð6org/codehaus/plexus/archiver/tar/TarLongFileMode.class•SÛNQ]ÓN;ÓZ.¼+Úé ‚7ðÒT ÄR¦@ O‡rŽ38äÑ¿ñÅMý?ʸ§­MƒS^fŸµ÷^k_Μß~üB“xžF/&ÜU1©¢ BW1¥â^ =˜c÷Ì„v6(x¨à‘y³¸V‘ •ß°C¦[Ì6uÃw…mÎIè)9¶ç3Ûß`VÀ)w±¸\– V×Ö+¥buAB|©²NþՕ媄ô!³ÄË= ÛQŠÉya ÿ³¹ "–(YB_Yؼìïp·Êv,¶ãÔ™µÁ\â–3Æè3Uv\S¯ož~`ñ#2Ì­ï‰CîêÅÖaá¨Î|áØTTö÷u4}:Óg®^enÙ±ÍEañp â¦LÞœž†²¹È¡z…Wu»Îü«1Ü­Cx›Ìµ›®”ð–ì y¦À"V¬î ¿ 'pë<¬/aðD7…°t1"¡ÿd4å{*Fæ5IÓù­Ž¨ÓÈïP• †q!ƒÇx"¡p¶=f0‡ù ž‚.oꬋ”0{*%ð…¥/ØÁ>w©åÝ¢O3íaóªÇÿý}CÙÿ—þDªÙNÌæ¢.¨Ÿ¿ ˜å-›¶ãòóº‰má:=–^IŒ ýpžPŒØ´,èÀ ƒ8äu`…Ø´z:+ä£+¤ï(¡ÄŒ‘ʇ”W"V‹kq£&k²QKh £–Ô’FMÑãÔ¼?Fê#äòâc„yŒF©&èŽdÌPäÅJ}/q‰"Ô§“½Œ+ĥЏŠkd%šùF«lKä¿BýÜh|¬±ŒÐùª!“i&´É7q«Ež¡ì0–Öùcœ;FæÓ £C!ÝVPˆwQØŽT¸¡ì¢PT¸¡ wQx©PPº(x‘ ¹FVþ/PK ‹5YªïÒ% ¾6org/codehaus/plexus/archiver/tar/TarOutputStream.class•WkpSÇþÖ’¥+ùŒ]ˆ­T 4–¯‹’   ÂJØ„à+éÊÈ’‘®lLIÚÐÐ&i›¤Í£m‡Û4MxÊIœš&Mš&Ó_ùÙÉtúšé´3üíL§MÓsö^˲bfˆg|öìîÙïœ=¯ÕýàoÌÀ[ñ¾k1áE;Ž{ˆûª_ó‰ ž|É7˜ÜËä>&÷3ù&‹|‹O>ÀäO¿ÍäA/êpÒ‹ïà»n<¤àaž?Âä{,ø}Þùs2yŒÉãnüÐyáà žäñ)Oóøc?áñ§^4áF9ÅJžeNóô sg™{Îç¼ àE“^´²øZüLÁϼ¤à^¼Œ_òáWÜxÕs‹Â‘žíÛºÃ]‡ºz{#½¢[ zK&3õ´¹OOå èO`IQ²¯woÏ–Í}]¼!ÔâÆöž½¼V!P7¢ù!BPbùlvOò¸!àa¶sÂ4r®LÚèÌ'*tÒNÖˆe²q¹ è¹œ16Ò³¬\uE󉄑h g²C¡X&n ëù\h4e£AÏÆ†“cF6dêÙPŸží”ÒȼT&=´-™2vÓ ‚¹#™NšËáÃú˜JfB‘¼9š7÷˜YCÙвOÀ¹EÊ.'ÓFO~$jdûôhŠVjÙ˜žÚ§g“<·æp’.´úºìš§‹.Ÿ¡“ ["pÃ5lìf#=ÑT&vÄrlãµ¥¤×r®%º8g˜áy.q¤”B[­°9¼â’QÜFYB[–CmW‚¼˜p¤‚®c1cÔLRÚPìc©LŽ`«‡ ³·D1‰Rn©d\qÌìJ›Ù ¶ÀuyMJËÐTs8).Gl€àg8O¶Ö)¯´Ñ†IÚÏ&M2RD‰è”Y0.ÏMSËN]&¥#¡åñH"A~!0š÷eö[‹$PWd›uuÚÝ“Égc»[`iY´qÔTìÆ]LzT„±^@»þW±»TlF§ŠX¯¢ÛTlgÒÅänT1Ò1È$Æ$CÅy\p㢊K ³Z®Û‡€¶P[hSØŽ›}YES*Rñ^W1‚ “*Ž@§4–¹™ÒÓC¡Þ|ÚLŽÅ|¡äŸÛ$Ÿ$ÓC³ÛÍG«ä7Z1üÍ*ÞÀ4Õ`³?™ó›™ŒŸSÁðwøyçM ‰?ʽ¥EůpfT\aS~Íd+»ç-¼­b s¿Á;u³UÓ)1i‰Ì¿Ì‘¸_7ýÍ×fÔHd²†ß6x¡µÙÒæÏ±d"I’É´Ü6ô¸‘õ$ÌÙ`iöÆQ2=kÍ9“¬—;hÅ,Aq¤ra,'“`)·-寻*~‹÷øR¿XõY{Îl4èΔ’¦Q¶é¦¢í!oSªZÂå¡¡ ª)_£f2ÒC&5ƒ†À§OÈJrSXMÀØ){ ©±ßg …—>:j¤©^Zù´%ÅöÞHÍëÚ»Š™™µ²~!\2¥Æ*XŽøépJ:¹4[ÀUÉÜÖ$uP3ÃéO]lÀrS±«íœï•‰œi'=z6«OÄ2£tH+Õ‰&° Ý ,É.ãâ~Ó²7ÑÓÝNÏ©ŠåX‡õôoàÇwÐ|cɼƒæ_.™o¢÷úñNÎt9nµGê rÜn;ìõn{NÍDŽa¹¾˜0©+Ðl+­W°=ZpIK*0q^j¼“¨WîíBý q –,z±‡?ׇ½„ĈûlÄ0!ò¯lZïNxñü–dÏkã1·Ÿ¬­ÈwÙȧá"l ] N¡Bs\†C›†³?Øä›Båe¸xÉÍDÑ|o*—ᱯæä¡jÎŽ[ȦJòkZF:|èÇÍ@ `µØµ8(mÔ,EÛ‹6¶Û62×OœƒVè´emíðžKk$CË} “îh‰O]E|—Œû”ÚüBXîr¬a\ëÊÆ:TÄÚlcy´Kp5 –ÃAÁx œ§ç‘)ÈpôîÐÃÝ&ç@¥6…êr¨ûÈw÷K(Õ²¡¢2©-ЬÕaC©Z‹ØºÏ!.’¹ò{˜òñ‘TuTzíû®¶Q ±æå"¢K®?Q‚¤ØH‚Ÿ=Ë*±ÆÎçsÁ–P[?ƒ1ÂrTžÆºiÔõ×.­ O¡~w«-àé äý>²o±oZG6T9íÓ$ã,à‹åIýoJ¼ÿ ÿ-©ºº¢Cë– ç«ÉØj6ÛjɃ<ï9ƒ9òR|“£ëà&ÊkøR°‰g<©wÒ´4Õí ðÎp 4Õ;7úêñ™ “X!Oz¤*:ØäÜÈ'H/mû|ñß)D|òüYÜ8_xNp\d®`Sk¤,™ÈzI)•ú¤æÉO.ÎyyŒ^ˆFT Ö ›D+zDÄ*«q\ÜŽÔEkñ”hÇ3bΊõxAlÄE± Sb3ÞxWìÂûb7>üIô⟢WÅ~üKôãcq@(ânQ-ŠZq¨‡dD;¨‡ Ð{Ÿ¥qâcÊâœä(j³Q&Ί2s¦õ^——ïÕ\ä+ø{ÂN©aÚáLYé•éµ+Ó[^™—9?4ÈlF•8ŒZ—‰¬ébæU”TÎÊ*g\"û?PK ‹5áØ¤‚ Korg/codehaus/plexus/archiver/tar/TarUnArchiver$UntarCompressionMethod.class­U[O\UþÎÜÎp:\: j+UT†RfJiU¨(LåR@¼™Ù ‡ gÆs!´o&þÓÄÆÄ˜MðeHDë“Æ¨±1&&þ_ÔoŸèÄØ‡³×Þk¯½¾µ¾µö>?þõÕøq††Ó˜ÐÐ…dפL©˜T1Æ‹a¤¥â% !¼¬bZà Ìh˜ÅœŠëZä‘W¤|UCórÆ!ˆ‹:0£âuYÙ¹Ù”‚èôš¾¡ÇKºYŒgË0‹£ š“eÓvtÓYÔK® íÔRúº‚àÅ‚ÐUÃ4œ1þ¾Ø"w“åZ§ S̺ë9aÍë¹’¾Ëy½´¨[†\ו>Cbºlãyž[Õ];^)‰M ÝʯŠ×'©Í¼¨8FÙdLgÕ°t.˜Žn%ËëKØ6·f„³Z.(ˆ¤MSXÉ’nÛ‚vSÇ#ÐG|^·Ì=¨Þ£ý¸£ï0E2íÐz¹©(jDÙÒ8¶|£ZAä뾌Ô=åø¤Q£û«´YqžúúhìH­Åà—f1Öõ¢‘'ŸËI’³bHn[î÷«@5lïûwÁZ‰µ}®mK\ëù<ƒíM$ Þë{@lþ¼}› 9\”{°)sÃtV…#)Ð2e×Ê‹Iƒè} JgÞ©ÁÎâQ2e–MÁ2b ÿ[*h;XYú+Þ4*¤1G1Áx3‚·ð¶‚3ž­ë¥8·âò5$$£yGCËtt<ᮬKÁÉ´É…žÜÍ¡YdæQ€P±AQb•‰ ›ˆZ<9±DÑ‚ŠU©RW—õã±2ÝuaéŽ(Œ;Ì1ç:¬Ö©ýbÏ5ð¶ÅÞÓ.îOÛûbG]­x×ÕKö‹:—[yg4ÆVîê;ºÑáïm°¦ïuã= 镊0¹8ê8¤ªŽaE[y8å½–9¾íqŽ‹ütü5<„n~ æÊç­iX«œŸiX‡ùì+²ë9öP³L²µ¾þ¨¿ŠÀÓ_r; Í4÷á :9> öCê?âÎ-þFnã1oÏÇ9ð8zyŽÎðú(%P¬Tð‚Z< ó5œ™N"p>¥v‹úϹó±¾ðpz衹Ž#ƒn©ãÈY¿—¤‚ó¨#ŽÑ‡Œ¦=ô BYÔŸÉ¢j&Œ†3Û/äÙT=ÿ‘š}Ý«O¾¥¯?é+DéöWÑ4U/T¡ÝBd'²;ˆlGÃ5Íbðë`Öß6± ´--ŒüW‚ÁîÀOpi Šæî@GpøcœÛE0»‹–ìZ£mUœ$QŠ*Ní ýÛ÷ƒÊÖß?í¢Cúîܸì ìÀw¤è{¦ü{àg†÷ ⸋üŠIüF¢ïb ¿ÃÆ^Rc |ÏÐ&Ásq\cï 1&³OŸ‹Kö’wqWˆDO“R?OJ’|x–º0QF©“”¤(eAÕþó S9ÈèýŠÑWë@*ž«© L5ºÞ³ñáoÇS”­Oã5<‰îPK ‹5¹£Î¢Ñõ 4org/codehaus/plexus/archiver/tar/TarUnArchiver.class­VësUÿmšvÛí¥¥ÄG@,iÒ6E±ÅjiÒòj‘·Ém²5Ý › -ø@ðý@Å'(ÌøÏÌh#vFüà0ŽêŒÿú»IZÒ'0Çì=çÜs~çuï¹ùýߟ~FZpYC}<ˆT!€~)Ù«aöWâ@5b@Å †*D*qH®/h8Œ¨¤†*qD2G%ó¢Ô=¦â¸Š—Tê%Ì* K蘆:IÕ!®A`D~ò“TaÊuTÃÃxYúNUbLBYRÛV‘Vq¢ކ \ Ȫ8©b\AàåN·=–vD&cÚVŸp“v\ÞkYÂéN™ŒÈ(¨ŽÝVQ°+b;‰PÌŽ‹¤‘Í„Ò)1ÁÅpbIó¤pBD ΠÕU”l\ØK‡‚Ší¦eº ÊüM‡x»‰©`EÄ´DvlX8ÆpŠ’Úˆ3R‡ Ç”|Qèu“&ck»Çhèv¥?2jœ4B¦Úi¦D‡ô­e쬒W°|ö>áv—Ö`·ÿ>Aú®+–½šnÂAM+¡ ¾fʰ¡ƒ®Ca^½R̨ÔÎ×P Š ˺ÌÃ#?Á»Š4l¹Î)+´¨ŸI¿wox"&Ò.ãå^™is·Ì•eß|W¨½V:ë20aŒÑ^›#€v°¤àµ³jÕ*ÝëhÃfáûRf­IħTLè8…Ó ¶ $…o–±/n‹ŒµÉõe²é´í¸>—ÓÅö. <̺ªxEÇ«à±m˜[ýÙ‘ᰑቴaI³vŸŽ×ðºŠ3:ÞÀYÉœcÇ}¦åÚÜzSŠÞÂÛ:Þ‘€¡{,ª‚uÓ­*¸ñY»«KÏqÉŽ,Å»:ÞÃû:>À‡*>Òq^Fñ1>Ññ).ð’Üέ×rEB8:>ÃçÒò _â+^T‘ÏÒ'§CJ¸BÇ×èÔqQö­n#¤ uÉü¦ûPbÐvÛñ'¿OLÕ§â’ŽodÀmøöN°ó‰‚­Kœ6Ó¡®áŒë1wÈL—.è)e'ŒjÆ&b'–R¼ÒU !ù„4nô7-xk¦í z¼(î¬Åù7n8¬P…‘N ‹žšóD…cÒq§£6Jiî˘J饭ñ7Í“³bØ;<*bîR1Ô±GdÜÓ¡¦íœâpsí‚’‚Uþù¦4òšÖˆ­`Íí!^:eò³ÜˆÅxû7¶µµ)8{¿&õì\v¾ ”Ï)óìn~È*hYä,6“›îZ™Ã_º2ÆØTŸ0%S;]ˬk¦B=†+»UmfJ*Ï7x¨`ß—†É÷²Úþ^YÒjF/ÏC¡ó£þEбxiæwrn¤ÊIóåá÷qr;øOáZÈA LÁÍ¡ìx¯QæÁ~—SðÃKnšð9½`ƒ'±5Íw§ˆ×Gmו`åK¶0-„hÍ6ŒŠ€’Ú†§ © EèNêH­Š@pž–—v¯§«b«Û™¸Äz†¬ž"–˜DE­z•ÌE܃jDJõDÏâ9"yÑÅBz$¢ò­Ê¹÷·‘˜S¨bâZmõdÞDzI,¯]Q kHObåuÔz0…ºhà{x¥ÊVE§P•t 9¬þkrX NâhßMrK"›'±Ž¿ù{h G¹>’ƒoë¯þ÷O>§ ×ñ¨Á›è¢ùÆ«hﻊ­}ShŒN‡¶i&4?)FÔœCÓ~šè“òvoËkÌêŸÃ‹xŒ™žÇåâzƒ¹þŠßðùËø%Ϫw€ÿèýäØåAòC8‚£8ƒc8‡ã´M1EÌDµp †qq¢$‰š"î "[¸Å¿ôÁÍw¡“<Ìì`¯=´’] “º‚ Ø™§ne^Ù‡b·<ø»ð<»ÕKÎ˵‘²Ýù=ŒOv[^Žš±öPK ‹5]­s..»/org/codehaus/plexus/archiver/tar/TarUtils.classTmlSU~îîG×Z`nùèÚ®Ô®0:Ø(_sƒN'%ˆ›,|˜ô®½[ ]ÛÜÞ‹Fc2$!`‚d&òÔ8ˆ~‰? 1á§þö‡¿ýá|Îi)#ãšóž÷¼ç}Ÿç}Î=¿üóí]¨èEÆ?vxò¡ ;ŰK »Å°GGãÏãÃSØëà ž÷`ȃaÆ`±\t‡¨ñž£ ´‘JÞV°j¬X¶Õg§lgš*ѳz¬’³JG-§(ÖM§æŠ5›Ç*ÎL2Ç“«^KVKö9N–“+ÏØNÒµœä„å¼êKµ½ |U˩هs®URà‰ŸHg2=(Eþg¨`[yÛQÐv"ÍUezºf»4JvyÆ-ÐpìZ½DÂCþ“–ŽXù|±=m;D´þÉ[þÛYÒs®M¦‘ø“Be Â×ʲ¦:UŸV°‚§%ÑæñöøÁqêA_çXáÅü9 «”g–Ñ\{¶ªÀäÖHÁίÏ.ß^•«ÌVë®ý`)ÉVôS­‰•o¼RwröhQȵâ [ ?V`¥‚Àã ‰Ý}~ìGÚ Füx/úG£~¼„ zþ·ê :V9òñzŠË‘+XÎþæá‘GÒŽÏÕØ**o9Ž5—«Tç$–ËÕ¨»7ó ÊOÃ/¿’v(¢5Wq•ä¬pÖ·¡|I£  錠“£¿€ÕXÃÙ‹µ0›‡ÿ†ÆtÀIoZKéÁ®lʦ<¦Ç4I˜žþ«0n`XXÝŸÂ/¾ëXgêWÄN¤±s]ØÔ”5æ!ùóVzÞ£ÜXZŒ~ÑÂ4$körµ•h’ða±ôS¿cú°‡Ö ­a »_HJ%G1Á¸ãÈH.à!ù—À:ZDŽõØ ÛréS¤¤ÕÆßqt!Ä÷GÇ$+D8û𠺹k°Qljöá&c Îß¡íX×m¨‡D/´`J7uS[@(aê^¬éæÅEh“ó:ùýÑ{«Åo“ìåQfž¤<Ljìk¾F[¸ÞŽœä0ÄZ¬.8ˆ§o Åa Åa ÉÁ‹Íä#¾•xV"×è{Ï4‘εÈ1¨¦4S - bj‰Eè lî2µlÂÔa\˜˜×öwÑ!7Ԇ믮Pöf‹AXöÔáMq‰Üa•³¬?Gäg©Êý@£ÑÄ$æAC>Jý³DŒÉp å¹0þz=qz'üœ Wq°›?í2Ìõ/T6™Œì’a£ý²Ÿ©ângÊãú.µehô¤áèt Ì>$”iötÄ“CndO’ÖøÃúMšPg{z¤ŽÞŽ#q–I­º9òyÎñ× n_L$ödNبÄíäXëžÀchý« ÃZ uz#ŽK1Ú8ð=lੇM´t:´çàzÏA¹çàzÏA5ŠO*Áà½SJ˜‚X¤ óU»ƒe4þ!œcmB~JÒ«ÚþÐèOåÝXdïEšò˜‚¥vgÚ†ì—RÉìÃò´xȰùŸ:Ђ ¹–Y:sd]`ß‚ ·) é´È6·¾€]ö¾¡öñÙêŸ1óƒ@3T·p‡|»È¬¢A÷ ålb™ÇB‘mÒY$[ö¨a‰n Ë“¸UTH‘7ûPK ‹5ÁLªžñÏ-org/codehaus/plexus/archiver/UnArchiver.classRMoÓ@}›˜Øu nÂg¡|”ºÔjSÄ­ µEBЉR¹9f•nåÚÕÚ)áq†JqàŠÄBÌúƒ¤M…ðÁ³ïí¼·£™ùõûû4±ŠÇ30°hà®IqÉ„ƒå´pOÇŠW‡Çëe’p¹‡YÆ3íU¯»ÅÐéî‡Ga‡É ØÉ¥Hë :å2Œr†¦ë½e0·F?ÌEšd:î3,¹Óª’iðBÄ|]©æ<ßäY¾)$òT~$ÊõNæ•MeµÝi³ÙÊL„²ItžîvÒ¡Œx…³“Ø"Ü;âòƒ9AÍ}§§Q,‘?#f#}OvW$|{xÐçòuØWJsÒÆ~“<—Ñž '_Õgá2¬¤ràGd°3ÿ0æ# a8ÖX4)_G`áÖ,ÌÂ*µA­ JmPkƒ±–Ú4nx¯¿ÏÕl¼ÿ;k þ?sëÌ¿cfXÔ¢8$sj™SÊœZæLÖמ؈bÇh´­ÒƒaùŒ}ñÎا(ÚDívx@Ý¿äzÓ&-z:ÔzÏ«ŽÒÉÔhp›Fq®`Ú§˜. _\.â• _­ðµ ÏWø:nÚÀBá}“ÎOЀú¾€ý„Ýi|Cs÷ìZÄ|…vŒsŸ‹ÚnÑ¿EäÑÀmŠ Ü©ª%Ö ;rþPK ‹5ÃWïT¹6org/codehaus/plexus/archiver/UnArchiverException.class•’ÁNÂ@†ÿm±DQDOzCPk¼bHŒÑĤñr/µ¡kjK–‚¼–'>€eœ) ÂÁ6™™Ìÿí?i?>ßÞ¡ã9¬¡Ì¡ÂaÏDÕľ€q)C·Ê5ûÉ;Và„}«+ö›Ç]Ìuôè lz÷£çž§:N/ NÑŽ\'è:Jr63±/‡v¤ú–KJß ­AàMèp”ë˱§¬‡ð*Mo&®7ˆe6ÉÊ0¹•ɜԗøûÕéø*za‰élü]ÒbK§ªµ•ò\;)×»•¬¯.q{ÆÊ< ˜ Šçÿ]Z ôcaÞÅ2ô‰øÑ!øŠëTµ Ñ õÆâ•2 Y餻Aš<å@e6E|B1°‰-b0«²îˆ­ÓiÖ'Sh‹°Þ(ÎÆæ03…q¶MsZ‚-.³¨/R+üç­°È,¶XJ4»_PK ‹5ÙüŸw+org/codehaus/plexus/archiver/UnixStat.classMÐONƒ@ðoZ-mµ¶õo<€Kå 6 )US¬[2⤥!`(4]zžÂ…ð.^Aý ™d6 ¿ï½73ðýûù…&.qfáÄ©@çÁ™MÃé(˜O w“¥ëB¦Å“LJÕúlò½»Ièú£[ï`àz¾£ƒ7í±7Ó¾¦‡cÇÍýǰž¬Î`Ap«.T:ÿ1êuáC de)7No7OãmPÈâj%7Rà"Ëv”½¨¥,×ök¢¶\d-ãÊmÝÌS«v;‘é¾^©¨hñkÑ`áœ?d‡Ú¥hÑ–á6Ý1Ü¥÷ ïÓ=Ãtßð€>äSà¨~?þPK ‹5ÇäGX⢠9org/codehaus/plexus/archiver/util/ArchiveEntryUtils.class¥VÝWeÿ Ìî,ãðµ ºb¹*Õ²©d‹™€PÔ‚iVËËîàì ÎÎZÚ‡uÙeuÕ]]yê,çäeçtÓ9þ€øGªß;‹ ¸ÚZpxŸ÷}Þç}>~Ïóë_?ýŒFôᦎƒŽaDÇ(Néø†WtD0¬ãULÈå5y|=†´¤9¹¼¡cSÞÔÑ"Oã­¦wà fb˜•̳1¼­áœ†ó:vKïHzA.ïÊå=x_ÃÅL¹Ó×0¯ zÜr,ÿ„‚ÆTϬuÔ Zs–#&ƒÒœðΘs69ñœ›7íYÓ³äyƒ©úE«¬àhÎõ ™<_Í œY²Å ‰éå‹Öáeß²3ÃÕÓ˜ã{WgÈ()ˆä‹%—> ¦r‹æ3c¹™qËC5õÙn¡`9…LŽTxCÒÛy·T2y›Þ*H×|ZÏÛVftK–¶£e^xž‚]Ó¾Gµ\…YurPdŽ#¼QÛ,—Cí^^Œ‡¦;Hm¿|oàºéGàX+„4 XXTª7U.°Q2àÀ5°„Ë<¹”h¸b`—5¬(ùÿ 2p×ìï{ô† |ˆËl“iŸJMo>ÉRr½¬ëp´m²™ë¥ÀÏ*èd‡l èmbLT·ç`$XX‰ì›&)ë')&—Ír6ià>’ËÇ>‘@’þ +ÿ´é ǯžÛR=Û›ª•"Ãse×|qÚô‹œ©šªw–…Öõ.ñtÊòªë=,ޱfJ…HWÇjKžUé‹a¯Àªtä´ØÚ¥Áz{§û:Ká¾G4K¿fM; K}Õ]œ!ÕÊ÷Ü(ø,Uÿ„~´ä¶ÁúXÂ=œ·ÿ}rt-›¢‰IŸ û˜ãÔ\ZÿeõÖJå¬jÏý®Z%¸yóÝ»µš®¡÷Ι¢ç.Ë"aÝ`ø1!øËi Oñt˜T!¤W¡Ü ¯Ÿæª“mPÑŽg¸3ªBH¡‡´ ivU°oOÜùíYU Ä÷'ÔU$ïÜ"qü†ßñäH‹ØËµ“áï!$]¼ÝÏõ;„~‚ów£,G°fø=wf¢„çùë8‚Ïq_`_RúÃwxßcˆv†iéþÀIü‰‘0 B+? —ºTj½I+LÊ ®Q㢴àRïh|gPó å˜ê>æ~Ú„©\G–VˆŽã%~ož Wå]'¹/‡…pϑƹkáWd†Ö'iÍGÓ?PK ‹5åJÏd 2org/codehaus/plexus/archiver/util/Compressor.class••[SeÇÿ›,l (P°Ö@‘C ĨÐb9U´ ¨ÖM² ë„,în½l½ð²¡ãa¼ðÂ.ZgtFaÆ:õÒ¿ŠßAý¿»9AŽÃä=<ïó<ïï}ËŸÿú~D¢oÔ¡×Ä0¥`:€™ dÌ1‡ë¼À[Ä‚<¢1ÄÅvQ KA,ãí ÞÁ +A´`Uˆß«%k Þ“Hé¶sÝÈêãi»ZÔ0£b?!!h›y+©{§µWŒœáLJð ®IgÌ¥Mq#§/å·ºµª%„^KÜLjÙ5Í2ľ ”-Ö07­L4IË--oGw²ú'ÍJn»ºÍ;F6:cnïXºm› êmÝ™-6'j² ï©Ôg* Î ž|S=®TBÑ÷ôd^ˆGÊ<±ÜNÞYq,]Ûž( —óNY*`}FNB[U#Æè3êKh¯nÎ$òé´nÑËæ´„š¤™ÏQ]Š)¸)¡ÿDhNgÓîëüéY:Yç #+.Ëš¶ˆCe|šÊ™^T<ƒ‹*. SE:ž3“=UX”B+¡OdÎÈib˜!Íq,#Á`‡ ;déç KO‰‹Öl¨ØÄ- ãgXmçm'”3Ú T=ç„´PŠN’Ži}Ú-¡Û{Ñ·I­®ó¾U„E8ÞÇ-à¶Š ±½‚‹ >T¡!¡ ©"F²ã”$ˆ‡^VÑ‹ˆ„áÿÓ9§Ä>kf2F.JØŽ¥%¸™™Ë‰å#[KE¹\‘‘¶BYe5šŠÖ^×U³ë {¶øp÷±ÁrÕ÷ Ûañ¨YÍvÍ”‘6ÄE<—p¾Z}²Ð>± ÑYÊÀæt,&nj­Ò,,bN©’ZLîæw­€,@wÕåÎõD]r|–»(g‰sMøÒO®Ú%޵®0„ç8ªžwÝœ%ôàrÁxÒuOíðÐ/ð•­ƒ®t„6Q×C»§Uð V½D?¾§@~†ïÇ /Wé¯â? r•6“§€ @«‚øO‚LWñ‰ºæ(Œð•8[¯ø !¯·Ô¡öw!8„òuA(ÈüE¥º¢ B)(då×ô¡Žã"þkÆ fq•¼‰al`Œ}u ·1DâBqˆ?™ñ.Áîs/â1ÆÜ×{W«ß ölƒ'kØÿJøü5 ó¹|´ïgšEª£îìq†w ËÓ4Â!kž™Ú£î’Ü¥æfô.FñyëØS¬>ÑèÖ/¸¯áÜÓÂo%ÿ˜<ñ·É‡87ñGž¢yLn“}ßýóW9^]Lpã}FnŸ³/yËWxKÕÐã¾CrW/àEz©e¬^"«ŸöÔ%E‘oŒc/^-ðÝ£ŽðzŒ–õ¡#´.…#ÃG89DÛÔqY,:e7juhb%Šj¼àÎí%æøž§<ˆV<âéC<"í.q˜wж,‡ðš[¿bå×±ë_Ç8iJœ²$¾´\•"K ?»n]uïŸüPK ‹5À¿P+3<;org/codehaus/plexus/archiver/util/EnumeratedAttribute.classTMOÔP=¯Óù`(ò¨ g:ÅOTð”†D‰!áÍPRZì´ÈZÝ»v¥qㆅ&:$šèNÿŠÿA½¯SFnî}í;ïžsÏíë÷Ÿ?#†!ÜJ£ fZ1’¦p&‰³IœK#S†ó)\ùb*F%ì’„]Nã Æäj<‰«I\cˆop; 3«|ƒ›6wJæœïYNiŒ6-gYl2°Û M%áÏKl™¡;“]h„OŒ[ŽåSÕX&;Ï NºËTºuÆrÄÝ`mIx÷ø’’¹nÏsÏ’ÏÑKÕ_±¨öèŒë•Ì\áAÙ\·Å&%îV¬ á™oÙæ”¬ ûbyÂ'î¥ÀÄž*G ¥À½ò¤¢ôÔfA¬û–ëSKÁu|n9åý=`ÐBf‹ûÁÈ f‘‘C ýI•j »2Ù!nWM'©jÊw«›$~Î ¼‚˜¶¤[½ <–5D¯†Nti8“ Ãûú9-jÆ0ôÔ뺋ÂÓp72ºUÖ××¹n‹·õ°e½èzº ÎwÔhÈ#+ÕÓÐŽ ÝèIbBÃMLjÈ Ëpá¿FÍж«pviU|rž¯¯ g™!ßh<{^U[û«ÔŽÏ ñ(àv¹nÒU"ú ÔãtÚ(t·¨±pEvSN©LvI+UN ‡h=NûŒrÚØ3”PÞ…gS<@·¸HøÓhÂ(ŽÐ“VE£ý”ÛqÇ-+=%œÄŸ1rÄ®ö)¯pôÔûŸ¿¿½Lv¤(Tдô£¸ŒÜ4ïF‚âuŠ7ÐL£Ä-ä0…L‡äz• "—+Ù"™B(Ù¤BÙ ›?ލÉIÚQ(·†Ò”—Hªo Æ¶jĉ°«;!IOZ#iHÚå|NBTÊ9£íNþ+’¹oˆ+[±kýùϯÑË÷Ÿ­ åâý[ÏbìͯÊ.ÙRÐp-xH‹4Nz D±ˆ,Š¡#좧¨3Ùw®&)IŠ“Cƒ4…žé›Ä™”e;qã=šßÖõèü1ÅxmŠ•Ü{X©7èqƒÃLÞ¤=‡+8PÏü¤áá¡5üPK ‹5ÌMxN†Ó5org/codehaus/plexus/archiver/util/FilterSupport.class•UßSWþn~mH¶`Ú¢¥MÕ–$DUÑAˆŠˆ‚(ø«›p ë,»;›]fœéŒÃ?QßúäK_:#0ig:>ùÐ?ªõœÝˆ™V&“{Ï={î9ßwö»wÿþç¿Æü”ÀQ w ßñp6‰s8ÏÃHp‘‡ï“ˆc4‰1ü  ”@Ãq\ây<Ž Nq9IL±§ÌaW\UpM@YÑ W: #•'ÚS­à¹ºQ¨è wT fXõºtNW,§^¨YËrUóÛë4ñSݬ*~Çé¦î–.dö'û˜ÙÈ$ÅtUtSÎxkUéÌkUƒ<©ŠUÓŒÍÑyÝrFÜU ·Í®9µUý©tW|žsžm[sSt³fx\+׫[…iÓöÜ9בÚÚhà44ÂG‚9š]"ŠA¿†þ»æD`PUT¦’!Ýèù 3Óä×\‹Ÿ%–5W * m H Cš®³1£­ùý8€O Þ"µ, l¢¼^“¶«[fCÁ4­ç,Ï©ù (ÁžŽ r6Çq]Å1|¦âsô*øQE7TÌংY·xqsƒ‡c¯âkœT0¯ânÛý²·²Â]—™a1ݯbw)°?-×JéêF:h~1­â,©¸*òð ‡Éþ=”›Õ'²F®³ÉÒì6X œaývîÕ=ë¬Q^³Ý ?`‰_Q륹L¶½R½”hUkÌÈuJ1ý©çÝöÀÓæ“ÿÒ¦Þ˜’U¯^6ù ‘\bšmK“Œ|¦ð¸‚÷ÅŠ«KwÒÐt »÷àñеÏEDhK á½ ޫص[ ºÌ(éD´Cµ@¢ê¡» !Ū%+ÅÂõ=‚Ä|‚Æ/hµHë0Í]¹ˆÜÀB¹ü¿û}þ¶Hkìß³”öKò¤ƒmøŠ,ø—¾Å…¸ )›f*#â£g›‘RîBoðŒ§&"/`vT é4ø÷ÙR^#^ŒöFòMt„Qê{În"ÁQçÙþÉŨ©O¶Ñ™§ª‹†Þè6ŽlãS2·‘j¢;„—ˆ½ü÷×¾ßv¹ Ò¥jcdV9â2B˜ÇqSø³Èà²ø™>7Ï1äó.LãÅD)¾Šo(’{´¹Û‹MôÓNá[YÊ¢ßs ï¸@ÑtMпà#z PK ‹5m‚kÁº2org/codehaus/plexus/archiver/war/WarArchiver.class½Wëwe~¦ Í4 ´†KWE M[¢.жŠB)Z·¶h±•z$oÓÉL˜™ô‚ ¢»^v½âéê®îªèÏÑã’î®Çû9zŽÿŽß=>ïL’¦!P8žã‡¼—ßû»_'?ýòÿ¯ÐŒ|ÔŠNˆ!‰ ´âA<$!Çðˆ"ƒ*3rÏÊE¨˜”{.†(¦T˜1Ä!Ia©ÈGaË£#‡U¸1²õTøRL1†µ˜–2f$Úl s8"aI‚ÇU<¡â¨Šc*ž\‰ãxJÒ>- ÿÅ_¢xFÁÚ¬(XÎ\^Øþáe\³à;®‚ÕCi#e:©½¦%úhfÎv\1.Ò³yK2¡ -[%ؕ͊,!žð—àEcÜú¬àûi‹áb>-ÜýFÚ"$>äd kÌpMy/#þ”é)Ø6丹T†”SFÑK,1ËÍp3Sæ´pS3†›7Ü]å;ul uäáÓ6ý šRz+Õª(tIb©eò}E`ˆ‚ØÀlF|Ó±)½ÅÈf‡Ì´u’xÃFž|£!Œ¯;êØ<^-ÃÎ¥F}×´s@Rت¬éŠ }6òTM;c©‚5 Hˆ f+*å÷[†Çc¬r”ðV^h iO’‰4}Â,ŒýBÑ'aäÜ8¿3˜…TQ mäA ®¿xê(ž¥Ãø"ý£À[Frlßë»xig;n0ˆ¬üt]„pRMï3ü)™œ ÂÉ©¬ ÒºŒ% û¾£1êÝŒMm¯ÉÊm’ƒÆÖ°MÃM¸™É´â9 ÏcTCº£ø«†¿áæû…èèVsTÁúzõv''¹cOµ¨õÅ"íÕ5¼ˆ—äò2µÔ³ŽðtÛñu1kz>|¯J-O°PÇv÷ ïM͈ô6ÖM¯ixohx'Ù *Ï–™N‘U½Þ’¬Na^z£Œ› ³•øj¤áïÒð‰™ 8uÃ'uºè ÝôtW.²R²zÂqõ‚+z-É\¯ÓM7'iȃGÓÖ‹…¬A2Nq—†·ñކ” Â?ðjÿÔð.NjxÿÒðo¼ÏP3f6é{uOX,OÊe‘ë²ô=½\¡ºq–è™)33¥Ï˜–¥§©uÐ~$å¦X¢‘MyÓó¤’“®“'ÖMºox‡ºuXÛ]—Òx‘1'M²5<}«ïÅÖÎ(>Ðð!NhÆi c2±º/¦Y.‡~èwÕ¢¯©t»Á‘šܾlîJ{¾kddCZd¶²Œ²®ÀrÑj)ûng/èݲ  ÂæléN4è§g è«CIdLχ®úNáDLœGŒuä³Åôœ¿jËö//gHh馺rŽy‘þ>Ãe)—»KE½ÅÙ%J8L42ßS™/ —•páskµé ²×ÉÒº;è€í,PÃòÂyßoxâ>bÛ©`¿a;¶ÉaöÖÎ nÈ¡}•ädÖIª„—’Z‰:äärÒÓ[è©FR,¾S³TˆGÿ]½<û>Kˆ)ïþÞs¬s Wñû. ð³IN žšäD öT°¯„‚kq×ëyÛIx÷–ä†3P> ðþÈ5@oà ܎í<­±pn‚Órãl“£ªÌk/qîíÉ4%#ä—Œ7ŸAd‘k®{¸î@+ÐFÉ] éÊÜô¢’çQâJɽɮ3X‘üV”Ð2-_ zà ¨Ð•°2|Ñâ«x.aõÚ¾NvÅÛK¸dQúzZŒpÝGÉ÷’ÿ8u¿¿Æ¾Þª}½¸…ÞSp+ÏîQþvVµá]âw$»JˆÇ×D¾ÄÚÍ<¯UJX_ïFƒìÓ5b:ªb:èâz1·cWYÌU•‹Ñ”5Ý= 8¢­€s2ĬrŽawÀYžúéò¦à4ÀSói{ÏeTÇ2FiÌôuGC£:u”FûMFÝÙPÚJ{–Òžû Ò"ò³¡,Mulf:*§°AfåX›,áÒy¬’9¿,LÍl¨/‹XÇï¦+ùÙt NÖ8vsU¡Íø†ÊŽmáÛÝøaF.ÿ3o2Å÷ÈÌ¿ü<*°q¾¢Î˜TçÆ7¨•+Ù+¹• Ï£*^U©§«ÃzŠp‹o’Ë55€Íaý[šp—&»º{°UVûÆÓÒËÁuÑ´-ô.øÝÔŠ¨âÇÈáþÛü‡ñ³çsþ-áIü70w{¨|ÕÜã¬Ó{ÿ o N÷b”^–§ý¸/uÆXµ ”»Q[’=hcØŽ¨÷ú7ú-ÃúVãûšfÔVmFãÅý¿PK ‹5^wá/ð•7:org/codehaus/plexus/archiver/zip/AbstractZipArchiver.class­Zy|ÔÕµ?çÎLæ—É/! ‘%d!‚%@J¶0d~ “™q»hÅ¥jõÕºTb­µ¥M[iëÆ ÆªU ­µ‹m-ÚE»XíëkŸïÕ.Ú÷=÷÷›Éd”¾OÿÈýÝõÜsÏ~ÎäÙ>ú8¹¨Q¥|ô$¯.§'x4Is±ÁkåÛ)Í:/¯÷‘aïÙ`ð%òí’f£—7ù¨Ê^¹Tš÷Hó^i6K³Eš4[¥éöq˜-¹¯Gš^i¶I‘f»[vȾ¨ôúd.VÁqNHï2/' ²S8-ãŒlÜéå]>šÁ« Þ-ß=_.ß÷ùèýü~i> Ã|… ®4øCrö*ƒ÷|u_Ã× ˜ë þ°¬_ïãøFé}Dz7yùfÿ¿ÏàÊä-Lî¿ÕË·|»Áwüqƒï8û¼Ü|—4ŸænyÄ'¥¹GšOIs¯€ù´ÁŸ‘ï~9÷Y/ÎGø./ø¨‹W˃?_Á_à/Vð}|@š/yù˲ç+²v¿4xùA?Äû¨› °l9šC>ÚÌ|X¾Êô ÁÉà«rûãÒþ/~Ôàßyù÷>úœ°å þoé½!ØÝoðÿøøùÂý7 þ£ÁòòŸ}t?vò_ø-iÞ0ømaÿ_ þ›ú»þ‡íŸ"TÏ|ÜPd(–[ßð*åU.&ow¼¯ÏŠ¥™ü«¶‡v†š¢¡XoÓÚt2ë]ÀdX±îx}&_8ÞïK$­TЉ7b-_—‡ÒSe*´Ó /Ë+BÉîm‘Vçž„ŒÂñ "Q+E÷àFÜ–ŒXRcߘIG¢MËC©méÐÖ¨…KËÙD4Ò­!•‡Âa@Ž$±ß§ûT]}x½ÕŽ'ådkûšÎ®Í-·ÅLUáx0åÈšà]‘ÚIlHFÒúIUˆN‡µËêMÆ3±ðº6&­X¨Ï¾ íË"ñ&ã"ïå‘„½äMeº»5MÜ—¯Î€Ž³WÅ“½M šµ-”I5%¢Ön|‚$›p°ic$­‰Lt¶B}€Wv^$I/brÕÎXP-8Î4bU$fudú¶ZÉN¡¼:ÞŠ®%#2v&ÝémÜ?÷Ý/^²5•N†ºÓ@`‰3Ë}½Vº%'£kg”_ª`OMí‰[í jÍ LEªx4$?îÚrÀèÎÏø"©¡ePa£H••¶%ª]“£,ãˆWU$Õ+\àÂgïN‡¢6^¼ÌT‘¦°áÐF\Óf? fO -òÓëH.÷@$U0#G/Ή '!€‘T~ìµv[ÝÁ×׺»ÛJ¤#ñÞ6¶' E#—[ERÀtNí¿.:BÅ‘Ýè¦-‡£í¡H ÈàÚ‰…\*û=yLäõRݶºp¾Ê¹±5§¨# t­=”y…a3î½.92I(Ag|IDžT;\]fœpÜèÁ|ô ’I[ Üè‚=m˜ Ù íîÑJVwJ„qt³ 2”‰Š(Ç-gœLPÚ–ç‡õï {É-öæ¸ëÔ:Håš°5yd˜–ÕåÿÇzwLÑcÙ(•'‡npo ¥Ä4ãÞ5!y¯mD{‹˜s¢&ÿ똔¶®p$)Æ?’ÔæYKÒÈ‚W¯M‡ºwISQÿ5qq+PG¯à½LŽ–Ao{"»™¢C8·Å ®ý7 ºb85Ú4â[—Iù•¥{D¹’¡=ÅF{k¦§G„WmZ tCñ!uît@`§‡»8AžéìÙ8ªd‹E­)ù4€Û¹&”Þ¹qÒ0G‘žˆ6`=ÉxŸ#“¸«O۩从a2üocoOÐ £ßð'”˜fäúb™û7  9Ue[¾Ö¾DzŽ@¾ŠMÏFQY‘¸]x;&¿«ˆ¥Þî¨Љõö@•,°s”8æLµ?’Z›I$âI $.ˆCãÂÚðœ¢\ªEEãSÙêµ–:Ò3îd›Å)âòUV¬W$ÁÓ‹F+ *QÛ¶¤0È2ÎëŽ:1„o­¶v|2®„ÏŸ)šôSú™IÏÐ×M:"ÍQú:ˆê›ô zʤoÊxT‰ͤgé[Ø ËbÒs²õÛ2®.ÈLú}פï ðHóCi^æGt̤¯Éѧé)¯r›Ê£ÊL„¤†©ÊéO¦òI¯Bz&ýÞd%¨þ˜~bÂF°©*U•W0¹^6TÓï™fžŠ$ó^êÝÏû2©tl†ÒA0ƒxÌ ŠÏ™)äyÍT#•ߤéd¦4—àf‡AJo³‚a+¹ÉEASR£Á<¨ª¡WM5ORc¥¥Æ—ÁH*6H87«€¼Hfƒ¶p£Ä˜=MÇe‘ÞX\nÚÁ02[3ÒK᪃ḥ¡Y»#©ôL¯š`ª‰x ½$ìtÏL÷%Luºò{Õ$SÕ¦š Úª3ÕÈí;Ä ^5•)ØšÑh|—¦ãA;HÆ£az°ÖTÓèUHÍ YMCñâÉPr^AÕôœ@ 9póº˜HVI˜pkÚuË£Ñ_š‰DÃv_5ƒ¼µôÓYÿªElf˜ôáqd—B®¸œ}&á±&DOÕ fl%c¸¯9˜Éã¶¢(>üÀ¥A¸Û(ÕžjÀ›5\Å ˜j¦jòª³L5KÍöª³M5G„å57§ebhªyê\SÍWͦZ ÎÂ§ì ¼j¡©©óMµbγ¥·D-5U‹ZÆD¦jU˜êB¡7™j¹j3yO„Bð9¦Zåãsy¾©VÊŽEžÝT«D;ÛU‡©V«5¦ºH€],h®•×tÊkÌBk-€ÂÅ€FØ@‚v–8ÓŽ¥Dòt´|7J€¦Z¯6˜ê!Ô¨!Wu™j£¬N|Ǩä7Ô&S]*Í{Ô{™&œ°½À›j³Ú"T ™j«ùQõnÁ$,¼¶¤×#–¶Wm3UDm÷ªÐò%A f“¡;‹Aç#±îh& Š¥SViÐØ“x}©&·ÑÏ ×µràž WEMÕ‡›é{ô•ÓªÂÌ(ZLºN§6šA+©‰Ú©™VS+­¥´½MÔI!ê¢0ý§Meúý_¦_Ñ«Îsšð•5OÝÃ4æþü¥ez2VpØ“?ükzÍ9¼»•쮫?Hc†PöéÙΤ5„1ö.‚ô„ãrñë%[ŒÈî’ˆü¦4"c‹ùÎ|ð$ˆ<í òŸôÛ`s‹a]X{Oë¿ 6ëwôûRŠu]ÉGýw‘"U‚ˆ« DƆª‚$}go¢Jº¹©ªYjÚGõvï¬~:£à˜=9Ë?ûä'Î.}bNÁ ·¸&‹}4×9Ýd´ÛËÒ99 ç`8Ï>}˜ÎU$çÛÇoƒ‡ô7Û0;öÑ™?š¥¾~ 8ª.ÛdN´¼ÙSb7ø#YŠ9‡Îk(Ó"€ƒÑóÊ7‘¥ËŽ÷yµ¥T7Ü5º&à3 Ø~¨ÿg!~™/ÐJ>@[øË´žðJ~T9H·q–>·éóH7ø4WÀ|~´Ÿ:éŒ?ÖlŽ ÒcFs¥knÕ˜òšªkBóÊJWMU–n ˜Nï¶zt•géö¹U5UêSÇ_¤;º&Ôíݹj€Ôû÷e©ß†fºæVZ¥ÍtÕTZ=:S謩ŒW€Ë]xBy–>0Yº;KŸ þ{j¼ ù§KîµA–»æúj|ûÈl”»j|Yút=:r +÷+¼¶túÌ?…àšø-ªà¿B€ÿNgó?à’ÓbÅd)/]«ÊézeÒgÕúŠIY5ŠžT£é¨ª¡—Ôéôº ÒoÕô¦šL…ów©éìSµ\‰  F5ò$5“g¨&>GÍâêl s,ÌC p._¢æó&µ»Õ"îSç󵄯@аWµò ê¾Mµñ'Õ Þ¯Vñ}$¾¬ÖðCêb~Luò7ÔzþŽêâ©ZqÐHvÁ«LãédÂ5.B@3ƒ*a½pT£Š/Ax$s&o¢Z=W‰Äê‹­ž‡mz“îEèÓõ{’«ÕÀc݇ JN”Æõ q÷Çr ÆÇ¸‰ÏÜm enhêÒ½Ù€ìÖ½³¡ˆeº7P¼Ã줨Ý9N8ó¨µ(qW½$YÚ¿ÏÉ.>+j2HŸë‚@X‡h Ù ÛÔÐXo»bIáöQùHïwE¸¯ q½öŸóõ…ªlöè^ÀóâIšLÀ•þÖè¯-ÓÄ@«mT¡¶Sê£Éê2º1ÙJµ“:ð]‡ï%jW.†$ó–¦K; Ös!0gb2ÍC9ϱ4ùGË/òŽs8ÐäÑûŨC:¿xDÊu¿ïDu¯,PwêË«»–}šþL xêK¶`€Æ<ÐKÖ4qð_móÔ¸µªÁ}Ü[ä|Õ ×^2ÕµT«®£Ùêzš¯n¤uhöQêU·Ðvu;]¥>NVwÒÍ05w¨»ènu7}FÝ“ [à¦E䄪ûóTÝ‹oÛïýyªîωz"JÃì77󇦗;qñ…türAFô4 Ï¬œÑfDÉ÷Kœø@{õ˜ÇŒŽFWõšÎFwõÊÎFÑÙXV]Ö)BkÔ“Ô©ž¬~“6©#t©z–6«Gi‹zŒ®ÆÚ X»k·`íVõ-ðã¹|t.C¦3ô½4”¼ÄE[Ñ/Ô½[9áÒy.Ý©«Î ìcÈÎ/5EÊçëÎ×8%“y"½Yíxª³ôˆ¸.éê1n§=_ªÈ“t)YšÚ!ÁÓI‡z…¼êçT¥~eý%¦~…}•¦«_Sƒzf©×i®úMAÑd^®œ$ÿ\á uPšV‡ ð°Sæ¶KàÃêâ^Á  *;YÒ õ$joBüÿH#ÕŸhŒú3W¡ z‹¦ª· nž–«Éÿ.½K‰ÆÅ§\¢anÉײœZ–r²\F"*È2nuNþ³ÞF  .´3&I"kŽ øÖ<’u_½â¼Á^>Û^Ö»lÑÓ;êýÉžú¡D~C½ÿ«úÐ>åĵpñlZH‹ó‰¼Î\•äqUÓD—Ÿ¦¸jh¶+@ ]AZìOK\i¹ëtêtM¢M®3õƒê€ô:ÍQ Ÿ'U„/à q‡‡Â¼Ï“sqèž Ö¤ e‰#ú¥“²ô8\Ä*tç#L¯‡‹bUÑÈ<†§KŽäj ¯k&U¹ÓH×,ò»Î£€kw-ɳÌO¹Éù EºœyZYòÇ‚²¢ \­%Š¯Ê‹í4ý’˜]GlŠ¢/= åd¨Øw$¤] sÇÿPK ‹5f‘r ô<org/codehaus/plexus/archiver/zip/AbstractZipUnArchiver.classWk`Uþ&ÙÍl6Ó6 ¤íVÒ’gƒ°n)Ð4 lHÒ@›Ô¤ N6“Í”Ín˜mÓ*"¢ÈKDÒR)ÈÃk&- á! "VDä!Dyø~€ß™™¦›W[ù±3÷Þ¹ç»ç|ç»çÞ}úÃûB6*•`ÕøRæb1¾,‹øJ_ÅÅA| —¨¸4ˆ€Ì¸LÞ—ËŒ+¤õõ®”Î7¤sU¾‰«U\D!®•Çuyø®—Çzdä† f`£Šoq#61 7ÉÈÍA.ünˆ[eâm*nWñÝúƒ¸w1wÉJ›eæ÷TÜÀ÷ØÄ°5ˆ{p¯|¼Oæn“Ç€@o’Ö <¶«ØÄq¸(ˆû±SZÈã6ùö`aWã? àQ|Ly\Rñ„Š'LkZ¼<ÒZ{NmÓ’¥5‘¦S6¬ÒWëUq=«Zf[f"¶PÁ”%ÉDÊÖv«O F"šìä79'š Ó>IAvIi«ß’d''Lk0FSº§Ã°–ëqCp“Q=Þª[¦ô½AŸÝm¦,hHZ±*"Ýz:UÕ7úøÒ­h·¹Ú°ªÖ™½U‹;R¶¥Gív³·%±ØûBÏ J\ÍdU7ŠÁT2mE é+˜:ú»‚¼”a׎¸_T2>^ÁP>#š¶ µŽòý{HÏj¶µ–K(´˜áâ¦m3^U›H÷–n›É¿xYZÛ5z½ñl3é,×¥ ì€–ó Ž€Ê"£ÏáI¾Eº"‰h<Ýit*X5†§Iz‘DoÚ& †Þ³p<1!Õè¶±°=cJ$a1¦DÈ;~ßî{éãʶae20¥ÓHÙ5¦eDí¤µ–©2÷º3Š· /)¢„ÞãhÉ”WþX'&•ª´sn£Òƒ&ðŸÓ3(¤¾;Ò]]†ÅĬ¬f/n$bv7Q"LXW’ŒÏEåÒ´=Ê·NÓª£­Ñ§àðQ›’v]2è̌ߗ²¢œM#†MöôZF*etF2iÈ5DeMNÌn[¤GÔÍì Ô<~øzu aZÒñ5ƒu+*jjYÆš5áæ›'¸NÅiDlY^·@Cjd ‰Ø ª}µQ¹§N¨xJÃÓø‘Šg4<‹çLëhµÇs^m_¯ž£p±†ã'~Šç¥õ3ò_l&ì$Ç_¡Ÿc·Š_hxg*(9Ð-#.þRÃKø•Š—5ü¯hx¯)(=à=®áuüFÃØÍ3Zo*~«áw–UÞÔÐ%èg㳤Äpâ*–´Æ ›nügjøƒðwÐAÁ¼ÙEV†ÁôZËJZÅkºe±±‡Æboix»Å¥?jxÒ°J\šÿ1¶)K®» §˜]kÿhŽ]ÜÅ1SêMгÂ\ôÏÞ•½§á}| á/BÅ_åñ7¡çï’Áà3'Û@*þ©á_ø·†ÿà¿>ÄGªMQ”,UÉÖŸâWpè>7•‚PKBΚbªÆK[]B¦äEe”€’«à„w )¨Ú7žQ¦EþXõSÚÆyi=žs$-íXÅݹ°´}9Ä“±ÍGiHÆj€Yósc†ôc²àÜ’Ò ‹ò{wkPŽÞÛk$h]1ÑÉ8nÈݵR»¹XfÑÈ/){òVLØäˆùD¬} ìäº.oJ£#÷$Ë•™èJî­–£OÁ±7`Lî ìÌMhϪë~àÆïÖSI˨=¬×)çªÄ|æ%xÐxƒcãñØauáê£ÊuÉÿq)äÈT‰êž Ó÷:iéNYô¶žœ•Ô þN£#MúýÑx2ÅZ&ƒŒ•V”b2ΫS³sÊ”Mz$9#Ë»­äÑ«{ë2Ý Ë^³ýÞI„Ƀ&Às×ÈóS“è [oaƒyÉãq›Œ¯ö|Ìþå1îni¦–2 k,SNä£ÏLI¾µ¸ž²yv™²/e«4ëÓî]1zÎ剟Ê<23îã‹Vþ’•Õ¥¼uø=t•ýHDX›Æmè$Yä¥`Üõ†[ȹÅ3±‘ýE^Ýr”áQåvóÅš9†¤ÈT'Õ ¢ßÝJÈ­ÝÖ-;µÂ”± ¯åí¾#ø?©@ÿ-A Ô:=?¼|°­rŒW>#ì-â¸Âw^Ù ”²Â¬mÈÞêÔó9•yð¡ATátö4w:ÐÈ·@5yP§Ñ*Kf”•Â71Ö|:RNëã¬éî|KZKÑL4gàLõ µ Ð_>€œ ð+ e壠 é prq ¡«‘ÏÈ÷ÂŒÀ8 N,sœ%¼²…V9üölÙÔ´ "·08@>  `JáT·=íäï@ùj؉Â6™Pv²yI¦g7Vì@‘‚ 8žé ÿXÎh*s&Ѻ¼r3ù íĬ6¾?1ˆCø:TÄaý=)‹¾ÅY(ÂÂÑû± q'f·íñ먿æ°Ew*1wWØG͵ñ‡ý!ß®­dù \…kp$*q ®÷Þ÷3Їñž`ÿz<àô] ÛI–d°œ¤T’°E¤¬š™=ùhaÖ‘²óÙº„7µ+ »‹èQ\‹‘V`=Úˆv6Ñuâwq…(žB7žé¤â4Ê®s°œÏl"ס•VY´[Ÿak=}jsZOyc~I‹—¼JÜLW2yg±çã{6gòÖ覯!ÀDõe•!ߎހ²ò ¶Cþ¢œ:€’~d’I"ódn^a¹´¨pI „Õ­ŽÎC8¥G³¡¤¹Öpü|~Y‡Ãð®ÿE'ƳèÁad°çÐú2"¼zO×Òú[YNKG‡³'êÉU#áztÂpâ®'‡1g½z²h’=‰;‡–G2rŸ\NÝȳÚÙËç·áŠo;*ÃÆ5ïÌ’€ªHƒ¼ ùðÉk7·UºÇ†sC¹CàcóWqOi2<E?Î)ðá@8¨„µ8®M¨8>¬U†¸#Nh;!o#ÙÑBÁì"òô©þÞ QŠ 87¤ á(§ÓCÂSú1#½"¤¡€}f&,âߎ…ý˜ÎÍÜ…‹¼´œä¦eNÎÂVrp!.ƥ䡙Ü_Éȯà ¸‘ý+©J騳Gq"æRòv³wg€ú P¿s8o.®¦ª®Á±´_@õ-"Êl¤271k7ýVêívf¡çáظ k±™kn¡÷Ò‡íôb.Ç¢m!ʽDØNO¶á&î…[ð îÆ.܃GèÇôä1<Ž!þñyÒQË-ÌÚåžÒ§ÐÂmMãÚ-8qª¬“%­ –´fVÃ$zYÅãóØÏ%V1,¤Õ(m˜~ºJ¦R]¥ cµ§´a*×UÚ0ú<¥ (mØSZ¯0Òf¾Gknõî͹ª(|³Ò4¦6±¨ö…|^-¬‘–[ Y™˜ý7Û)PêTFnPÍtÆ¥0JC*£¼½Ò¸½ru•Nm;9ìëG8ìÛgE ùœ’˜C3­Ò+‰j(Ç)‰1›`0YÜp)~alb2ng?Å®)‰­(âó9öžç ófb7ç¼Èãð%„ñ27ò«´“¨o÷]"¿Ã½G”×IýDz“Èoû]¢¿C½O }0R*æQzRýD>Ý)‡>Ú»2ða¶S}´sÇT!|$Ñ›ñyç,ƒ#Éf缓Ei%½·D*,MÏÿPK ‹5xÓv;“4org/codehaus/plexus/archiver/zip/AsiExtraField.class•W[tTWþværfN! $4@[“ J[  ‰%7 P  áÖœLN&&3Ó334ÁŠXE[ë±J¡Zkk‹½h … 6¬X—o}òAu-ß\êZ>YßÔï?g2“ ƒÒ‡ù÷Þÿþï·}æ£06â–Ž‡1ÆC8-à‹žáK²žðe gu„<š¯xFÃWu®_ÓÉN‡¯Ëñ²{VvÏÉŽßÄó¾¥£ßpNî¾#à»"ð¼€ï ¸ ¸ï xADþ@v?Ž‹.hxQÃ%÷b:„˲¾¤ãGøq/Ëá':ÖãQyQÃOEÀ«"à5?ógé'^_×ð††+~®áM o)„wõíèíÛÿÄ@¯Bë`Ò‰µE“cÖ„™M·¥âÖÓ‰Nا,§í´j;l§†&’N¦CÁ?IB5 àËÚc„1þ¸8©P;xÂQLêÉíÚÓoÇ­^3cZ‰XfB¡=V‚Šâ½¶cE3Igzþny)“üèCsË‘n.cî©Böa‰íÇ1§BÑ +z2d0w3\Ž•ÎÆ3 +Êhò†ÓVæ`ÚsÌß< Q ÇŠ(Æ™©ÔI´ÓIfS‚Òc KxÃ蟴ÆÄN&®ùö»™J˜“¼^[L¾œ¡,SA;=è Õ³&4*ÙãfZ‹Íï â ®ˆé‡EM¥^€¬O™NÚêw’“‹"I1ÍGº\_ƒÉñqJâ&žü’s˜è)ÄÑ—™LQc™ñ"RKXOyvè}SQ+•±“‰´À)´é¯BÛ£ñ|¹êCɬµ<§k•×&ñß@ú t`»N]Ø®Àæý,5°Ló²2a ½A»BË]—¤QD ¼Ï‰ÚÃöbwpÔ@ G5üÂÀ/ñ®BóÝHL&b"æ=GDÂqWÅ™kx_¤^7ð¸hŠŠr;K8n(¬\ìÅ¢Éì•Fwv|ÜrjFͱ&úß4_ìMr˜ÑpÓÀ¯ð“Õd'ÒökSrœw³âmFªKE žVNÀ60.¡8&hÓ'‹äî=Áò»®·E÷ýO†ƒ {j(cfæëÀÕÕO&,o¶…ØÝÓ+ím™ñ¬µØßiF„•6eRD“)öGda³z†w ”A¹âoÞ-K€#Åí—lŠ3ˆ:ì%¹`«ÊÄ‘ÎrËL¥¬ýÚPn"܆òrËÖ¯*ÞHi±¥3É]Ö”G%óewÙ‰Ê$½=ÖòE{˜ÛlÅ6hX)í BºË];ókW~e¹+ÛÌ]ÙS\—CISîä)E‰lHD"3Pß Tð ðGj7”­™EhxáЯº²v®ãcÖ¿ŸšÂ”X…=X†ChÀ1¬a7´°þ ÝîjÀn<ÆUatžöM\åÎ •ïä]Ü“ xýÞ½ÞNbånÙ,ŒáêªHKr¨š™ÁÒRQO/µ¬ j_AT[ÞŒ…T—2?¿€9P`fë{Ìj±Aâ® s5ÚØ­Ð ØÄs-Éa™¯Õ¸‰åy÷Ì¢nxÃܹÔç°Â×Ðx—gøÔO\€÷_˜â¢¬.MA®l †q8ÏÜEê ¡Ž4²v‹ª»ØÉóWB½G•— ;iQÌ›!×á{§ÄÊr¬¼!þRC~Ož?ÜÁ®¼!ÇËâ/5äOe y#yæ½ ´¨¨´J G(£"‡5lï¢QUò¥Œ¿’ÿo¨ÁßV[0¬&‡ˆ§µŒaÁÒTý«¬a|óÌíyæj¯î¹ÍþÒH+µ@NuAÎx!ÒÝyõH¤±Ô17Úªae,pJ/8¥»S숕vE©1ueâãz[´eVÞ9ÚêTjÔÚ;D[Fµr¢°®¼aÒëÚ%Èœkº|‡ Eع¼`çIÄI%£êé*‰ûXC몬ÍaÝVÿjYíÁÖUÚHCÐÇÓâÉÒ,Ž–­Z½¿^{áÚf±~x÷òQ¸¯öþ>]￉f®µ-rмC|VZ-cŒ’g°óqKX´7žúg©ZxÕAD <&4ñ7ès—axoÒ¬æÞ ûˆkg±q¸AŸÁ&©öºpÍ£83_Y9´“ÃÅ\ìgt ¶ JmEø:õZT;6«t¨íèQ]Hª^œQ}8¯úñªÚ‰ëj€Ÿ`áC5ˆßª}øzTûñ5„ªnäòdt ùü8?e7É’«pw î|¬‡¿ ÉèçÞ?óbn:øI÷$qÎ` éÂ8Ï¢—ªsÃ}òÖò£3_Ó”%}¼¾ö3R—®ÝÜyÅ-”†¢sUcÍÒÿœ9[,—5Tu >uºÁe¢Zb…C£wiòÄœYŸïo²®3!œ*|GÜïR³Ì%o5Ù_¬÷QyÕ-ÀâtØFø”kÅÔPK ‹5Ò:zþÏ66org/codehaus/plexus/archiver/zip/ExtraFieldUtils.class­Wi{×~Ç’<²<@0ØÄ D€[Þa fIÁ@qkLÁ,5Kë±4HòŒ:íÒRÚ&iº¤ ÍÖ”IÝ%%f‰0 éBBºåoô?ôiúÞ+Ë‹¬0O¿Ü;sîYßsÎ=3Ÿý÷æáûE?ÞjÞËoT ¨ø­‚YfO"nô–«»¦m%”¶ÕëM)׌7mד1WïŽë¬ Çõd²Úv¢Õa;bÄôT²š¢½Üt'3Nu¿™¨Þ”4·öºŽ¾Í4â³3êâºmj¨ª¨£Ïrc†k†®7-ÓݨÀSS»O·…ºéV›ií©žnÃÙ#ì+(i³Ãz|Ÿî˜â}”èuc&]^ÑF¯š²^5e¼jÊzÕD¯šÆ]ÚËÀ„~LjšI×pÌ­™â¤ð¥ Ÿ&ž~¸îfb\=5„ׂ\•-zÒÝÚ6gÁeRû¢ \­VÒÕ-×”‰˜È9‰)7¢z|S8l$“™Ú|"ìºkL„ÿpÍ#ùß³w]íôcõÇ =b8­4U7 Kô7¥`íÃ%öZ޶£–ÙoD&ŒÏð%t'I8WÕÜ\{púQxLÒ…qʺ1úÖÊÒŠè®Î,ÜÌ÷ã¢þÆÛbŸvm‡r>fÌq)éÉTœËÃxYáD YÞÛ̸±…v·HÛŒfºÚj¥»&=‹ }Œ,™êQP.M´°Ë=¾Åt¤ÿ}+…™¾V°dbt¸ŽiEYS»· wùäš”í¶»ÍNY‘I%Þûôpµ²lÖ‡ã£}è°SNØ¡³sú´QÈjøŽ)>Ì"›nœ¥Ý–L[Œ#&DZ¿×ð| áKø£X6i¸„4Nf ë°^à .k¸‚« ªÔë *Æw§Øá=Ƅò\x6§Ž1 ×ðƒFl#i-sƒcu0Ç—kHk¸Ž&!”ÿ2QðdÐL-Û êÁ°mñ¾p ,€ÉÒyo‹— á݉ é¤ë¤D!eU&RÝq3¬a7xƒç@¢`Íc6»†›æå–Û jùÂɾ¥á6F²ÙŠÆ2;álÑöAÙÖLEPwƒà;‹"JÓ ¦¬c–} ±zwa·†»øXßðg Áˆ†¿âž†ODu|Šû*>Óð7ü]Ã?p_Ã?ù_¸¯`Nž9«a6fê±1Xc&°Æl`ôºqÒ”ÕpÇ4|Û9¯¦; ³ÈÊTíì>Jl¨ ¯]ï1²^ÊÃ=1Ç>‘¼¨áî`mèQÑ´5µùz¼4ß}±Zl'2åž"œ±OábØ>6Zjm4e‡‹'‘bÏÖLÕ<•’×|¡žH-×çÑ15ÚLË®ËaÏs‡æ°û];C¡Ë XÁÒ‡˜Ç'9ŸÆiMyæ ƒ²U<øivŸOòŒs¯²¦õ—ÉA»Í±{&Í+ŒP(5ôHdkæ¦Ê©l<â3/iŠ+ØNôµZ®MÍvyYËèá$cm£SZ¸¾¹Ï5XÁÞ9ø&rG?í8ùŠtÇÑû„¡<δæ!É0ææšÍÄYNrîÍ:4/Ï™ÂB~q7(@@L>ùEŸCÁs€|SÄ0⺙oMÜî¾Ðu^–b-\ %q¶pÕ2 ØŠmÜ‹Dç ÿ^òV( õ.ümWPTwFŸFñþìoÆŒÎaÌ켎Y¤=Q2;’4æ\ÇÜ;SÎÊpöäøÙeþ-e(§gb_…R¹ï¼QïC ÁOÊèm9¨`ø«öjrìb,»GZe„+Ÿ@­ø #«à¿ÒWÑÆ§Õ|Úv>í–O;%¾F8¼ŽiQ ÑË]xµ”Ðßò»¨h«»‡âº 0ƒÃ¨d(U;êy8¿~p ç " ìA1öbö3‚N<…¨ÆAéY0£ä¹*¥m…<*%öQË~™­b0}òÒ#åcº?Æš~ªÍ³¡*4¢F.âÕa;CU×±°=óäëâs‹V{«Ô®RoWhä=,ÆâlJª ~UKJ–f³°ìNÃjš}å¾”¹Z/êÊ}i„°°Ù'¤Å›W°æ¼V•zÕ®® _8tèÜÃ-úÛð·×5¤Qß0(cN ɈÅþâXÖ0×@”™Œ1ÿ&Jp Uˆ£žy^›Ü.#Åñuœr§¨¡—oýÔpgð<^à x§ñ)çIù/á>^æ}Eæâñ=Œ9²J|”œ!kÃG体OUÔ$2å¡Í83xˆýÁ Pê²ñ>Å7ÑÅìp:O ¨_E7”yôòl1­D`d:L©Íâi54[/Sxó*CU+n A“ÖµþL2ðÅ¿+oùwx6zV{K½‚gW¨Ô»B¶bžúù¾!4eH c¤®q"?E2IU»Ê}#¤ÏçÆ4m<ã¥öKJ¶™¼NÇÎ2ð7X’gyç¼…%xËÞr¼K¸Î±Ï3 ø.¢ôSx_¸!«,ü#€Ó%<>6í^I&dayéœd2Œ%\»ÉW@$xe>P˨åù€Z1] >¤cƒê $P×ÊG "M †ÈMu‹0Ü&P#*M îþŸò‹O¶Ñ›ªïâÎ. Aä=ë鬓é»#o7/uLšuÒ›2Ò yãÆÙM‚ZÂ{Ðæž*‰±‘Ò"õC4ö3lê•WQt«>aw¯šΫX5€BR†ð¬8Š45S^tââ®Ã"¶B8ÎÿPK ‹5÷ß~=org/codehaus/plexus/archiver/zip/UnrecognizedExtraField.classUÛNQ]§^h¡•+Åk/@QQäVmlôK‚ći{h§f:ÊWi¢`ÔðèƒeÜg:”:Ô¾œ}.{¯½Öšs2¿~;‚ãx€ŒL‚˜Ã=î áXLhx(†GLã±˜Íø0ëÜó þ WJÜÈ•ÒyÝ(gŠz‰W”F¦®ñ= ŠQ¬¨»ÜÈì«õÌ;µ¾RÑ sŽ¡GÓ‹Šö\1׿"C°Èk¦q¼åWkª™ep'’ë ÒÁ2ôåÕ³S-pcU)h´Î ˜uÅPÅÚޔ̊Ú`˜9›ÐZÍàE½\S÷yéŵ_V¹V"zÁ7_µ¥M$. Mð –;ËÇÉ y3@Í-]˪ƅ-O<‰ÍEËŒ’µŒ–Yy^+›*w´Ê¥DRøÃõÑAd²+ú„݈¸D¨&û"×ÉÑx´Mdš¼}z¿CÚ 2î£Cxœ„;õ¶ Ñë¢Æí,~ÙUÍ­îj¼N5«T³v†šÛm5¯m51"âý‰~[”ו:€ï„Ü%J6àÃ&]÷$cm’wÚ —l…¡°_èw°D@[€¡6à]$lÀéòPŒÄøg¥ôpLrÇ¿¢'“81!Lÿ(à¥jÔ JLkðT«¸mFÄ6CÌ’HYVEèN¦ˆ”‡žÄJt>n!OüPK ‹5‰~°Ãàh2org/codehaus/plexus/archiver/zip/ZipArchiver.class;õo×>f]. ÅËÎÀÇÎÀÏÈÀf“™—YbÇÈÀ¬¡ÆÈÀ✟’ÊÈÀï“™—êWš›”Z’˜”òÉONÌ K,Êñ¡‚,%™ÅŒ z>ùEéúÉ@‰¥Åú9©@*±(9#³,µH¿*³@?*³ÀÊ·fdà Î/-JNuË"€$§—•X–ÈÃÀÂÀÊÈ CŠ¡Œ &•;&—%&— icPd`†0!Ð^ Éäéƒù ¬ZÛ7L ì@’ ,(ÎÀ$y 8¸ÀÚ¹ÁªxPK ‹5f˜¢‹:ê /org/codehaus/plexus/archiver/zip/ZipEntry.classX |“×uÿI–dù3~€ æé“ØÆ„GH ¸€±ƒm6Cò‡­ KŽ$'YÓ¬¥KÓ­íúb´Y›fck“G4$$Y²uë¶v]÷Hk÷Êšeí¶®ë#ýŸOŸ?ÉBüŸÏ½ß}œ{ÿsî¹zíϾ7še(€;ðuþƇoÐŒ¿ pø›ìÇ7Kш¿Sò÷JþÁ‡ €×õã[J¾­ä;ºô»JþIÉ÷”|_É?+ù%ÿªäß”ü»’7ÜöÚû’7•ügoá¿tâ‡J~¤ä¿•ü’ÿUòc%ÿ§ä'~ü¿nú©?Óïï*ù¹’7T@ÿB?Þ.õïí·9*P"J\>qkë)à )Ñž7 >ñk¯TIÀ'e¬Æë>1|R@›ä-™ÆC¥B{•ä/UJª}2=€™¡¤Æ/µ™)³t¦ŽÖ‘Ù™#s}2/€™ï“lÁë~©g+×)Yè—ëµmÐ勔ܠäF¿4*—&¿}*%÷Åô”4ûd‰OZاâ-õÉM‚ò­Ýëû;·lïÙ»£·k—@º8Öžˆ§Òáxz 7Ý4ƒ[`8 ;×÷ëÕÑxÚLÆÃ±õét2ºnOGc-f$H®xâáQÓ™‹…ãÃ-}dæÜ´Hbt,i¦RæP_ô~®ªÌ[Õ°ÖÌL™éö)ËzÌôHbH0;oqÒ<ã‰-Ù9eKDnÏŽFñ©lÙ7‡¹ª’’˜Cý‰ÛÌô$WÙ-˜‰…S©ÝРÚ4ÜkØ눧“÷ ªòXµëJr*í»/ž1ÓшÀ»&¦Û5—kÝ4@›´'†¨mEw4nöŽî7“ýáý1ËJ‰H86NFõÛô¤G¢´n¨;‘n‰pçHx<Õ23'Ø„“‘‘è!3ÙB[&E¤5ÙCúµ÷"UÁKx™‰{*âÕ¤4÷<ÆhñÉ€!;e—×ÔÚiŒûdÐ`•³‡ÉñâÌ;äNAma,l?p@ƒ¯ÉYYÏ䑿L=£²>WáÕkAQŸ8PoÈ]²WÉ>†B+?ÃŠÌ Ðs‡p¯ûñ€}Î5áz`Iι_Ñx¨º¬(d5U#†ìÇÄ©°nYðñ>y¥Ç¤ª—ÕFS|×®µK¶L›}ùò{se6¡†µÖL¥ÂÃöõPlð#•÷Q:œ+IKS¹¾¦óþ¨2Òm÷8f'ûÔdÏ«œµdó¦ìŽع–¾#âspßA…˜WKÆÂIM+õ.{UAUöJ]‹Ù±@ž-²_µ²]ýY÷h$1vK¸Ò¸§ø-¯n7ÃCf²‹&jæ=w-—~©™•a½%EWÑ*ôªÒÅ7ï«ÍŠª´;{kwäά-²ÌªN+ì2$oé¨É œR+èŸå–k.®´¶¨³VYž¥Äöð@¶@®, {:ÆŒ¥vFÓ#WxçPÑYWz ÑHQ&šƒä|k틹¹˜Wª5¦¦)>§”9ùOoxlŒB ¿Ã•žŸÙV,/"OÁr:1i#OÿàÖÁº"çí¹¬„hºò{סûùRð>œ!˜ìàÛÝ…a~ä}GùÇ Þê´[^óVËÝjy©[-ïu¶½ØÎÖôk}3³õk&&ß_±~AYÀ«Ò÷ñë~¸¹Cgá ºÏÀ§Ä,=ƒÒàyÏ¢ì Œ œA¹’i'­"]HÎ@+JÐijB¨@3f …'Ü„ù0GWãW¹¢6{ÞX-¹Å’ã0ç(‡l‡¥œ; ePq•¢èÚÊ ª´­Î`º¶32¨aS»¾¾ôSss}3ù=k•§Ö£#¥ÁZOuš½Ê[뵇¼ÌáÐÜVÿ*‚uþs˜—Áüã”!ƒ9 Ž´‹š7¡œ:WSç™Ôy!u¾‘:/Æf¬@7Ö ±…+·’nG?ÿïÆ„±“ž¤wÓ[wÐþ{Éw>HT|”¨ø8g?Mß«ÝÚàU‹8v;ÂU¿F«u‘÷Ãäà"5ø{þ5áR/¹ÕâÃøuJøÜãáúX–þhÖÒ<'ëñùêñz5Ùu,Ôöú ´]DÅs×BzK‘¦©ñ8jˆ®yÄWγó çSÂð´ÜÉ-Am¬ÝÓY"¬¾á]‚íA*Ø„2¾’†¯¡áëiøE4|G¨HFö[$Ñ¢3{< XÅã‘àYÜxÝ!º¶)ƒ ¶ #mFÚ*Œ‚9…Fü90 Y0 æÃ(”…Qð,¾ˆUQ^j_mÕ¾Úª}C'ºå„%ªú´ÙVr€*ÞSßUÒz³èµzÚ¯‘j4S‘åø$n!>Úˆ…O/=ÁHÿ#ëIrþ]"åKšü4à',5ƒY µávCÛ°ÒÆÐÃÿ$>eÉ÷ˆcJÖö¶'[¬èJ¨«ï)ÇG^k0“ç‡g3ßöæ6®VØxƒs€œ‡ÖèEîy1\^\^µÒ£èÓÂÄåRút ¯„OG7Ü– ˆ¿BA¾Æ=_¿¢ £– ;J Ó~. Ûs*+'æTá¡Áç9û!º|ÉQø++­¯j”y‰úÜÓ,1¾…Eøqüý¼CCΡ!ü¶­ýç7¬²‚ Œ‚«²ò&ß÷}¨ÐoæY¡Ü±Âç‹úÒ_¸ù§ELè!ÀŠúÒ_`Bq£DÿøúWVP4ƒ×¹ZÊ£B:–Ú‰§ñTÁÇËìq‚g”¢'Y\hB?…Ó¶zg9£;7»×ºÛæÃÊyŽVAíÍËS*d)Un·zÖvS¥¯pWÙy¬æE°æÂT•‚´(d=\²6߈ tb™ÜFµ6 U6QµnªÕKµ¶Xê)Š7[ê(¬6;êl¶”à›•7©*¡)„Ïqû~LØ0¬ †&k€Êžóh¤M³ON?þʱÉr‹?A¨àyì£[ç±ÓM«œt – ÅWᑯ2Ø¿ÁÑ¿¶”üÚ/PK ‹5ë¢ïšÁ4org/codehaus/plexus/archiver/zip/ZipExtraField.classÍNÂ@€g°R FŸ€`ÀBc$ä´¶“vÉÚm–…̓àC§XC4ÜdòÍîÌ·™Ý÷×7؃œûÐñá ¡’»#™„A?˜›ŠØ$”ÉÕRšJ†´q¦ÖdÅ‹*Ä£*f™±î¡ÇöÔÄR‡JÓX:9¥•ÿ©{wú}[P3ëé3 »{о­0hÞ¡5ÿ©»åŸ{‘üÀ¸oûìfoó}…ÃÎDžù—ÔÀÅG(Sñ2n)ßÿ,â,§5×1É Lq9nÁåý¸Æ”ù€"ãX×#“S¢1œW.t)0Ä0éd—0(ì£]ìƒ {aR»­þì3Z'ûD&=}Kú¯‹G¬–cZ{'ù&³°®èãð[ô/§ÈgR/ÓúsL(þiý‰@‰G±T/­wXŸÃ'P>¶•ïR_§Û†ÅÓDi>† Ï`‚O ˧pžç0ͧ1Ï/â2Ï£È]’¢€M>‡€Ï#äóE|Å/)y–ä`÷ø®w1%Ù..’Ð\EoR¤a ÈS¤Ÿ˜¥KêÎßeË/S. œöϬٲ _ÁWO\Iª×“£ ì&T.½AúCŒƒÿ PK ‹5VΈ[HŸ.org/codehaus/plexus/archiver/zip/ZipFile.class¥X t\Õyþ~ÍŒfѳ, my“oÒHBDZÉ,#YÆ26²]ÌXó$=š³Û´˜²µihCÚ“fÇ8xD"J1¡Mš¦i(iÓ4]iÓt_~ÿ§ÑHšäˆS£ûîýï½ÿ¾Ýyí/½Zäüˆâk¯xñõa—°ñªß ¯êök:ü®¿§Ã7½ø–¿€…Wôâ·uø]~G¯ü¡ßõâ¼øc/¾@ß ¯0oð'xSg?ðâO½ø³ã‡,Ÿ{ñ#/þ"€¥xÕ‡ë÷/uø+þ:€ze,Š¿Q:ëÅßÂ[~ü=þAg?Q dúhÅOuø'…ü³’û=ðS½ü¯üþ]aÿ¡°ÿÔÙéðß:üÞø_ÞV¦ßQ9Þå5a":”‘º¸xXÜ:óxÿ›««rr#^"Ÿ.ý> ŒïW)šŠ ±d–•ãðÊé[Šyö8¨, U2g|uJWÕã«ÙººÂ+5Òk‡$蕹™'ó½Rë•‚ê¶d6µ£‰‘l¦7“²#ë3‘°SíñH:m§^;‘IÅtì:9iÍfbñÖí‘ôP&r8noà‰DdØîŽŒ*¢‘L¤g` mgxÞg'ú“ÑXb„òWã‘Ä`+é¦÷"©þ¡Ø1[° ¿K¶îŽ$¢Éá­ýýv:ŽåÑ·‡·êêØ)NÁ¬öd"‰$2{#ñ¬í¢œ!»;wêèißv¨·s‡ç’f{xÛ¡®žö­{zvê ‡{;öèN•`I1æ!‡ÂÜ wýÖî¥rÝží$´CP¾1–ˆe6 æ4¸35î¸Û“Qò=»+–°wf‡Û©=ª 4Ù‰ï¤bºv€îÌPŒúu%Sƒ­T‰=ɦ[Gâöq~%¤ZOÆFZ÷ÇF©e@P9™0]«ãx¿=’‰Q^YH‹4L׫aO-"XUb»ô…eSd,}ªbÐÎtlZÓÐXʪžþx2M⮽0Wª¿a\¨#‘¶S•†×|ÎÁ‚Í¥¤š‘î "«$²I>ÝÖðî7tQ„ƒXËNR¬¦÷Ĉ‡®šÊªŠ$êJ=¹«O\;cŸX>=V‰eÑHr$dìp*9Ü®¡‰o‹¥ìþLRUéJÐfUšjîŽDí¶3•¡w(™ÊDÅ©ï¤CuÙ êã¤a¦þäð0Iæá㧨§mŒZg“<ô Ñ$éØ`"’ɦÈAFÁEÀLcÂQÙ‚‘d:¦þ²53]Tw6•¢ÆTMŒŸýÿ@4Ÿx7e§“ñc¶‰OÕçv›ÚHmcÂb¬'Sr˜Ú2†cv,‚¹ ÚJ§+kÏÊ‚ƒß˜HgGFhg;:Ø…£î{8o«@Ä$äå«W¯„g&R>Wþ¼Ä^vœØü½'™!;ë'™Þd6Õoë6˃ãJÅ`!¤…“8ËâL¥°3:|LpE‰òda1 Gt8ªCLóWÔxÊÂýø˜…'uø(Y„OX²X–gût›É/ØðÿˆtKê¤Þ’¥pRÞç•e–,—–¬TÁ—N®h:šR“2àÜÒgÝ*"“¨(ã¾0~¿È›Ú²6nEX¹­ÏNxR=C„á¦)§~ØÎ %£ä½QB:4YÒŒ{-œWͶȕ‚†™ˆ²y¥WZ-YG,y¿\5C‹˜L¦·×XrµjíYkÉ8à xÎ+ë,ù ªw½lМmÔÙµ:lÒa³žßÂqp¹UÚ,|_²¤Î'Û(tHØ’ët¹]tê¹ÊæõÒeI·¬`®vøª¥ëÉL}¤~ç®zháãø„WvZÒ#»,¹Av[Ò«âî±äFÙkÉ>¹IÙìc1™j e‹énùL¢Ú+,9ˆ{g¨÷|PQì9|„w<Ø´Föy‰û¨}Bsû &Ó•Åu<oCãts@œÖ5ýœiØ|Í!‚vÇ‹ìhoL+oë{È;;vhó1wºCçcSse·qLCm¥/nËk!iد—W7”lºJÇ‘éÊ###¶Ÿæ’Lé¢ü :ή/“Ïë~² gãq²éѯ|ÎD)=ÙLQ.0uoçu䨾5‰§§t’ã¶¢O•“J§’ÑþÌ1QKå.J=L «ºÌ¾?=¡ÒÊÉuŒy9_¼éñ™»Áبœ€ö“ÿœôt“ëéü,˜ÖŽŽŠNDâ[3TÇᬩL gižwQ\ÁºRÍÐ'•t¾Qæó3úhlÄi_TlúM Ïu¾Ó)g1̰Ùq§mû(uæLTwqîæ÷´A{ÆA&LÏW†Æàêk…»öc˜E'°W°Wân =û=ö]„¹&ao.ý4±Ÿ1Øëó§§a×™*·l ³Gá17áQxH«¼oÞKðMLýÓ@H.¡"Ԭ쾦êY£¨¼áåÙü¯šà/D_!ÅšcMÔƒ¸‰ðO¡¿ŠkñilÅ}Üýµ"þÃþÃŽîu6ÿà^ŽÊ+¿zÊz äË ðƒÚÊpP‹6{ŽðkË>^–æLUïãt'ŠpøŬ°œ;¬\U„Í—CõTnž+IðIü²s O+U‹÷ýM9\ñÔLÅñÕ"W² ʲc þ)G¶w7¿Yb ä±»›/Ã#Æ0·/ÔœÃ<‚ç¢v'¿ žàÙÕ†Zþ¯Öp ,l¹Ð’ÃÂ1,êkÃâ>÷(–Œ¢ŽHêûư”Žñ¾êe9,W9¬Èaå(V}¹ÀöJ†=ðM²ø-TáÛ¨Æw° ߥ°ßC^§ußÀ>¼iÄ å.ˆ•¥Ÿ|šBYŒÑûè'e¼¹¿ŽÏÐWî2*)£ ê9Þ?nÒ²·É´E½>Ewl¨ ½àëò¾àëVûRàÆ1„úGM;[.‚ë–ûåÝ"﮵î1ÔPœ+×{ÆÐÚפ¤«×—Ÿv—ÕzjËsx•ïdÕì;r¸ê´Û][t†[9¬1ç¿^ý<®ÉampÃsX—ÃK×—n p¥µ^š ñMƒø qø™ÄäÆ)L×’„z¬nû&mŽbS›÷©ÂõUTm€šªõ„ô»%‡­ê©µžÚtؼOéúíû‚~^©0W*œ+æÊ¶i¦8ÿNv"î^d@ï0—²^Hf‰ Aqc‰xÐ ^¬Öˆ¥ÛÅÂõ2 d6n–9‘j¤¥†oÇ >*óð9™s²e!.Éb\–%xMêñº,Å›² oÉrü„/«·eC§Q\Ò$Ai–ù|­„¤•¯–«ØÕ_Íý¶ÝkÅ–u’áãá>NóÕðq>>ÃçÂ9>“6y’Ïuã“tÀ5r Ÿer“ÓaãÆòÁoà7鶯3>Ç]/ޢĿřoó%úg~¹iòD@N3e~ž³ uh',üò~›0¡nÎá!ÎʨOâa<â„E>3•éÓ+rŠÔ½Üy9Ÿç:j¶·è¼.‡íљÎù­ë׺]k=AwÙ8t·¸ÖœÃÆÂnšŠÊ ð»×zÎc¡¡°ÒìÛ GοûPÐóYÌÒüQÝ¥¹Â«Aw„ÇÔÓÊÛ0âu¢~R[NG1κ}ÂU4EÉ ,BİPŽ`¹Å*‰£E¸FF°InEXÒè‘ öÑ$·Èm’8*'‘ ZNʸK>„»åÃt™Ó¸OîÆƒr‘³xF>‚—ä^cÒM4Õç˜ÀÂ(« ÇBÖχi–Óxƒ¯¢‰céðÐ ‹Y>äÝb³Ñ=;ÜÍ%È÷á•7P%?Äbù³Ê Ü,¡ Çð‚éB…Âï˜L4®èzâE|Ù᫸5“©Ì¦I­ÙW ¯¤exÉŒ/cÐ4b|¸ð1€²ÿPK ‹5¦NeîÕñ.org/codehaus/plexus/archiver/zip/ZipLong.classRÏOQþ¶»Ý-k-Kù!"ŠÖ_í®°@Õ J°¢DÒ($ÆmYÚ%k[ûƒ &öDBâÉÄW^0ÑD%1ÆèŃ”8ïíÚÖz±Iß¾ùfæ›ofÞÏ_Ÿ¿BÄ(®ªÐ0Ö…L•Žñ èwH‘"»sˆ¡þåB~,kRARÁeÁ-Ë­Û„Eò´Stj3¤øb"CŸTi\Ýi§h/ÕeíÊŠ•u ‰¦K9ËÍX‡Ù>(Õ NU€ž.UòfŽ2 V½j–]{›>V%Wp¶ìŠùÔ)›«N9]*槨z|mŽU fŸÔlJ¬Í‘ *—66ªvÄ-åíÚœ%Å<®bWënÍse¼6Äx‚5b?®[.EöÇÓ›Ö–eºV1oÞÎnÚ¹ÚTb•K¬‰\DU°ª¯m¢¢²êÝR½’³çÖbØW>Æ2ÃèÕ0¢èe·SâÿÛxçp^€ÖY_@o J¹¥¢íM–”d0A[Ó  ‡þVl™•î§s€¬yZ>­ª~AùˆÀ{²8Fg„{.BB]H`¬òQ4Žcˆ¿•³ œó„Ï9Ky,JÑ ñb‹Påð$d$ÛÈ”&™‚aœôÉNùd¯)šÉXæaùaRÜÞéƒÔ ±úýÃAµí¨ü|Çj¡í¨ò˜ìÁ¡´d Q `Šúœ¦¹\ƒŽêawpË<í hÊ\öe²Ûyt?ƒ˜/ø±±¶RÊ—PÚu*Û‡Pc÷åŠ!y†ÚÐBϘôìpCÓ¸-{¶Ôйý®CâI\¤eÞ¤riZî-ÜÀRÛ$S¾D‰ÄŸõ'I¯Æfr¡¯ú¶I-sð§ {>€ ´}/ù‘²1ãTã;"{ŠûŒÉø†È't¿Úƒ"½$îw¼Ÿ,Ž`G±Ñ&4ÖœeŒÞV‚ ÕaøµÆ}¡|»ûJËmJå¦ÒK}:&Ð=ØEn*ÌÅN*’a° Cd(vQ‰.*`¨‹†yà±€Ód.ƒO†.é—F 0Z†1.ëAuúk2”¹hœCÈ/@¹ ãe˜à¢‰nªð`M’átM–ù Mñ`™Ëüåá“g +çÈðuMÌ4¹³RVÓ宲w®=O­”a¦‡fQ•Ü[-Cž-«óecެj=GuÎp¦€õ6¸hž‹=8—JÝ4_æ ds›š<ÔLßpÓBA^èÁ ºH¾hqÓ"Á, ¾)Ãaq©ÜºL†‹…Å€].C«ó„ýÇCmd ªÝMnêN‚òÅ Y­”!$`—–UD†juÓ2\"G¢¢†˜h î„õÇᢄAZ%ÃRÙZÚÒ\´ÆƒJkek]jËÔ¥"ìe‚¿<…÷ t…à×˰A8¾RVWɰQ®ß$G6 Ý«eø–€×ÈêZ¾-Ãu2\Ÿ¢yÂ^œ€Óž­ÏíÝà¡Y…<\ê¢ïxè&Ú"šˆÔuҡϯn—½ÐÈ^ä8í0‚U¿ÕE7œf8]K(¯D;*Z#mfg «è™kx D[;ƒ«Ìhź`wÅ¢`wžFpµFººøKB~ýŠÀª@E(î¨hŠGƒáÞv†ÌUfˆ@µ„’Î@¬*ÒÕ5c±`$\/;U|Ülã‹9]f¼3€KX š±4ÑD<ªXh¶Æ#Q&ª·F[ …Y[ÂTÕ‚ª3& G«£ÁxÜ 3Í:Bn[ hŠ¢Ìá€P¤5ªÎ Ü­míí1“—þ¯$u}DIÅßÕ›áŽx'Á±¨fA#A[<‹…­·WDõäqN Ö,™BÀ óU¬"¦Íl' é%LµÙ ÄM%íòУK¬cÁHÅ‚@¸-Ò5³µ••9;h­®™]?³¹¦šÐ¿*ŽÅáøÂ@(aêâ¬Þ¦æÆ5Õ™¬Ÿ=gYSíùŒ¯®¶®ªÊ]ÓXe#êÆ¦e͵ 5ËjçñáÊ`8ŸA(.KóÒ˜ˆw'âls3Ð5mÜBVJë‘0°>6ç%º–›Ñf\Ì)Xˆ¶‘Žxgu5ù+Y Ç]¬–H‚WÔ7+„¼ “JIœ3›Ñ´mx«¶±fM«Ùg§äoHXj gz~Mð¤2Þ`¬É4WZBèeãØƒû±ÙkÒ¦-,;9$„ƒ~Ù§ ÊÆõ99í¬èX§¢ÌßP/l Ebf¦ŽXpp ¬âÉŇª$, –ž¹&n›Xö7„³\¤ UËQ• l7õV;ÊjåL.cìXuJ¸ e‹gÕª]ZÎÜGì¸Ê ÙâTÌóÜJˆX®6ËÅYÀk¢£üC”=Ç ´‰•á@—|ÅE„Aꔄpµk»9#°ý¶J²F¯¯%;qteïW£*‘¬­ 3ûz8Á’%X®x¤:kÊ•eY!ɲóü-)ÂWT¼½‰ðÎZ3À¬9»"a¥—U¢¬(N‹‰¨›½cÖÚ¸d¿¢¾H2ž0ù“±i÷üF8–èîŽDãf[ʱ²]Ú­äo”Pq²™ÄHîÊÖÉž¦H"ÚjÎV._Ð+Æ&Ê^ÅkÄ÷c·ð ‡ð}ãA–±wŠ–ãx²ÁúHÒÃc¯}2<½„²¯ª]&OÛ ìGÒÀ${Ü‘N²âÃØÍjì;· ï8‚g ÅSŽáì+§Ê°ÑÕòÍ-ÝJÛR×öÌ>ÃYDäÃluŠj~bàÇø'Š’>¢Û ÚN·Æ}å85ðWüÆ ïÑåƒî”a‡»÷t>pÑÝÝôñKÙÛ‰w |.«]rß½¬?ºOV÷Ëj· µé.2=Õ%·¦ÄKé2Ë!g%ÚÛ%ÔJ—Ú|l^_k§Ùº2–èòµG¢>ÕSø zˆ¾oÐÃxŸ•8Õç¢G z”ãdå râ`õEÚùÔ¼/ ú…A #ƒ„¤¤¹^¤ö´O¸}BøîGû H^_ŠR’tÀÀïñ;ƒž¤;\ô”AOËуb°ºdžÕ˜6á`Ì5/IpJhS—X%Òg5"¾ÕfØŽÄ}?,«/ñ|Vm¨á&$#ëßKÇÀ0¯ø/aý>5è0[ŠÊêøŸºˆýóObÜÏé¨AÇè^·ÿJÓÔÉYA”Ê·<‰§¸¦õLHéä0ð4û?«Ò0èYÖ'~(±õôœxÉó¢ãØ8t\ÀE£?¤— ¼,G^Ü+âk¯øª€¯Éðº ?’WÉë¢7£¿JÂrÑ›½%¾2éoíRÎkEÇxÏMGYêÊjÉ<ªWwÐwµÎUåÏ*b\‹¹‘Í5C¦”Æ™q©ñµÙå»qù NÓ¬,¾ÐÊìüQª*ïçEÍ®È*sf(TcQá<ïd—”bYträYU<·#SpÝVc M³‡ÑÍ‘x TË‘ébMª'è—B«ŒoXµ¼;jmæ(B^‡Wá`ovØ›9înSêãø¾JÐI(+ HóÍ橊= sF’6sÌ1×XçEou}¶=îx$uDhYl•öu8}ç>'ö› †ãªêǸ-k«Zé ´µÙªîÕ’ÙÆ#Ë]VÝ÷fݳ–s»M^k"åÏå@C0’nU´m} íQm¸[Tí ›f[ÌrÝmª¿)è«9M7LìOº:N¬õÁl_ÎVÈܧ;'iŽj¬nIa>×:ÎHÒ‰q{÷@ÖAOGV¿'ÔjE“á@hfœu½<¡ºÁóù“ðz‡øîؾ4Û³¢ê # V$Èj¥-AÎá†$fqÕ [·Ðd¶FÂm±žF²½ePÕܬ¶ÚrE‚<ÐaòSw'vñÛ§šÔIyK?£fniÔÌ]š¶aîaÔÌ ‹š¹gQó>{~ž¹Qó5—HªUóÓjÖ¤QóauŸCš5µ÷¹õà¹Ïò½„çîy†_È‚c¨$~^•­æ—ìùeûÞWÔ\ÌßpÇÆãë ýNþØä/?òçkû¡ûypøõýpú½îýÈñ„«åx™ËK/ûí‡áÏÝþ2 a ïx[r o?ò³Öƒx]À_îG‘Ÿöc0ÃCZ4ÇïG‰?OÃ!¦[*[CW’üˆÇ:äóø!ó6ýÐ/.D!–¢&Æ"„ÓÃYX‡i¸ çáZÔã&\ÄVkeKt²6¬‹+X¾øo0¥"KF¼‰·Ô›¤Éb ˆ&~Â{¬ ÚÌ·9xþÏ5Á[ÃZÊóO;€á=¡¹Iøvãk ²~iñ”ÄÈÝpÌK}0ª…-8z?Æ<ÎmÄvÜÁN}/»ì£<[j²3ŸþÔú¶pÛ±Ü|˸æ›Nàûäà¶žð9ñ¹p”r•úý¬ØÇxþ)þ:Ÿ…ŸñJLr,m’cxï°AþE¹>1τݶ›ž­ŒV³’ßå`Éõ‡Óþ’#›4X]fXm„Ÿã6‘|Z.Íñ—³ú3Þæ,“ÆfyKNšµ™ÂÀ{xߦUa3äd†ïéÅȤ,FœiF¸Ù¶\K]±ÌŸÄXå"L¥¿å1ze)lî¯íÄ¿,K“(;ŠqIø7í>ñËôü7?‰rÓv¯$Æ3¦(‰ ‰ ý,#¨šŽA4>:<ŸI³POU˜OÕ¸j°”f§5P~¥2 3j ‘mœSâhëY'ÓßÇ÷V‡ãqž$&gͧ :‰É^÷ÝXÌë’$ΰ¦)·ÃÃlŸ¹ûħrÆBžµ9‰³3à9 ~]ÀáILµPÓü-–ôLµ2À±·¯ˆ_Ç. 9}ø¶í˜u3Zâ\¹óòg&1ËÚ«âU~uœþ$j3›‡áÖ:‰ó`Î3Ö~­­è&“lÏ&Yw*’µIÌUôÒŸ2"CÔB©³#lIGô‘|‰àõrLâ` )» ×lò$æ%ј…¬ì Y›A2¥BÆÚ˜/y£"ã"߯H6á|¸hÜô xi!ÓEE‹à§Å˜BKp-Å4ºu@ -G€ÚÐIíXC¸”:q­ÀâŽ>†÷(A#é Oh ]I•tUÓ·h.]KMt-¥ë)F7Ð5t#ÝIßáçVz„n¦½´-•3h<†pß š°ÿ&+q3Û½´ ¿f\ÏœñïøÐÏdœDÙaeòâQ¹–ôØ>©ÝÍIÛòµœ$Xئ4o»Ýò°'±0‰ íÓ·cŽåg3måÚÅ-ò/Ê8Íôl|K ŸöޝgD ¯ÛUB—¥#‰EV½±Î,îUù!ï »‘K÷ €ÅN÷±q`Ã<„Yô(šø• ½XII¬¥'±‘b ?北œ”qR~‡è¹¬,w8åãcNõ=•ùÛ¾s§Þ;w¾Ê¹óµSäÎûíÜÉoY›V›QN !¥wÙé\¤.åz›!>@ÙûgÈ£·QDïd]08}Á`՞ɿO_a–éåôf–Û úèÌ>lÓâ§µ«`· ²Œ6~ØŽT.â6IVåC‡%ñM ·ävŽY;­)üR•°†m–\%9Q!—eøšÈÕô;ô {õPBÄhú ésL¦/8MŸ@%³z¾¦áMO×Tæ*ÍûüÛER«ÿd)4µú#¯ô&ý„µdI¶Œqò{¡ã»a¼^š‡Wliö×Ù /Î0—/iáмè¯å¡@ËW ø¬Ó 2¢<òTçªõ¸ö³tñ[fWά¢€•íôÓF"_bm,|ZYV¥ÑG‘úSúÚ™öµ{\ÒÚËÙ´)piga€vNá'.ßËlÂ;ÍŒ°C¸T—áHm•¥;ØÞ Å5|io•.g9ZQ¤™,GG–?¦äÈç‹¿P*Í\ì_ƒì²»ŠµÂth§Týò¬." óBÿ^´Ûy_|¯â|å¶O°Ò˜ôÁoÁ¬Hb¥U8v§áÝ,‘By2Gö"Ô‹ª:"¤3‡¬Ý.{7"»MÐý$.9™)ÑPî›-æî²¼áî„÷"j]˜5íæì)¢–ŸTË{»“1Ö1uc¹*Ú‰Åùø#}òÍgVÍS&ô}À?>…Ä í )ÄaI6 cù­ÍËK8ˆb8M‹Ã¯­ÁTí2ÔqµHÛ€%ÚFti›×®ÆíZlÕ¾Ú Ø§Ýˆg´›q\Û†Ÿj·à]íVüJ» kÛñ;í"íN¤í 1ÚÝtº¶‹¦j÷Rv-Ô ÅÚƒ´R{ˆVkÐeÚ£tö8Ý í¥íÚt?pÒÙ„v¦‚™WªÐTîûÿ,ÁÌÀùüX|ªG6qÈϪéžÖzHv¤|Ì6#wƒ{±ú¤¾äïê`,å¯ÕfT:n^>¯v yÚ³(ÕžÃ$íyÔh/°J£]{1+¸:Òùªã¤zçŸÎ-qô,Ž$‰Ìýº>|ÖvùK½î5Þ‚ §r ÿ‡ÁvÊà©üÏeÿcðð˧:ŠÇáÊצ:üÅ\tSê“bç)®‡6º²µqÅ©´¡Yß[tÞ)âÝ Gáíc÷îbg Ãoîé•OsQ‡ö&<Ú[œâ‚‰ÚO9Ðßá@ÿ9{åûX¡ý’ýC\®}„MÚ¯q“ö1vj¿Å£Úïñ¬ö ^×>Ã{ÚŸðísrj_Pžö*Ѿ$¿öW:K'š¦k4W×éB=‡–è.Z®çR»ÞºAëõþtzíÐ h^H‡ô!ôš^LoëCéc}}®ûèK}„–«Öèc´½Lóéã´ º_EË ËûSÑÂ++!”P¦q½W oðãŸ[8 s忟qÎ쨒†²“Ä[vËdS^iëÜ6ª5‰9íç¯eÑzq·FkàAöGÖÓ7µÔûtG1`Æ “¹˜CŸ~6òôs0DŸ¿^‰ }:¦èçá\}&êôj4é5hÕg£S??«Í ÚŠðã\"Õg5qGªõjsÔ¿—X=(å@þ®ç6窢׮¿fKs±ÓÁËëÖ{Ý—*ÈÉÐ ë½^ Êaè;ë½C’((vÀ–ÌïªãÔ[«/‚W_ŒÁúîR–aŽÞ޽éh׃ˆë+p•¾RibŠúŸŒ®''‰\¹ü¸p©îÄ‹ËÈ­:Î9¨¦\õJk`=y”#8ä_Žló¯áѦ4zƒÃÍVݺ§\€$nÞÓ Ï%6ÚwåÁÄt n³ ±Íæ¸Hn×WÃ¥¯…¡¯G¡~%Šôi±öûÓ•äG¦“üHvÖÝYI~?›’7ÝZ­[®¿\/?Ò£ESOý&¸õ-YÕ#7M8W?»zÈ¿ÌÙ„W3NÚóáV ôʤšþ[v«ÀÜš¹Î’î{,Ýì;P ßƒÓô]YþðôÕÃí«—êô‡ŸÔé»)ÃÎzÝ¢(íÎCî]onqèÍûre 'ÿÍlT¼¥·qÊÜ'?xp»V[À Xg;p¥Ü­€M")©Nƒ‹Ç[¹µÞÑZN×ê0C»sµ‹ØÃæq:‘Ÿy5ôßPK ‹5…üL®o_/org/codehaus/plexus/archiver/zip/ZipShort.classRÍOAÿMw·[–¥~€Ú Ên7ºQŽ & ˜F’&B4ÝÖ.Y»¸ÝäÀÿàÕ“7/4QIŒ1zñà%¾™ ¢ûfÞ›÷~3ûó×ç¯Ðp®“}00eQ¸ª‡T¹&’i¶ ‡ÁØöÃ.g`Ë Ù¹ $ó º½ìÔhYŒžÑÑP5hóÝç ¯ø*ÅjÔôÚ"WE=i·Å^“&[~·ãm…|‡?n¶‚m{»Á–·l=jEq2KôöÚ‚ 2/NÓ™µÒAE) ­¯wxÂÛàÉBÚ¡ÛŽì‰y§ª£ZêA³á‚¿èú!uŽÚÕMÛ÷B¿½á=llòf2묒ÕH8øçˆ Z~§•z¶Eݸɗálààb(~Tòèƒ%v£ Ω çqã …“Ü #G¥Å0jóôJÉP 7é¹L:ú2‚y?ò([¢z†V«rVÿˆÌ{Ê2¤8H¿0 6Í:¢l,íFÃ€Ü T&1‹ ó͉.³âjÐŽ-Y¾…,fŽ™=0#8£ÀFX›è…Œ))ÐÐë3…ÜNQß#©•Çq'f†q¸WÿKz‘¦€YŠs„y“˜—Œ¥«Ç8¥ÅnLêc8‹sŠ»NóBaÉø’«ºZ…ØÕ«W{QÈíRöîï]Š÷ˆc—pÿ˜Ó’âÕ1óÊ)½ªbód{¿™•Å “O #˜‹jø‰zDzû–ûÆkÚ¾@r¿Áø„ì˜ú[èÚpú¼Oé®ëÑ8¦³Ü»Ÿ29¸,u•N§3ü¯Î²ìºòPK ‹5â3Óµ ü4org/codehaus/plexus/archiver/zip/ZipUnArchiver.class•PËJÃ@=Ó¦‰ÆØÚøX*¢‹Z±7•B\7jî&q0#1 “¤ˆåªàÂð£Ä;iÆ8‹{îãœs/óùõþ6N°mÃ@_צ…-óB&²˜0´G3ã2} =_&âº|„ºåAL×OCϸ’º®›FÉœáÔOÕ£’2âeîe±x!à*Œä\(ïUfÞ½Ìî’iÝ3ôþŸsO¦Þ•ŒÅXï¶ó´T¡Ð5C·9§éÍ©ÛðiªƒL†Ñÿîa8ÿS0 òBñ°h±Oßj@¿˜>€¢EÕ!#ì `oÕx…¢Mì’d«”9Kõ×µSLˆ©¹æðxÖo‡bV;KVí ³ut«å½J³ñ PK 5META-INF/maven/PK 5#META-INF/maven/org.codehaus.plexus/PK 53META-INF/maven/org.codehaus.plexus/plexus-archiver/PK ‰5¼Ê@ê½:META-INF/maven/org.codehaus.plexus/plexus-archiver/pom.xmlµT]oÛ }ϯ@~7Øk'Uq5uš6©Õª­›öVQ|3Ù€Ûé¿Æv§î2iÛ÷œ{ø ×»ºB-+”ÜD)N"’«\Èí&úöð!¾Š®3ªú Ü!O–v•Îé5!5kAb¦/+³%÷ŸïÈ%Nú"¹ÞY±gw]‡»‹À{“$)ùqwûÕo¬Y,¤uLrð»¬XÛÞ*Î\ðtV ½Æ@Ü^>& ÞÙ<ÊVQÍ H×ý„' ÆÝ§<ÓìsUk%=ÃRr´:зF5ÚÏ|uìC‚’5)™ê˜i–â_Q2M{ä`Ö¾Jõ}\ íP2ÃV‹.™á¥ð5O=RÉjÈî ½Ièfꉒ°¾šùKbVé’Å'.¹’Έ§Æ)cÇžŽ ™ß3‰ “‡ú}›/è¯ø"xÉLŽZ_(÷Ž?ª¢øm±üÑ4ÈÜß^“á=ô¼—ûó#\ ¾q¢Z¸³@/fAö^O}üc}LH0qk*wÆätêéÛ3næ!ز¼>œ¨ô?C¿ÛƒkÛÊõøýðÐGÿ£äÅ;#Žm÷ðt±ãÙ½´3¤˜¼org/codehaus/plexus/archiver/FinalizerEnabled.classPK ‹5föнkß4¤½org/codehaus/plexus/archiver/gzip/GZipArchiver.classPK ‹5ÌnuÑ×6¤ZÁorg/codehaus/plexus/archiver/gzip/GZipCompressor.classPK ‹5ÁL 6¤®Äorg/codehaus/plexus/archiver/gzip/GZipUnArchiver.classPK ‹5l¨6s,93¤ƒÊorg/codehaus/plexus/archiver/jar/defaultManifest.mfPK ‹5G²l…|4¤Ëorg/codehaus/plexus/archiver/jar/JarArchiver$1.classPK ‹5ÉXÖ…¯H¤×Ìorg/codehaus/plexus/archiver/jar/JarArchiver$FilesetManifestConfig.classPK ‹5ò6ý É92¤ÂÎorg/codehaus/plexus/archiver/jar/JarArchiver.classPK ‹5~iªí  9¤ëorg/codehaus/plexus/archiver/jar/Manifest$Attribute.classPK ‹5=HÀß< Ñ7¤aõorg/codehaus/plexus/archiver/jar/Manifest$Section.classPK ‹5r–fR@æ!/¤òorg/codehaus/plexus/archiver/jar/Manifest.classPK ‹5þg•8¤org/codehaus/plexus/archiver/jar/ManifestException.classPK ‹5ŒIjŽÌM<¤Õorg/codehaus/plexus/archiver/manager/ArchiverManager$1.classPK ‹5¤^„ ãE:¤ûorg/codehaus/plexus/archiver/manager/ArchiverManager.classPK ‹5ñy`¼ù­ A¤6org/codehaus/plexus/archiver/manager/DefaultArchiverManager.classPK ‹5o,°‘£ðB¤Žorg/codehaus/plexus/archiver/manager/NoSuchArchiverException.classPK ‹5‚7§íiG¤‘ org/codehaus/plexus/archiver/tar/TarArchiver$TarCompressionMethod.classPK ‹5j^$í =¤_$org/codehaus/plexus/archiver/tar/TarArchiver$TarOptions.classPK ‹5s$¨‚,½2¤§(org/codehaus/plexus/archiver/tar/TarArchiver.classPK ‹5$$:9g ë0¤#7org/codehaus/plexus/archiver/tar/TarBuffer.classPK ‹5³#GRÂ9¤ØAorg/codehaus/plexus/archiver/tar/TarBZip2UnArchiver.classPK ‹5ÁÞ2‘É;¤Eorg/codehaus/plexus/archiver/tar/TarCompressionMethod.classPK ‹5¬ãKà·3¤£Gorg/codehaus/plexus/archiver/tar/TarConstants.classPK ‹5¡ˆýqƒ×/¤ÔIorg/codehaus/plexus/archiver/tar/TarEntry.classPK ‹5N?Ô:Lº8¤¤Xorg/codehaus/plexus/archiver/tar/TarGZipUnArchiver.classPK ‹5¿ôCÁ ö5¤F\org/codehaus/plexus/archiver/tar/TarInputStream.classPK ‹5Z ²³¸Ð6¤Zgorg/codehaus/plexus/archiver/tar/TarLongFileMode.classPK ‹5YªïÒ% ¾6¤fjorg/codehaus/plexus/archiver/tar/TarOutputStream.classPK ‹5áØ¤‚ K¤ßsorg/codehaus/plexus/archiver/tar/TarUnArchiver$UntarCompressionMethod.classPK ‹5¹£Î¢Ñõ 4¤Êxorg/codehaus/plexus/archiver/tar/TarUnArchiver.classPK ‹5]­s..»/¤í~org/codehaus/plexus/archiver/tar/TarUtils.classPK ‹5fÀóÀ!/¤h„org/codehaus/plexus/archiver/UnArchiver$1.classPK ‹5ÁLªžñÏ-¤u†org/codehaus/plexus/archiver/UnArchiver.classPK ‹5ÃWïT¹6¤±ˆorg/codehaus/plexus/archiver/UnArchiverException.classPK ‹5ÙüŸw+¤YŠorg/codehaus/plexus/archiver/UnixStat.classPK ‹5ÇäGX⢠9¤£‹org/codehaus/plexus/archiver/util/ArchiveEntryUtils.classPK ‹5åJÏd 2¤Üorg/codehaus/plexus/archiver/util/Compressor.classPK ‹5À¿P+3<;¤É•org/codehaus/plexus/archiver/util/EnumeratedAttribute.classPK ‹5ÌMxN†Ó5¤U™org/codehaus/plexus/archiver/util/FilterSupport.classPK ‹5m‚kÁº2¤.org/codehaus/plexus/archiver/war/WarArchiver.classPK ‹5^wá/ð•7:¤?¤org/codehaus/plexus/archiver/zip/AbstractZipArchiver.classPK ‹5f‘r ô<¤‡¿org/codehaus/plexus/archiver/zip/AbstractZipUnArchiver.classPK ‹5xÓv;“4¤ãÊorg/codehaus/plexus/archiver/zip/AsiExtraField.classPK ‹5Ò:zþÏ66¤pÓorg/codehaus/plexus/archiver/zip/ExtraFieldUtils.classPK ‹5÷ß~=¤“Üorg/codehaus/plexus/archiver/zip/UnrecognizedExtraField.classPK ‹5‰~°Ãàh2¤üßorg/codehaus/plexus/archiver/zip/ZipArchiver.classPK ‹5f˜¢‹:ê /¤,áorg/codehaus/plexus/archiver/zip/ZipEntry.classPK ‹5ë¢ïšÁ4¤³ðorg/codehaus/plexus/archiver/zip/ZipExtraField.classPK ‹5A²|æšLA¤òorg/codehaus/plexus/archiver/zip/ZipFile$BoundedInputStream.classPK ‹5VΈ[HŸ.¤öorg/codehaus/plexus/archiver/zip/ZipFile.classPK ‹5¦NeîÕñ.¤©org/codehaus/plexus/archiver/zip/ZipLong.classPK ‹5)b|.;\)6¤Êorg/codehaus/plexus/archiver/zip/ZipOutputStream.classPK ‹5…üL®o_/¤Yorg/codehaus/plexus/archiver/zip/ZipShort.classPK ‹5â3Óµ ü4¤org/codehaus/plexus/archiver/zip/ZipUnArchiver.classPK 5íA‡ META-INF/maven/PK 5#íA´ META-INF/maven/org.codehaus.plexus/PK 53íAõ META-INF/maven/org.codehaus.plexus/plexus-archiver/PK ‰5¼Ê@ê½:¤F!META-INF/maven/org.codehaus.plexus/plexus-archiver/pom.xmlPK 5asQt}A¤ˆ#META-INF/maven/org.codehaus.plexus/plexus-archiver/pom.propertiesPKgg+&[$././@LongLink0000000000000000000000000000015300000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-components/plugin0-1.0-SNAPSHOT.jarplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-components/plugin0-1.0-SNAPSH0000644000175000017500000001175411106343572033046 0ustar twernertwernerPK bEk9 META-INF/PK aEk9ËÝÐd{META-INF/MANIFEST.MFóMÌËLK-.Ñ K-*ÎÌϳR0Ô3àår,JÎÈ,K-Bä¤V”+À$x¹œ‹RKRSt*­ “3R|ËRóx¹œJ3sJÀâ)‰™P~Š®WJ6ÈpS=ƒxC3^.^.PK Dk9META-INF/plexus/PK bEk9org/PK bEk9 org/codehaus/PK bEk9org/codehaus/plexus/PK bEk9org/codehaus/plexus/plugins/PK bEk9Öû*æËMETA-INF/plexus/components.xmlíTIn„0¼ç|;°å)_è˜,y!^Fy~<öÈ~›S«ÊÝ]e«dÆšŒFík‡¾y¨*¶0îK"ãÈX#±1v Üt8Bpd’øžJ„vä%ÕGFSg9V".éóY†sƒPqŠJà…ч ­ô‹ÈnlÞÖ¡ãVL‰c´D‹!| ¦Q7“[ze®½>i·wNs½@ÙÕ6ÀhVIzSóWNNÇN^ÿÙ X>Š3Z¢@Ãk{%ž3þäöÍ_öº!çÓ]†ÿ.Ó߈ìöî±½Çö‡±-`l(Pþº?PK bEk9‘ÖæÔ,org/codehaus/plexus/plugins/AltPlugin0.class­UýSU=6 KÁ´ ÖB±5|.ElµÔ¶€´Õ&€©ø9ËòH¶nöíl6þ=Îøs;#LÛõgÿ(Çó6 DH5ã8™¼ûö¾sϽï¼ûvÿøóù¯H` ße0„Ù4ÞÃ\ ïgp ×Sø â†ù42¸Ù ¸•Æ n¸c`ÁÀbç0›Â’¶g`bYÏîfЇ{îøÄÀ§[àRA…%ËQ;²lתVàÉ}GUåK?ªZ ónw\$°ß²»'âíÛ% \kÖ„Y•:ÎZø{©znº¾ÝHäÇ6’K¤`‚‚ëË•Ze[†ö¶GO¶ ÛÛ´CW?7œÉ¨ìVòm“^­äúÜ™­ÅÓ¦ë.KÏS}Žò#¹ÕlÏý‘Lùö ”µT·óºDAxñŸU²B¨ª©ðÀ’ûŽ "Wù$i,”ú¾,7X–ÑH$p¹£:ÒÚeS¥ðe1k±Yj“9NIÑ2ëª:ò®«…ì?iú±½g›FÎ@ÁD+æ}­Zî‘ ½«&ÖðÏ®žÉÀCëØí ŸcÓÄ#|!0÷_šÆÄ[x[àÁÿx“¨ÞÒ"Yží—¬õ(týÒbmwWÅÄrª0Jzår§ªÏ±%#Ûw䜉-|iâ+|mâ= ã[+õ²ÀÀI «Û¥½Dÿfìqྲྀ(V•ÏÛ4]ž»+Ç“VP¶«²)C|eê÷¯¥„õƒj$+¼ÆªÆB ñŠ«¬5ªQ#iWØçÛ¸Ùý~ò¨ë`¾pZÙøÎµÝØ©ãaî’äx¥•£®ÌüØYßW ËúÍr&%[Û‹;ä[³¢vl=vH‡­ô/­ £/%‹.Êj•Í!p!IL*Rõ¹ÀxöÏF9T?èálác]x¯ñ[Ó…×q }oÆ–÷ˆ6¡o;Ç>Y´‚¶{üâI »Ä±'v`”£Yà\¦¥DÇÁ׉Öké§èÊ&‘&yy"4ÉOHòÜ™Èv?CO~‡QŸ|ŠÔ3¤õSæôþŒÑ•èÛzs[GèÏâ•©Cdiq~ê~{BV“;æX¯á"·æ11IÿU®L³ôÜÆl\Ó8óæèã,¡+hT§gŒÑ|süfO“Ï¢7IOÿ3ñ.¯þPK bEk9rd)­•à0org/codehaus/plexus/plugins/DefaultPlugin0.class­UýSE~–.9ŽCA­„Òjø<ŠØj©mÒÖ6,HÅÏ9Ž%¹z¹»¹» ø÷8ãÏíŒ0µ3êÏþQŽÏ^¤4ã8™ì»ûîó~ì³ï{ûç_¿þ†&ðŽLgñf2øPÇ5\Ïà£n|Œf³Ðq³>Ñp+‹~ÜÖpG܆yç0Á‚’wuXT³{:zp_à Ÿjx¨á‘€°.ý°lÚþ–¬XµÈ \¹KaûÕÀ÷¤GæÜ,›mç ÒÇtJ0^†±Ždœ¼ÊÉOHóÜËu¾@Wþ€VŽÌ dÕJÿÝ?cxé%z6^âÜÆÎçz÷ñÚÄ>rûè›8À…ߟѫÁ“r¬çp‘Çã§þ*w&™únc:Éi”qóÔŽp–Rf§fc´Qþfø~OÒŸImššþ§’S^ýPK bEk9ÌK“Ú€‘)org/codehaus/plexus/plugins/Plugin0.class;õo×>f]NvvvF֌Ԝœ|Ff Í0F®àüÒ¢äT·ÌœTFž€œÒôÌ<½¬Ä²DFåü¢týäü”ÔŒÄÒbý‚œÔ 0RR¬UÊÈ R¬Ÿ“˜—®ïŸ”•š\ÂÆÈÀÈÀÄŒ,@{X@,V ÉÄÀPK bEk9META-INF/maven/PK bEk9.META-INF/maven/org.codehaus.plexus.components/PK bEk96META-INF/maven/org.codehaus.plexus.components/plugin0/PK \Ek9Ýt¼b¢S=META-INF/maven/org.codehaus.plexus.components/plugin0/pom.xmlÕVMOÃ0 ½ïWT»7) i •¸Ä—4„¸!/5kP›DMº•Oš°‘}À ¹T~}¶Ÿí:*ÓzBn“®®¤9–Öê1¥5ÌQÐÀK$ª™Ñ›ëKzD2’ sܱb/ ²yÞa–ÐûË‹‰s¬!ÒX‡ƒ$qcãá ÅÁ %?‘.yát~ô=d¤3Å0w)X­ ¬î°1.zî0º†õ¤Y£Z}^ä. áîe ­!ºÂÎ=¸ªµ’(­atÉë} ±â¸u¦®Ú™.p„õ”ùkŠ’¥“«Ó›ÉÙõ-£ó(qe’ 4=CÏøž<ïÉYÑRØ”é©{¥:Ý”öãZ§¿¦õC’BÃKáÒî •.!=þ \I Bb“øme÷Š¢…ôð³ì×O˜M[Qyò?N(*,°Yõ#ØKó‹SØ9‡p9…¸»F°6„m´Ý°CÞö·¤ÙþåŽbƒÍTQ šhx#´Un©<°îI·\ý xÝ"£ñç¶´Ì.gyüþ¿³îWHø‘È/PK bEk9f½ZH{DMETA-INF/maven/org.codehaus.plexus.components/plugin0/pom.properties Ê» Я¸Ig µM“Nê`m?€pE’Ê%¼¢o§³œî‚“.háùƒ»nX§*ÂB úÄ8†I °JG!FÖ0eOaî¹8Èå¼ÊëC1—¨Æ›)9nÈâ[×Ìã†ßCŸHCÉL§â_Ú”}Æ­:ûPK bEk9 íAMETA-INF/PK aEk9ËÝÐd{¤'META-INF/MANIFEST.MFPK Dk9íA½META-INF/plexus/PK bEk9íAëorg/PK bEk9 íA org/codehaus/PK bEk9íA8org/codehaus/plexus/PK bEk9íAjorg/codehaus/plexus/plugins/PK bEk9Öû*æË¤¤META-INF/plexus/components.xmlPK bEk9‘ÖæÔ,¤Æorg/codehaus/plexus/plugins/AltPlugin0.classPK bEk9rd)­•à0¤ org/codehaus/plexus/plugins/DefaultPlugin0.classPK bEk9ÌK“Ú€‘)¤ƒ org/codehaus/plexus/plugins/Plugin0.classPK bEk9íAJ META-INF/maven/PK bEk9.íAw META-INF/maven/org.codehaus.plexus.components/PK bEk96íAà META-INF/maven/org.codehaus.plexus.components/plugin0/PK \Ek9Ýt¼b¢S=¤ META-INF/maven/org.codehaus.plexus.components/plugin0/pom.xmlPK bEk9f½ZH{D¤META-INF/maven/org.codehaus.plexus.components/plugin0/pom.propertiesPKåñ././@LongLink0000000000000000000000000000015700000000000011570 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-components/component-b-1.0-SNAPSHOT.jarplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-components/component-b-1.0-SN0000644000175000017500000000640110553216226033226 0ustar twernertwernerPK jl06 META-INF/PK il06˜0•æ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ñf¼\¼\PK il06META-INF/plexus/PK il06org/PK il06 org/codehaus/PK il06org/codehaus/plexus/PK il06org/codehaus/plexus/components/PK il06®Ü“vMETA-INF/plexus/components.xml…A€ ï¾Â Œ!X•(L|¾U‚¢OÍl»›­Ph=:p©‹ú¦mÅ­Äk!3) ô¦p‚Un‘y;ÇËÁ¯³âÑ–n,­dÒèþÜ#Ìr3‰B>¾7ATAûK¼¦\š¿ZWH_U”¿>PK il06{,yˆ&org/codehaus/plexus/components/B.classŒ;Â0Dgó±Š#PB¾CŠ´HôƬ"ãòg£à aO1oЧùþÞä8b­¡5V„²eï…ïWÂæ"óà¸~x&¨êÔÙÅv24ÆÉ[;¦÷üŠpòì%p˜FS¶É4ކƜo»IR¨ˆ÷(ÒB;ƒúPK il06Ø­Eœ\A-org/codehaus/plexus/components/DefaultB.classQËNÂ@=ëP‹"ˆï¬íÒÆ…ã¢Q ®‡:BÉ´CÊÔègéB~€e¼­ š˜èæž¹çžs&wæõíùil£n"‡rÌåQ51‹– ,3äö¼ÀÓû éF³Ã9TW‚aÆñqù]^ð®$¦ì(—˽¸ÿ$3ºïšŽ {¶KÎ>FöPŠ[WùCˆ@ì#qÍ#©Z Ù¾R1˜m…®8öâœâ—`gÀo¸…< V,¬bÁ:‰µKÊ«ºu ¨1lþóN†RjKôì³î@¸š¡ö‡ù§«}7Ò§'Ry«N2ñ”}znëPpŸ6«üB3ø“ùηHMt¯Õì Ž,ý ¤iwª&u6!#Ìn=Ý'ã)ª¹„ÌÁ¢j}PÄ4!ýÛØ¼›„…¤ÊéGd&&!è”'û$¤0)%ÊÙwPK jl06META-INF/maven/PK jl06.META-INF/maven/org.codehaus.plexus.components/PK jl06:META-INF/maven/org.codehaus.plexus.components/component-b/PK l06ÙH } AMETA-INF/maven/org.codehaus.plexus.components/component-b/pom.xmlÕVÍoƒ ¿óWï‚]{j˜Én[Ò®Mº,»5™uQ ‚þ@lÕd]z«ràãñ㽟Ï÷àaYˆFµ×äWÏþYk¹F('ãHBÏ Š"AûÝ­`Cß!×J¯èº®a½lqOa¸@_ÛÍÁÌIr¥ §ÌžgN¬U+ÞJt*øæ¼[ˆVT«cx a£b?2&p.b–}²BíQ«£‘Ì‚’B”ò-ŽŒHÍæ™” ÊŒ5f "—‚3®Fœ=C ~ªÍò N äVuf0 ï/ûÃëî£j`œ“œU´»u*Ó,޼y4`;,³21ÿx¤:Ê3` .“ÿ¶ÒGRu­'<È G3péê|?Êšiîóv —£„í¬a´´wÖ´côÓžò”ƒá'‚dÓvð˜pG9Š™¢E*µ(L>ZÁc¸ýÙÆFÓwñ0†Ñ‚¸¿%Ð<®‰ËSˆæòºbͧڰåºQÏó!®èŽÀ/PK il06(û }…HMETA-INF/maven/org.codehaus.plexus.components/component-b/pom.propertiesSvOÍK-J,IMQHªTðM,KÍãR)MUðJÌS04S04¶26µ2´Pp Q0200ç*K-*ÎÌϳ5Ô3Ð ös öðáJ/Ê/-ðL±Í/J×KÎOIÍH,-Ö+ÈI­RÉù¹ùy©y%Å\‰E%™i‰É%@•pQÝ$.PK jl06 íAMETA-INF/PK il06˜0•æh~¤'META-INF/MANIFEST.MFPK il06íAÁMETA-INF/plexus/PK il06íAïorg/PK il06 íAorg/codehaus/PK il06íA<org/codehaus/plexus/PK il06íAnorg/codehaus/plexus/components/PK il06®Ü“v¤«META-INF/plexus/components.xmlPK il06{,yˆ&¤]org/codehaus/plexus/components/B.classPK il06Ø­Eœ\A-¤ org/codehaus/plexus/components/DefaultB.classPK jl06íAÇMETA-INF/maven/PK jl06.íAôMETA-INF/maven/org.codehaus.plexus.components/PK jl06:íA@META-INF/maven/org.codehaus.plexus.components/component-b/PK l06ÙH } A¤˜META-INF/maven/org.codehaus.plexus.components/component-b/pom.xmlPK il06(û }…H¤tMETA-INF/maven/org.codehaus.plexus.components/component-b/pom.propertiesPK”W././@LongLink0000000000000000000000000000015300000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-components/plugin1-1.0-SNAPSHOT.jarplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-components/plugin1-1.0-SNAPSH0000644000175000017500000000764611106343572033054 0ustar twernertwernerPK cEk9 META-INF/PK bEk9ËÝÐd{META-INF/MANIFEST.MFóMÌËLK-.Ñ K-*ÎÌϳR0Ô3àår,JÎÈ,K-Bä¤V”+À$x¹œ‹RKRSt*­ “3R|ËRóx¹œJ3sJÀâ)‰™P~Š®WJ6ÈpS=ƒxC3^.^.PK bEk9META-INF/plexus/PK bEk9org/PK bEk9 org/codehaus/PK bEk9org/codehaus/plexus/PK bEk9org/codehaus/plexus/plugins/PK bEk9ïLâ;ËsMETA-INF/plexus/components.xmlíTK à Ü÷¹@”î%Úô b^ÁOêzüZÅÄ„í¢‹®dÆ÷ÞÌ“A´œ´åj ®9U™û‚%‘p`ŒÐh3 ¦;©·hðˆ‡¸²èÏ3Á±²l«GQáÒ]‚¹€Ë0G%ê¸V» ­p³È¦-OëÀ2çÈ\¢ÙÜ=7±ÕfrM/ìÞÚË“¡v½sìë9ˆ®VTBC .Ð"‰ßj~ää²ï„p²"s,ð&ßËÉ\¡§þ…ŸŠBCAÒóPK bEk9‟lz¦,org/codehaus/plexus/plugins/AltPlugin1.classQËJÃ@=cic´Z[߯ú¢4¸rQDA •ºžÆ¡™fJ:ý,](¸ðü(ñ&ŠvQDîÉ=sι“™÷×7¤°‡mYÌæ1‡ùl,bɲ… « Œ3lx:츾¾] ܾ÷¾îõu 3pOê$ôÿ!<%aöHÒ3¤ªµCú”ä Oâ"êµExÅÛŠ˜¢§}®Z<”qÿM¦MWª#õUÔ‘G™Fòy@ã2]¡”f°›: }q&ã˜Â¯dÿ–ßq&,¬9XG…Á9=ë×:T7 6±Å°ó¿¡ Sq¦«xÐq/Û·Â7 ›yG›#ztK:"{ÙKv¤v¡ LÓ„‚÷èïfFÐ V?îT@¾ª7iˆîÔk-T¡G'!ÆhåmŒ'ÈâÛ :IKÈ3»/`Évj6!ó˜¢ê| 0"!éÇ|˜„‘î cÅÔ3Ò¿6!P¢Ùå¡üOH)Q–?PK bEk9©›©~²0org/codehaus/plexus/plugins/DefaultPlugin1.classRËJ1=±±ãhµZ߯ZupåBDƒ •ºNÇØ¦¤“2“ý,](¸ðü(ñÎ(> ˆîážœsnòúöü‚ 6±b#ñ&0Ù)Ó˜±0kaÎÂ<ã Kž›®¯¯D‹Ç‘ÛUâ–À×®D`"÷`—„þ?„‡$ÌïÉ@š}†ÌêZ!{Hr†¢'qw"¼à ELÉÓ>Wuʤÿ$³¦%#†žƒº*nÊ rÄ5•9OÛm™k ¥4ƒ]Óqè‹c™Dþ–mµù wà`ЂƒETœ“Ä·x©CuU±°ä Še†õÿgNr]Ѧ{Öh ß0Tÿò÷2Öî"#:ôb:&{ÙKw¤vÏC˜š ïÐ-G{Ð V7éT@¾UïG¤!º¹»VG9ú$D­~B)²äE¨Qç2ÂÜúØ}º]¤šOɆ©:Œ DHgú2ï¤a¤{@_)óˆìw€MŒÑìòÂWÈXª,¿PK bEk9$Hl€‘)org/codehaus/plexus/plugins/Plugin1.class;õo×>f]NvvvF֌Ԝœ|Ff Í0F®àüÒ¢äT·ÌœTFž€œÒôÌÀ³î¶¸>ðgÖ¹ª$ýp—e Ê…ñ]ùþ>mÖ{Ý0EeR!†ÉÌq]Ýb%¼æ)ÊÙ†sÏ9Œà˃ðA%£Y¨‡R‘ä‘dR÷š8ÐjSœñ\ÜE¡î`ýðˆr DB*}Á<œ¦d[_Ýeо ¬tU$yLÙ<€=­¶Ísà{ûû›ÝþvûÀ¢7pDaa˜Y }éÍ ¿Ã3íz86bë·¨ÚOÑþÿ k-8­‰vðœÓ$ Ýiûb6×ä Ûïe‘'@ì´7_eq—º—Dµ¥¬F5¦g—CûÁ4p7‰`q2{Tçõž0î\wºÛyÌÄN¿Ä%ãð¸A#"qF…♞µp¶OË0Âpü!îç0œBw«œÆ2Ñn…p*{asŠšÎiÃðΜçý"ö§&tÞPK bEk9™Ç•{DMETA-INF/maven/org.codehaus.plexus.components/plugin1/pom.properties Ê» Я¸Ig h‡¦I'u°6@¸V’Ê%¼¢o§³œî‚“)èàùƒ»iX§+ÂL ¤1Œýi=,JÃQˆ5LÙS˜$5Ÿu}h¶&ªñæ&J+·äðmjæqÃO¤€¡dfRñ/cË>ãVW$ûPK cEk9 íAMETA-INF/PK bEk9ËÝÐd{¤'META-INF/MANIFEST.MFPK bEk9íA½META-INF/plexus/PK bEk9íAëorg/PK bEk9 íA org/codehaus/PK bEk9íA8org/codehaus/plexus/PK bEk9íAjorg/codehaus/plexus/plugins/PK bEk9ïLâ;Ës¤¤META-INF/plexus/components.xmlPK bEk9‟lz¦,¤«org/codehaus/plexus/plugins/AltPlugin1.classPK bEk9©›©~²0¤oorg/codehaus/plexus/plugins/DefaultPlugin1.classPK bEk9$Hl€‘)¤;org/codehaus/plexus/plugins/Plugin1.classPK cEk9íAMETA-INF/maven/PK cEk9.íA/META-INF/maven/org.codehaus.plexus.components/PK cEk96íA{META-INF/maven/org.codehaus.plexus.components/plugin1/PK Ô^P9)~%ã¤ß =¤ÏMETA-INF/maven/org.codehaus.plexus.components/plugin1/pom.xmlPK bEk9™Ç•{D¤Î META-INF/maven/org.codehaus.plexus.components/plugin1/pom.propertiesPKå« ././@LongLink0000000000000000000000000000015700000000000011570 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-components/component-a-1.0-SNAPSHOT.jarplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-components/component-a-1.0-SN0000644000175000017500000000640110553216226033225 0ustar twernertwernerPK jl06 META-INF/PK il06˜0•æ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ñf¼\¼\PK il06META-INF/plexus/PK il06org/PK il06 org/codehaus/PK il06org/codehaus/plexus/PK il06org/codehaus/plexus/components/PK il06Fo@uMETA-INF/plexus/components.xml…Q € Dÿ;EH/ AÐEĶÔ5èøm‰eýôµ¼ÙaV(´¸ÔEH}Ó¶âV≵™”€z S8Á*·È¼Æãeƒà×YñhK7–V2itîf¹™D!_‰› ª ý¥ ^S.Í_­+¤¯*Ê_PK il06é_#²ˆ&org/codehaus/plexus/components/A.classŒ;Â0Dgó±Š#PB>Cš´HôƬ"ãòg£à aO1oЧùþÞä8b­¡5V„²eï…ïWÂæ"óà¸~x&¨êÔÙÅv24ÆÉ[;¦÷üŠpòì%p˜FS¶É4ކƜo»IR¨ˆ÷(ÒB;ƒúPK il06Vy1]A-org/codehaus/plexus/components/DefaultA.classQËJÃ@=ÓWÚ˜jm­ïG»²4KAqT¨Ôõ4ŽmÊ$SÒ‰ègéBÁ…àG‰7Q[A7÷Ì=÷œ3ܙ׷礱º‰ÊT0—GÕÄ< ,X2°ÌÛóOï3¤ÍCæP] †Ç ÄiäwExÁ»’˜²£\.;<ôâþ“Ìè¾7bh:*ìÙ.9û<ÙC)n \åU =²Ä5¤>h1dûBJÅ`¶UºâØ‹sŠ_‚¿áò(X±°Š5ë$vÔ.U(¯êÖ-l Æ°ùÏ;Jq¨-yгϺáj†Ú柮öÝH ŸžHEä­:ÉÄSöy躭CÁ}Ú¬ò Í` ãNäk8ß"5ѽV³ƒ:²ô?$"¤Ý©šÔÙ„Œ0»õvŸŒ§¨æ2‹ªõ!@Ó„ôocón*§‘™˜„ Sžì“Â8¤”(gßPK jl06META-INF/maven/PK jl06.META-INF/maven/org.codehaus.plexus.components/PK jl06:META-INF/maven/org.codehaus.plexus.components/component-a/PK ;k06Hå—} AMETA-INF/maven/org.codehaus.plexus.components/component-a/pom.xmlÕVÍoƒ ¿óWï‚]{j˜Én[Ò®Mº,»5 ™º(Á? ¶j².»U9ðñøñÞÏç{ð°,Å7£Úk‹œ«G?ÕZn*HÍ8$’ДAQ&èxØ£ aè;ä¶UÙÝ4 lÖî! Wèc¿;™ƒ 2®4á”ùÀó̉­êÄ;A‰Îÿ‡9ï¢õæžCت، \ˆ˜åï¬TF{Ô)Àh"³ ¤•|‰#£R³™’JA™³Ö TRpƵÂ肳gH©³/BµY^!Áh$·°º7³‚apz}:žžoÕ#ãœlª¢“Ø­Ï*ËãÈ[F¶Ã2¯ó—@¸¡§¼Æà2ù+`‡(½'U×£¬p4—®Î÷“¬™á!o×p=IØÀZF+{gÍ;ÖÁ0(Ï™1/p"H>oO ÷”£˜)ZfR‹Òä£܇ۯmêa4c-!ˆ‡[-㚸<…h)o¡+6Ðrª [Ρõ0âŠîüPK il06Â{Ö"}…HMETA-INF/maven/org.codehaus.plexus.components/component-a/pom.propertiesSvOÍK-J,IMQHªTðM,KÍãR)MUðJÌS04S04¶26µ2´Pp Q0200ç*K-*ÎÌϳ5Ô3Ð ös öðáJ/Ê/-ðL±Í/J×KÎOIÍH,-Ö+ÈI­RÉù¹ùy©y%Å\‰E%™i‰É%@•pQÝD.PK jl06 íAMETA-INF/PK il06˜0•æh~¤'META-INF/MANIFEST.MFPK il06íAÁMETA-INF/plexus/PK il06íAïorg/PK il06 íAorg/codehaus/PK il06íA<org/codehaus/plexus/PK il06íAnorg/codehaus/plexus/components/PK il06Fo@u¤«META-INF/plexus/components.xmlPK il06é_#²ˆ&¤\org/codehaus/plexus/components/A.classPK il06Vy1]A-¤org/codehaus/plexus/components/DefaultA.classPK jl06íAÇMETA-INF/maven/PK jl06.íAôMETA-INF/maven/org.codehaus.plexus.components/PK jl06:íA@META-INF/maven/org.codehaus.plexus.components/component-a/PK ;k06Hå—} A¤˜META-INF/maven/org.codehaus.plexus.components/component-a/pom.xmlPK il06Â{Ö"}…H¤tMETA-INF/maven/org.codehaus.plexus.components/component-a/pom.propertiesPK”W././@LongLink0000000000000000000000000000015700000000000011570 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-components/component-c-1.0-SNAPSHOT.jarplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-components/component-c-1.0-SN0000644000175000017500000000640010553216226033226 0ustar twernertwernerPK jl06 META-INF/PK il06˜0•æ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ñf¼\¼\PK jl06META-INF/plexus/PK jl06org/PK jl06 org/codehaus/PK jl06org/codehaus/plexus/PK jl06org/codehaus/plexus/components/PK jl06É…kuMETA-INF/plexus/components.xml…A€ ï¾Â ^ô#«’%€‰Ï·JPôâ©™mw³ ­G.uRß´­¸•xb-d&% ÃÂN°Ê-2o`§ñxÙ øuV<ÚÒ¥•LÝŸ{„Yn&QÈÇWâ&ˆ*hi‚×”KóWë 髊ò×PK jl06õO|ˆ&org/codehaus/plexus/components/C.classŒ;Â0Dgó±Š#PB>D¤´HôƬ"ãòg£à aO1oЧùþÞä8b­¡5V„²eï…ïWÂæ"óà¸~x&¨êÔÙÅv24ÆÉ[;¦÷üŠpòì%p˜FS¶É4ކƜo»IR¨ˆ÷(ÒB;ƒúPK jl06Uù~N\A-org/codehaus/plexus/components/DefaultC.classQËNÂ@=#B-Š ¾°L´K7ã¢Q ®‡2BÉ´CÊÔègéB~€e¼­ š˜èæž¹çžs&wæõíù)ì¡f"‹Re,æP1±„e+V ¬1d½ÀÓG ©z£Ãn©ž`˜w¼@œE~W„—¼+‰)9Êå²ÃC/î?É´xc††£Â¾í’sÀ£±=’â–ÀUþH"ÐcûX\óHêV“!3R*³­¢Ð'^œSøìù ·CÞÀº… l2X§±£z¥BÙ«ز°*ÃÎ?ïd(Æ¡¶äAß>ï…«ª˜ºÚwc-|z"‘·â$OÙ¡è¶÷i³ò/4ƒ1Š;¯î|‹ÔD÷›jÈÐÿÀ !íNÕ¤Î&d„™Ý'°ûd ÉOBЉráPK jl06META-INF/maven/PK jl06.META-INF/maven/org.codehaus.plexus.components/PK jl06:META-INF/maven/org.codehaus.plexus.components/component-c/PK )l06 J„Õ} AMETA-INF/maven/org.codehaus.plexus.components/component-c/pom.xmlÕVÍoƒ ¿óWï‚]{j˜Én[Ò®Mº,»5 ™º(Á? ¶j².»U9ðñøñÞÏç{ð°,Å7£Úk‹œ«G?ÕZn*HÍ8$’ДAQ&èxØ£ aè;ä¶UÙÝ4 lÖî! Wèc¿;™ƒ 2®4á”ùÀó̉­êÄ;A‰Îÿ‡9ï¢õæžCت، \ˆ˜åï¬TF{Ô)Àh"³ ¤•|‰#£R³™’JA™³Ö TRpƵÂ肳gH©³/BµY^!Åh$·°º7³‚apz}:žžoÕ#ãœlª¢“Ø­Ï*ËãÈ[F¶Ã2¯ó—@¸¡§¼Æà2ù+`‡(½'U×£¬p4—®Î÷“¬™á!o×p=IØÀZF+{gÍ;ÖÁ0(Ï™1/p"H>oO ÷”£˜)ZfR‹Òä£܇ۯmêa4c-!ˆ‡[-㚸<…h)o¡+6Ðrª [Ρõ0âŠîüPK jl06šÚt}…HMETA-INF/maven/org.codehaus.plexus.components/component-c/pom.propertiesSvOÍK-J,IMQHªTðM,KÍãR)MUðJÌS04S04¶26µ2´Tp Q0200ç*K-*ÎÌϳ5Ô3Ð ös öðáJ/Ê/-ðL±Í/J×KÎOIÍH,-Ö+ÈI­RÉù¹ùy©y%Å\‰E%™i‰É%@•pQÝd.PK jl06 íAMETA-INF/PK il06˜0•æh~¤'META-INF/MANIFEST.MFPK jl06íAÁMETA-INF/plexus/PK jl06íAïorg/PK jl06 íAorg/codehaus/PK jl06íA<org/codehaus/plexus/PK jl06íAnorg/codehaus/plexus/components/PK jl06É…ku¤«META-INF/plexus/components.xmlPK jl06õO|ˆ&¤\org/codehaus/plexus/components/C.classPK jl06Uù~N\A-¤org/codehaus/plexus/components/DefaultC.classPK jl06íAÆMETA-INF/maven/PK jl06.íAóMETA-INF/maven/org.codehaus.plexus.components/PK jl06:íA?META-INF/maven/org.codehaus.plexus.components/component-c/PK )l06 J„Õ} A¤—META-INF/maven/org.codehaus.plexus.components/component-c/pom.xmlPK jl06šÚt}…H¤sMETA-INF/maven/org.codehaus.plexus.components/component-c/pom.propertiesPK”Vplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/0000755000175000017500000000000011225177777031362 5ustar twernertwerner././@LongLink0000000000000000000000000000014500000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-b/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-b/0000755000175000017500000000000011225177777033603 5ustar twernertwerner././@LongLink0000000000000000000000000000015100000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-b/src/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-b/0000755000175000017500000000000011225177777033603 5ustar twernertwerner././@LongLink0000000000000000000000000000015600000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-b/src/main/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-b/0000755000175000017500000000000011225177777033603 5ustar twernertwerner././@LongLink0000000000000000000000000000016300000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-b/src/main/java/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-b/0000755000175000017500000000000011225177777033603 5ustar twernertwerner././@LongLink0000000000000000000000000000016700000000000011571 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-b/src/main/java/org/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-b/0000755000175000017500000000000011225177777033603 5ustar twernertwerner././@LongLink0000000000000000000000000000020000000000000011555 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-b/src/main/java/org/codehaus/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-b/0000755000175000017500000000000011225177777033603 5ustar twernertwerner././@LongLink0000000000000000000000000000020700000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-b/src/main/java/org/codehaus/plexus/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-b/0000755000175000017500000000000011225177777033603 5ustar twernertwerner././@LongLink0000000000000000000000000000022200000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-b/src/main/java/org/codehaus/plexus/components/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-b/0000755000175000017500000000000011225177777033603 5ustar twernertwerner././@LongLink0000000000000000000000000000023000000000000011560 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-b/src/main/java/org/codehaus/plexus/components/B.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-b/0000644000175000017500000000013010553215756033570 0ustar twernertwernerpackage org.codehaus.plexus.components; public interface B { public void hello(); } ././@LongLink0000000000000000000000000000023700000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-b/src/main/java/org/codehaus/plexus/components/DefaultB.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-b/0000644000175000017500000000030310553215756033572 0ustar twernertwernerpackage org.codehaus.plexus.components; /** * @plexus.component */ public class DefaultB implements B { public void hello() { System.out.println( "Hello World!" ); } } ././@LongLink0000000000000000000000000000015400000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-b/pom.xmlplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-b/0000644000175000017500000000557710553215756033614 0ustar twernertwerner 4.0.0 org.codehaus.plexus.components component-b 1.0-SNAPSHOT component-b org.codehaus.plexus plexus-maven-plugin 1.3.3 descriptor plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin1/0000755000175000017500000000000011225177777032741 5ustar twernertwerner././@LongLink0000000000000000000000000000014500000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin1/src/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin1/src/0000755000175000017500000000000011225177777033530 5ustar twernertwerner././@LongLink0000000000000000000000000000015200000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin1/src/main/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin1/src/0000755000175000017500000000000011225177777033530 5ustar twernertwerner././@LongLink0000000000000000000000000000015700000000000011570 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin1/src/main/java/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin1/src/0000755000175000017500000000000011225177777033530 5ustar twernertwerner././@LongLink0000000000000000000000000000016300000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin1/src/main/java/org/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin1/src/0000755000175000017500000000000011225177777033530 5ustar twernertwerner././@LongLink0000000000000000000000000000017400000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin1/src/main/java/org/codehaus/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin1/src/0000755000175000017500000000000011225177777033530 5ustar twernertwerner././@LongLink0000000000000000000000000000020300000000000011560 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin1/src/main/java/org/codehaus/plexus/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin1/src/0000755000175000017500000000000011225177777033530 5ustar twernertwerner././@LongLink0000000000000000000000000000021300000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin1/src/main/java/org/codehaus/plexus/plugins/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin1/src/0000755000175000017500000000000011225177777033530 5ustar twernertwerner././@LongLink0000000000000000000000000000022700000000000011566 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin1/src/main/java/org/codehaus/plexus/plugins/Plugin1.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin1/src/0000644000175000017500000000013310553220235033504 0ustar twernertwernerpackage org.codehaus.plexus.plugins; public interface Plugin1 { public void hello(); } ././@LongLink0000000000000000000000000000023200000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin1/src/main/java/org/codehaus/plexus/plugins/AltPlugin1.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin1/src/0000644000175000017500000000063111106343572033514 0ustar twernertwernerpackage org.codehaus.plexus.plugins; import org.codehaus.plexus.components.A; import org.codehaus.plexus.components.C; /** * @plexus.component role-hint="alt" */ public class AltPlugin1 implements Plugin1 { /** @plexus.requirement */ private A a; /** @plexus.requirement */ private C c; public void hello() { System.out.println( "Hello World!" ); } } ././@LongLink0000000000000000000000000000023600000000000011566 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin1/src/main/java/org/codehaus/plexus/plugins/DefaultPlugin1.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin1/src/0000644000175000017500000000061510553220235033511 0ustar twernertwernerpackage org.codehaus.plexus.plugins; import org.codehaus.plexus.components.A; import org.codehaus.plexus.components.C; /** * @plexus.component */ public class DefaultPlugin1 implements Plugin1 { /** @plexus.requirement */ private A a; /** @plexus.requirement */ private C c; public void hello() { System.out.println( "Hello World!" ); } } ././@LongLink0000000000000000000000000000015000000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin1/pom.xmlplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin1/pom.0000644000175000017500000000633710553220235033523 0ustar twernertwerner 4.0.0 org.codehaus.plexus.components plugin1 1.0-SNAPSHOT org.codehaus.plexus.components component-a 1.0-SNAPSHOT org.codehaus.plexus.components component-c 1.0-SNAPSHOT org.codehaus.plexus plexus-maven-plugin 1.3.3 descriptor ././@LongLink0000000000000000000000000000014500000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-c/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-c/0000755000175000017500000000000011225177777033604 5ustar twernertwerner././@LongLink0000000000000000000000000000015100000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-c/src/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-c/0000755000175000017500000000000011225177777033604 5ustar twernertwerner././@LongLink0000000000000000000000000000015600000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-c/src/main/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-c/0000755000175000017500000000000011225177777033604 5ustar twernertwerner././@LongLink0000000000000000000000000000016300000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-c/src/main/java/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-c/0000755000175000017500000000000011225177777033604 5ustar twernertwerner././@LongLink0000000000000000000000000000016700000000000011571 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-c/src/main/java/org/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-c/0000755000175000017500000000000011225177777033604 5ustar twernertwerner././@LongLink0000000000000000000000000000020000000000000011555 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-c/src/main/java/org/codehaus/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-c/0000755000175000017500000000000011225177777033604 5ustar twernertwerner././@LongLink0000000000000000000000000000020700000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-c/src/main/java/org/codehaus/plexus/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-c/0000755000175000017500000000000011225177777033604 5ustar twernertwerner././@LongLink0000000000000000000000000000022200000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-c/src/main/java/org/codehaus/plexus/components/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-c/0000755000175000017500000000000011225177777033604 5ustar twernertwerner././@LongLink0000000000000000000000000000023700000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-c/src/main/java/org/codehaus/plexus/components/DefaultC.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-c/0000644000175000017500000000030310553215756033573 0ustar twernertwernerpackage org.codehaus.plexus.components; /** * @plexus.component */ public class DefaultC implements C { public void hello() { System.out.println( "Hello World!" ); } } ././@LongLink0000000000000000000000000000023000000000000011560 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-c/src/main/java/org/codehaus/plexus/components/C.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-c/0000644000175000017500000000013010553215756033571 0ustar twernertwernerpackage org.codehaus.plexus.components; public interface C { public void hello(); } ././@LongLink0000000000000000000000000000015400000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-c/pom.xmlplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-c/0000644000175000017500000000557710553215756033615 0ustar twernertwerner 4.0.0 org.codehaus.plexus.components component-c 1.0-SNAPSHOT component-c org.codehaus.plexus plexus-maven-plugin 1.3.3 descriptor plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin0/0000755000175000017500000000000011225177777032740 5ustar twernertwerner././@LongLink0000000000000000000000000000014500000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin0/src/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin0/src/0000755000175000017500000000000011225177777033527 5ustar twernertwerner././@LongLink0000000000000000000000000000015200000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin0/src/main/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin0/src/0000755000175000017500000000000011225177777033527 5ustar twernertwerner././@LongLink0000000000000000000000000000015700000000000011570 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin0/src/main/java/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin0/src/0000755000175000017500000000000011225177777033527 5ustar twernertwerner././@LongLink0000000000000000000000000000016300000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin0/src/main/java/org/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin0/src/0000755000175000017500000000000011225177777033527 5ustar twernertwerner././@LongLink0000000000000000000000000000017400000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin0/src/main/java/org/codehaus/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin0/src/0000755000175000017500000000000011225177777033527 5ustar twernertwerner././@LongLink0000000000000000000000000000020300000000000011560 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin0/src/main/java/org/codehaus/plexus/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin0/src/0000755000175000017500000000000011225177777033527 5ustar twernertwerner././@LongLink0000000000000000000000000000021300000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin0/src/main/java/org/codehaus/plexus/plugins/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin0/src/0000755000175000017500000000000011225177777033527 5ustar twernertwerner././@LongLink0000000000000000000000000000022700000000000011566 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin0/src/main/java/org/codehaus/plexus/plugins/Plugin0.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin0/src/0000644000175000017500000000013310553220235033503 0ustar twernertwernerpackage org.codehaus.plexus.plugins; public interface Plugin0 { public void hello(); } ././@LongLink0000000000000000000000000000023600000000000011566 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin0/src/main/java/org/codehaus/plexus/plugins/DefaultPlugin0.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin0/src/0000644000175000017500000000304410553506244033516 0ustar twernertwernerpackage org.codehaus.plexus.plugins; import org.codehaus.plexus.components.A; import org.codehaus.plexus.components.B; import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable; import org.codehaus.plexus.context.Context; import org.codehaus.plexus.context.ContextException; import org.codehaus.plexus.PlexusContainer; import org.codehaus.plexus.PlexusConstants; import org.codehaus.plexus.component.repository.exception.ComponentLookupException; import org.codehaus.plexus.archiver.manager.ArchiverManager; /** * @plexus.component */ public class DefaultPlugin0 implements Plugin0, Contextualizable { /** @plexus.requirement */ private A a; /** @plexus.requirement */ private B b; /** @plexus.requirement */ private ArchiverManager archiverManager; public void hello() { System.out.println( "Hello World!" ); } // ---------------------------------------------------------------------------- // Lifecycle // ---------------------------------------------------------------------------- public void contextualize( Context context ) throws ContextException { PlexusContainer container = (PlexusContainer) context.get( PlexusConstants.PLEXUS_KEY ); try { archiverManager = (ArchiverManager) container.lookup( ArchiverManager.ROLE ); } catch ( ComponentLookupException e ) { throw new ContextException( "Error retrieving ArchiverManager instance: " + e.getMessage(), e ); } } } ././@LongLink0000000000000000000000000000023200000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin0/src/main/java/org/codehaus/plexus/plugins/AltPlugin0.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin0/src/0000644000175000017500000000306011106343572033512 0ustar twernertwernerpackage org.codehaus.plexus.plugins; import org.codehaus.plexus.components.A; import org.codehaus.plexus.components.B; import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable; import org.codehaus.plexus.context.Context; import org.codehaus.plexus.context.ContextException; import org.codehaus.plexus.PlexusContainer; import org.codehaus.plexus.PlexusConstants; import org.codehaus.plexus.component.repository.exception.ComponentLookupException; import org.codehaus.plexus.archiver.manager.ArchiverManager; /** * @plexus.component role-hint="alt" */ public class AltPlugin0 implements Plugin0, Contextualizable { /** @plexus.requirement */ private A a; /** @plexus.requirement */ private B b; /** @plexus.requirement */ private ArchiverManager archiverManager; public void hello() { System.out.println( "Hello World!" ); } // ---------------------------------------------------------------------------- // Lifecycle // ---------------------------------------------------------------------------- public void contextualize( Context context ) throws ContextException { PlexusContainer container = (PlexusContainer) context.get( PlexusConstants.PLEXUS_KEY ); try { archiverManager = (ArchiverManager) container.lookup( ArchiverManager.ROLE ); } catch ( ComponentLookupException e ) { throw new ContextException( "Error retrieving ArchiverManager instance: " + e.getMessage(), e ); } } } ././@LongLink0000000000000000000000000000015000000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin0/pom.xmlplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/plugin0/pom.0000644000175000017500000000412311106343572033516 0ustar twernertwerner 4.0.0 org.codehaus.plexus.components plugin0 1.0-SNAPSHOT org.codehaus.plexus.components component-a 1.0-SNAPSHOT org.codehaus.plexus.components component-b 1.0-SNAPSHOT org.codehaus.plexus plexus-archiver 1.0-alpha-7 org.codehaus.plexus plexus-container-default 1.0-beta-2-SNAPSHOT org.codehaus.plexus plexus-maven-plugin 1.3.3 descriptor ././@LongLink0000000000000000000000000000014500000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-a/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-a/0000755000175000017500000000000011225177777033602 5ustar twernertwerner././@LongLink0000000000000000000000000000015100000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-a/src/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-a/0000755000175000017500000000000011225177777033602 5ustar twernertwerner././@LongLink0000000000000000000000000000015600000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-a/src/main/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-a/0000755000175000017500000000000011225177777033602 5ustar twernertwerner././@LongLink0000000000000000000000000000016300000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-a/src/main/java/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-a/0000755000175000017500000000000011225177777033602 5ustar twernertwerner././@LongLink0000000000000000000000000000016700000000000011571 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-a/src/main/java/org/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-a/0000755000175000017500000000000011225177777033602 5ustar twernertwerner././@LongLink0000000000000000000000000000020000000000000011555 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-a/src/main/java/org/codehaus/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-a/0000755000175000017500000000000011225177777033602 5ustar twernertwerner././@LongLink0000000000000000000000000000020700000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-a/src/main/java/org/codehaus/plexus/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-a/0000755000175000017500000000000011225177777033602 5ustar twernertwerner././@LongLink0000000000000000000000000000022200000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-a/src/main/java/org/codehaus/plexus/components/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-a/0000755000175000017500000000000011225177777033602 5ustar twernertwerner././@LongLink0000000000000000000000000000023700000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-a/src/main/java/org/codehaus/plexus/components/DefaultA.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-a/0000644000175000017500000000030310553215756033571 0ustar twernertwernerpackage org.codehaus.plexus.components; /** * @plexus.component */ public class DefaultA implements A { public void hello() { System.out.println( "Hello World!" ); } } ././@LongLink0000000000000000000000000000023000000000000011560 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-a/src/main/java/org/codehaus/plexus/components/A.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-a/0000644000175000017500000000013010553215756033567 0ustar twernertwernerpackage org.codehaus.plexus.components; public interface A { public void hello(); } ././@LongLink0000000000000000000000000000015400000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-a/pom.xmlplexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/component-a/0000644000175000017500000000557710553215756033613 0ustar twernertwerner 4.0.0 org.codehaus.plexus.components component-a 1.0-SNAPSHOT component-a org.codehaus.plexus plexus-maven-plugin 1.3.3 descriptor plexus-containers-1.0~beta3.0.7/plexus-container-default/src/test/test-component-builds/pom.xml0000644000175000017500000000113510553220235032654 0ustar twernertwerner 4.0.0 org.codehaus.plexus.components component-parent 1.0-SNAPSHOT pom component-a component-b component-c plugin0 plugin1 plexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/0000755000175000017500000000000011225200004025032 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/resources/0000755000175000017500000000000011225200004027044 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/resources/META-INF/0000755000175000017500000000000011225200004030204 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/resources/META-INF/plexus/0000755000175000017500000000000011225200004031524 5ustar twernertwerner././@LongLink0000000000000000000000000000015300000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/resources/META-INF/plexus/components.xmlplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/resources/META-INF/plexus/componen0000644000175000017500000000050411107656444033312 0ustar twernertwerner org.codehaus.plexus.component.configurator.BasicComponentConfigurator org.codehaus.plexus.component.configurator.ComponentConfigurator basic plexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/0000755000175000017500000000000011225200002025751 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/0000755000175000017500000000000011225200002026540 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/0000755000175000017500000000000011225200002030333 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/0000755000175000017500000000000011225200004031655 5ustar twernertwerner././@LongLink0000000000000000000000000000016700000000000011571 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/ContainerConfiguration.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/Container0000644000175000017500000000702011174733555033552 0ustar twernertwernerpackage org.codehaus.plexus; import java.net.URL; import java.util.List; import java.util.Map; import org.codehaus.plexus.classworlds.ClassWorld; import org.codehaus.plexus.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.discovery.ComponentDiscoverer; import org.codehaus.plexus.component.discovery.ComponentDiscovererManager; import org.codehaus.plexus.component.discovery.ComponentDiscoveryListener; import org.codehaus.plexus.component.factory.ComponentFactoryManager; import org.codehaus.plexus.component.repository.ComponentRepository; import org.codehaus.plexus.configuration.source.ConfigurationSource; import org.codehaus.plexus.container.initialization.ContainerInitializationPhase; import org.codehaus.plexus.lifecycle.LifecycleHandler; import org.codehaus.plexus.lifecycle.LifecycleHandlerManager; /** * @author Jason van Zyl */ public interface ContainerConfiguration { ContainerConfiguration setName( String name ); String getName(); ContainerConfiguration setContext( Map context ); Map getContext(); ContainerConfiguration setClassWorld( ClassWorld classWorld ); ClassWorld getClassWorld(); ContainerConfiguration setRealm( ClassRealm realm ); ClassRealm getRealm(); // // Configuration // ContainerConfiguration setContainerConfiguration( String configuration ); String getContainerConfiguration(); ContainerConfiguration setContainerConfigurationURL( URL configuration ); URL getContainerConfigurationURL(); // Programmatic Container Initialization and Setup // Much of this setup and initialization can be completely hidden. It's probably not likely // someone will need to change these core components, but rather adding things like different // factories, and component managers. // Container initialization phases ContainerInitializationPhase[] getInitializationPhases(); // Component lookup manager // Component discoverer manager ContainerConfiguration addComponentDiscoverer( ComponentDiscoverer componentDiscoverer ); ContainerConfiguration addComponentDiscoveryListener( ComponentDiscoveryListener componentDiscoveryListener ); ContainerConfiguration setComponentDiscovererManager( ComponentDiscovererManager componentDiscovererManager ); ComponentDiscovererManager getComponentDiscovererManager(); // Component factory manager ContainerConfiguration setComponentFactoryManager( ComponentFactoryManager componentFactoryManager ); ComponentFactoryManager getComponentFactoryManager(); // Component manager manager // Component repository ContainerConfiguration setComponentRepository( ComponentRepository componentRepository ); ComponentRepository getComponentRepository(); // Component composer // Lifecycle handler manager ContainerConfiguration addLifecycleHandler( LifecycleHandler lifecycleHandler ); ContainerConfiguration setLifecycleHandlerManager( LifecycleHandlerManager lifecycleHandlerManager ); LifecycleHandlerManager getLifecycleHandlerManager(); // Configuration Sources ContainerConfiguration setConfigurationSource( ConfigurationSource configurationSource ); ConfigurationSource getConfigurationSource(); ContainerConfiguration addComponentDiscoverer( Class componentDiscoverer ); ContainerConfiguration addComponentDiscoveryListener( Class componentDiscoveryListener ); List getComponentDiscoverers(); List getComponentDiscoveryListeners(); } ././@LongLink0000000000000000000000000000016000000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/PlexusContainer.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/PlexusCon0000644000175000017500000004002211112665067033541 0ustar twernertwernerpackage org.codehaus.plexus; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.discovery.ComponentDiscoveryListener; import org.codehaus.plexus.component.repository.ComponentDescriptor; import org.codehaus.plexus.component.repository.exception.ComponentLifecycleException; import org.codehaus.plexus.component.repository.exception.ComponentLookupException; import org.codehaus.plexus.component.repository.exception.ComponentRepositoryException; import org.codehaus.plexus.configuration.PlexusConfigurationException; import org.codehaus.plexus.context.Context; import java.util.List; import java.util.Map; /** * PlexusContainer is the entry-point for loading and accessing other * components. */ public interface PlexusContainer { String ROLE = PlexusContainer.class.getName(); // ------------------------------------------------------------------------ // Lookup // ------------------------------------------------------------------------ /** * Looks up and returns a component object with the given unique key or role. * @param role a unique key for the desired component * @return a Plexus component object */ Object lookup( String role ) throws ComponentLookupException; /** * Looks up and returns a component object with the given unique role/role-hint combination. * @param role a non-unique key for the desired component * @param roleHint a hint for the desired component implementation * @return a Plexus component object */ Object lookup( String role, String roleHint ) throws ComponentLookupException; /** * Looks up and returns a component object with the given unique key or role. * @param type the unique type of the component within the container * @return a Plexus component object */ T lookup( Class type ) throws ComponentLookupException; /** * Looks up and returns a component object with the given unique role/role-hint combination. * @param type the non-unique type of the component * @param roleHint a hint for the desired component implementation * @return a Plexus component object */ T lookup( Class type, String roleHint ) throws ComponentLookupException; /** * Looks up and returns a component object with the given unique role/role-hint combination. * @param type the non-unique type of the component * @param role a non-unique key for the desired component * @param roleHint a hint for the desired component implementation * @return a Plexus component object */ T lookup( Class type, String role, String roleHint ) throws ComponentLookupException; /** * Looks up and returns a List of component objects with the given role. * @param role a non-unique key for the desired components * @return a List of component objects */ List lookupList( String role ) throws ComponentLookupException; /** * Looks up and returns a List of component objects with the given role. * @param role a non-unique key for the desired components * @return a List of component objects */ List lookupList( String role, List roleHints ) throws ComponentLookupException; /** * Looks up and returns a List of component objects with the given role. * @param type the non-unique type of the components * @return a List of component objects */ List lookupList( Class type ) throws ComponentLookupException; /** * Looks up and returns a List of component objects with the given role. * @param type the non-unique type of the components * @return a List of component objects */ List lookupList( Class type, List roleHints ) throws ComponentLookupException; /** * Looks up and returns a Map of component objects with the given role, keyed by all available role-hints. * @param role a non-unique key for the desired components * @return a Map of component objects */ Map lookupMap( String role ) throws ComponentLookupException; /** * Looks up and returns a Map of component objects with the given role, keyed by all available role-hints. * @param role a non-unique key for the desired components * @return a Map of component objects */ Map lookupMap( String role, List roleHints ) throws ComponentLookupException; /** * Looks up and returns a Map of component objects with the given role, keyed by all available role-hints. * @param type the non-unique type of the components * @return a Map of component objects */ Map lookupMap( Class type ) throws ComponentLookupException; /** * Looks up and returns a Map of component objects with the given role, keyed by all available role-hints. * @param type the non-unique type of the components * @return a Map of component objects */ Map lookupMap( Class type, List roleHints ) throws ComponentLookupException; // ---------------------------------------------------------------------- // Component Descriptor Lookup // ---------------------------------------------------------------------- /** * Returns the ComponentDescriptor with the given component role and the default role hint. * Searches up the hierarchy until one is found, null if none is found. * @param role a unique role for the desired component's descriptor * @return the ComponentDescriptor with the given component role */ ComponentDescriptor getComponentDescriptor( String role ); /** * Returns the ComponentDescriptor with the given component role and hint. * Searches up the hierarchy until one is found, null if none is found. * @param role a unique role for the desired component's descriptor * @param roleHint a hint showing which implementation should be used * @return the ComponentDescriptor with the given component role */ ComponentDescriptor getComponentDescriptor( String role, String roleHint ); /** * Returns the ComponentDescriptor with the given component role and hint. * Searches up the hierarchy until one is found, null if none is found. * @param type the Java type of the desired component * @param role a unique role for the desired component's descriptor * @param roleHint a hint showing which implementation should be used * @return the ComponentDescriptor with the given component role */ ComponentDescriptor getComponentDescriptor( Class type, String role, String roleHint ); /** * Returns a Map of ComponentDescriptors with the given role, keyed by role-hint. Searches up the hierarchy until * all are found, an empty Map if none are found. * @param role a non-unique key for the desired components * @return a Map of component descriptors keyed by role-hint */ Map> getComponentDescriptorMap( String role ); /** * Returns a Map of ComponentDescriptors with the given role, keyed by role-hint. Searches up the hierarchy until * all are found, an empty Map if none are found. * @param type the Java type of the desired components * @param role a non-unique key for the desired components * @return a Map of component descriptors keyed by role-hint */ Map> getComponentDescriptorMap( Class type, String role ); /** * Returns a List of ComponentDescriptors with the given role. Searches up the hierarchy until all are found, an * empty List if none are found. * @param role a non-unique key for the desired components * @return a List of component descriptors */ List> getComponentDescriptorList( String role ); /** * Returns a List of ComponentDescriptors with the given role. Searches up the hierarchy until all are found, an * empty List if none are found. * @param type the Java type of the desired components * @param role a non-unique key for the desired components * @return a List of component descriptors */ List> getComponentDescriptorList( Class type, String role ); /** * Adds a component descriptor to this container. componentDescriptor should have realmId set. * @param componentDescriptor * @throws ComponentRepositoryException */ void addComponentDescriptor( ComponentDescriptor componentDescriptor ) throws ComponentRepositoryException; /** * Releases the component from the container. This is dependant upon how the implementation manages the component, * but usually enacts some standard lifecycle shutdown procedure on the component. In every case, the component is * no longer accessible from the container (unless another is created). * @param component the plexus component object to release * @throws ComponentLifecycleException */ void release( Object component ) throws ComponentLifecycleException; /** * Releases all Mapped component values from the container. * @see PlexusContainer#release( Object component ) * @param components Map of plexus component objects to release * @throws ComponentLifecycleException */ void releaseAll( Map components ) throws ComponentLifecycleException; /** * Releases all Listed components from the container. * @see PlexusContainer#release( Object component ) * @param components List of plexus component objects to release * @throws ComponentLifecycleException */ void releaseAll( List components ) throws ComponentLifecycleException; /** * Returns true if this container has the keyed component. * @param role a non-unique key for the desired component * @return true if this container has the keyed component */ boolean hasComponent( String role ); /** * Returns true if this container has a component with the given role/role-hint. * @param role a non-unique key for the desired component * @param roleHint a hint for the desired component implementation * @return true if this container has a component with the given role/role-hint */ boolean hasComponent( String role, String roleHint ); /** * Returns true if this container has a component with the given role/role-hint. * @param type the non-unique type of the component * @return true if this container has a component with the given role/role-hint */ boolean hasComponent( Class type ); /** * Returns true if this container has a component with the given role/role-hint. * @param type the non-unique type of the component * @param roleHint a hint for the desired component implementation * @return true if this container has a component with the given role/role-hint */ boolean hasComponent( Class type, String roleHint ); /** * Returns true if this container has a component with the given role/role-hint. * @param type the non-unique type of the component * @param role a non-unique key for the desired component * @param roleHint a hint for the desired component implementation * @return true if this container has a component with the given role/role-hint */ boolean hasComponent( Class type, String role, String roleHint ); /** * Disposes of this container, which in turn disposes all of it's components. This container should also remove * itself from the container hierarchy. */ void dispose(); // ---------------------------------------------------------------------- // Context // ---------------------------------------------------------------------- /** * Add a key/value pair to this container's Context. * @param key any unique object valid to the Context's implementation * @param value any object valid to the Context's implementation */ void addContextValue( Object key, Object value ); /** * Returns this container's context. A Context is a simple data store used to hold values which may alter the * execution of the Container. * @return this container's context. */ Context getContext(); /** * Returns the Classworld's ClassRealm of this Container, which acts as the default parent for all contained * components. * @return the ClassRealm of this Container */ ClassRealm getContainerRealm(); // ---------------------------------------------------------------------- // Discovery // ---------------------------------------------------------------------- /** * Adds the listener to this container. ComponentDiscoveryListeners have the ability to respond to various * ComponentDiscoverer events. * @param listener A listener which responds to differnet ComponentDiscoveryEvents */ void registerComponentDiscoveryListener( ComponentDiscoveryListener listener ); /** * Removes the listener from this container. * @param listener A listener to remove */ void removeComponentDiscoveryListener( ComponentDiscoveryListener listener ); /** * Discovers components in the given realm. * @param childRealm * @param override wheter to override/merge any conflicting components, where the new component takes precedence. * @return * @throws PlexusConfigurationException * @throws ComponentRepositoryException */ List> discoverComponents( ClassRealm childRealm ) throws PlexusConfigurationException, ComponentRepositoryException; // ---------------------------------------------------------------------------- // Component/Plugin ClassRealm creation // ---------------------------------------------------------------------------- ClassRealm createChildRealm( String id ); ClassRealm getComponentRealm( String realmId ); /** * Dissociate the realm with the specified id from the container. This will * remove all components contained in the realm from the component repository. * * @param componentRealm Realm to remove from the container. */ void removeComponentRealm( ClassRealm componentRealm ) throws PlexusContainerException; /** * Returns the lookup realm for this container, which is either * the container realm or the realm set by {@see MutablePlexusContainer#setLookupRealm(ClassRealm)}. */ ClassRealm getLookupRealm(); /** * Sets the lookup realm to use for lookup calls that don't have a ClassRealm parameter. * @param realm the new realm to use. * @return The previous lookup realm. It is adviced to set it back once the old-style lookups have completed. */ ClassRealm setLookupRealm(ClassRealm realm); /** * XXX ideally i'd like to place this in a plexus container specific utility class. * * Utility method to retrieve the lookup realm for a component instance. * If the component's classloader is a ClassRealm, that realm is returned, * otherwise the result of getLookupRealm is returned. * @param component * @return */ ClassRealm getLookupRealm( Object component ); void addComponent( Object component, String role ) throws ComponentRepositoryException; } ././@LongLink0000000000000000000000000000016700000000000011571 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/MutablePlexusContainer.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/MutablePl0000644000175000017500000000415111111156773033507 0ustar twernertwernerpackage org.codehaus.plexus; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.classworlds.ClassWorld; import org.codehaus.plexus.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.discovery.ComponentDiscovererManager; import org.codehaus.plexus.component.factory.ComponentFactoryManager; import org.codehaus.plexus.configuration.PlexusConfiguration; import org.codehaus.plexus.configuration.source.ConfigurationSource; import org.codehaus.plexus.logging.Logger; import org.codehaus.plexus.logging.LoggerManager; /** * @author Jason van Zyl */ public interface MutablePlexusContainer extends PlexusContainer { // Core Components ComponentRegistry getComponentRegistry(); void setComponentRegistry( ComponentRegistry componentRegistry ); ComponentDiscovererManager getComponentDiscovererManager(); void setComponentDiscovererManager( ComponentDiscovererManager componentDiscovererManager ); ComponentFactoryManager getComponentFactoryManager(); void setComponentFactoryManager( ComponentFactoryManager componentFactoryManager ); LoggerManager getLoggerManager(); void setLoggerManager( LoggerManager loggerManager ); Logger getLogger(); void setConfigurationSource( ConfigurationSource configurationSource ); ConfigurationSource getConfigurationSource(); // Configuration void setConfiguration( PlexusConfiguration configuration ); PlexusConfiguration getConfiguration(); ClassRealm getComponentRealm( String realmId ); ClassWorld getClassWorld(); } ././@LongLink0000000000000000000000000000016000000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/PlexusConstants.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/PlexusCon0000644000175000017500000000170711107324172033541 0ustar twernertwernerpackage org.codehaus.plexus; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 abstract class PlexusConstants { /** Key used to retrieve the plexus container from the containerContext. */ public static final String PLEXUS_KEY = "plexus"; /** The role-hint to use for components or lookups that do not specify a role.*/ public static final String PLEXUS_DEFAULT_HINT = "default"; } ././@LongLink0000000000000000000000000000017100000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/DefaultComponentRegistry.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/DefaultCo0000644000175000017500000004602411135206670033473 0ustar twernertwernerpackage org.codehaus.plexus; import static org.codehaus.plexus.component.CastUtils.isAssignableFrom; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.IdentityHashMap; 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.TreeMap; import java.util.Comparator; import java.util.Map.Entry; import org.codehaus.plexus.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.factory.ComponentInstantiationException; import org.codehaus.plexus.component.manager.ComponentManager; import org.codehaus.plexus.component.manager.ComponentManagerFactory; import org.codehaus.plexus.component.repository.ComponentDescriptor; import org.codehaus.plexus.component.repository.ComponentRepository; import org.codehaus.plexus.component.repository.exception.ComponentLifecycleException; import org.codehaus.plexus.component.repository.exception.ComponentLookupException; import org.codehaus.plexus.component.repository.exception.ComponentRepositoryException; import org.codehaus.plexus.lifecycle.LifecycleHandler; import org.codehaus.plexus.lifecycle.LifecycleHandlerManager; import org.codehaus.plexus.lifecycle.UndefinedLifecycleHandlerException; import org.codehaus.plexus.logging.Logger; public class DefaultComponentRegistry implements ComponentRegistry { private static final String DEFAULT_INSTANTIATION_STRATEGY = "singleton"; private final MutablePlexusContainer container; private final ComponentRepository repository; private final LifecycleHandlerManager lifecycleHandlerManager; private final Logger logger; private boolean disposingComponents; private final Map componentManagerFactories = Collections.synchronizedMap( new TreeMap() ); private final Map> componentManagers = new TreeMap>(); private final Map> componentManagersByComponent = new IdentityHashMap>(); public DefaultComponentRegistry( MutablePlexusContainer container, ComponentRepository repository, LifecycleHandlerManager lifecycleHandlerManager ) { this.container = container; this.repository = repository; this.lifecycleHandlerManager = lifecycleHandlerManager; logger = container.getLogger(); } public void dispose() { List> managers; synchronized ( this ) { managers = new ArrayList>( componentManagers.values() ); componentManagers.clear(); componentManagersByComponent.clear(); disposingComponents = true; } // reverse sort the managers by startId Collections.sort( managers, new Comparator>() { public int compare( ComponentManager left, ComponentManager right ) { if (left.getStartId() < right.getStartId() ) { return 1; } else if (left.getStartId() == right.getStartId() ) { return 0; } else { return -1; } } }); // Call dispose callback outside of synchronized lock to avoid deadlocks try { for ( ComponentManager componentManager : managers ) { try { componentManager.dispose(); } catch ( Exception e ) { // todo dain use a monitor instead of a logger logger.error( "Error while disposing component manager. Continuing with the rest", e ); } } } finally { synchronized ( this ) { disposingComponents = false; } } } public void registerComponentManagerFactory( ComponentManagerFactory componentManagerFactory ) { componentManagerFactories.put( componentManagerFactory.getId(), componentManagerFactory ); } public void addComponentDescriptor( ComponentDescriptor componentDescriptor ) throws ComponentRepositoryException { repository.addComponentDescriptor( componentDescriptor ); } public ComponentDescriptor getComponentDescriptor( Class type, String role, String roleHint ) { return repository.getComponentDescriptor( type, role, roleHint ); } @Deprecated public ComponentDescriptor getComponentDescriptor( String role, String roleHint, ClassRealm realm ) { return repository.getComponentDescriptor( role, roleHint, realm ); } public Map> getComponentDescriptorMap( Class type, String role ) { return repository.getComponentDescriptorMap( type, role ); } public List> getComponentDescriptorList( Class type, String role ) { return repository.getComponentDescriptorList( type, role ); } public T lookup( Class type, String role, String roleHint ) throws ComponentLookupException { // verify arguments if ( type == null ) { throw new NullPointerException( "type is null" ); } if ( role == null ) { throw new NullPointerException( "role is null" ); } if ( roleHint == null ) { roleHint = PlexusConstants.PLEXUS_DEFAULT_HINT; } return getComponent( type, role, roleHint, null ); } public Map lookupMap( Class type, String role, List roleHints ) throws ComponentLookupException { // verify arguments if ( type == null ) { throw new NullPointerException( "type is null" ); } if ( role == null ) { throw new NullPointerException( "role is null" ); } // if no hints provided, get all valid hints for this role Map components = new LinkedHashMap(); if ( roleHints == null ) { Map> componentDescriptors = getComponentDescriptorMap( type, role ); for ( Entry> entry : componentDescriptors.entrySet() ) { String roleHint = entry.getKey(); ComponentDescriptor componentDescriptor = entry.getValue(); // todo dain catch the exception... it isn't the callers problem when one component in a collection fails T component = getComponent( type, role, roleHint, componentDescriptor ); components.put( roleHint, component ); } } else { for ( String roleHint : roleHints ) { // todo dain catch the exception... it isn't the callers problem when one component in a collection fails T component = getComponent( type, role, roleHint, null ); components.put( roleHint, component ); } } return components; } public List lookupList( Class type, String role, List roleHints ) throws ComponentLookupException { // verify arguments if ( type == null ) { throw new NullPointerException( "type is null" ); } if ( role == null ) { throw new NullPointerException( "role is null" ); } // if no hints provided, get all valid hints for this role List components = new ArrayList(); if ( roleHints == null ) { List> componentDescriptors = getComponentDescriptorList( type, role ); for ( ComponentDescriptor componentDescriptor : componentDescriptors ) { // todo dain catch the exception... it isn't the callers problem when one component in a collection fails T component = getComponent( type, role, componentDescriptor.getRoleHint(), componentDescriptor ); components.add( component ); } } else { for ( String roleHint : roleHints ) { // todo dain catch the exception... it isn't the callers problem when one component in a collection fails T component = getComponent( type, role, roleHint, null ); components.add( component ); } } return components; } public void release( Object component ) throws ComponentLifecycleException { if ( component == null ) { return; } // get the component manager ComponentManager componentManager; synchronized ( this ) { componentManager = componentManagersByComponent.get( component ); if ( componentManager == null ) { // This needs to be tracked down but the user doesn't need to see this // during the maven bootstrap this logger is null. //logger.debug( "Component manager not found for returned component. Ignored. component=" + component ); return; } } // release the component from the manager componentManager.release( component ); // only drop the reference to this component if there are no other uses of the component // multiple uses of a component is common with singleton beans if ( componentManager.getConnections() <= 0 ) { synchronized ( this ) { componentManagersByComponent.remove( component ); } } } public void removeComponentRealm( ClassRealm classRealm ) throws PlexusContainerException { repository.removeComponentRealm( classRealm ); List> dispose = new ArrayList>(); try { synchronized ( this ) { for ( Iterator>> it = componentManagers.entrySet().iterator(); it.hasNext(); ) { Entry> entry = it.next(); Key key = entry.getKey(); ComponentManager componentManager = entry.getValue(); if ( key.realm.equals( classRealm ) ) { dispose.add( componentManager ); it.remove(); } else { componentManager.dissociateComponentRealm( classRealm ); } } } // Call dispose callback outside of synchronized lock to avoid deadlocks for ( ComponentManager componentManager : dispose ) { componentManager.dispose(); } } catch ( ComponentLifecycleException e ) { throw new PlexusContainerException( "Failed to dissociate component realm: " + classRealm.getId(), e ); } } private T getComponent( Class type, String role, String roleHint, ComponentDescriptor descriptor ) throws ComponentLookupException { ComponentManager componentManager = getComponentManager( type, role, roleHint, descriptor ); // Get instance from manager... may result in creation try { T component = componentManager.getComponent(); synchronized ( this ) { componentManagersByComponent.put( component, componentManager ); } return component; } catch ( ComponentInstantiationException e ) { throw new ComponentLookupException( "Unable to lookup component '" + componentManager.getRole() + "', it could not be created.", componentManager.getRole(), componentManager.getRoleHint(), componentManager.getRealm(), e ); } catch ( ComponentLifecycleException e ) { throw new ComponentLookupException( "Unable to lookup component '" + componentManager.getRole() + "', it could not be started.", componentManager.getRole(), componentManager.getRoleHint(), componentManager.getRealm(), e ); } } private synchronized ComponentManager getComponentManager( Class type, String role, String roleHint, ComponentDescriptor descriptor ) throws ComponentLookupException { if ( disposingComponents ) { throw new ComponentLookupException("ComponentRegistry is not active", role, roleHint ); } ComponentManager componentManager = getComponentManager( type, role, roleHint ); if ( componentManager == null ) { // we need to create a component manager, but first we must have a descriptor if ( descriptor == null ) { descriptor = getComponentDescriptor( type, role, roleHint ); if ( descriptor == null ) { throw new ComponentLookupException( "Component descriptor cannot be found in the component repository", role, roleHint ); } } componentManager = createComponentManager( descriptor, role, roleHint ); } return componentManager; } private ComponentManager getComponentManager( Class type, String role, String roleHint ) { Set realms = getSearchRealms(); // return the component in the first realm for ( ClassRealm realm : realms ) { ComponentManager manager = componentManagers.get( new Key( realm, role, roleHint ) ); if ( manager != null && isAssignableFrom( type, manager.getType() ) ) { return (ComponentManager) manager; } } return null; } private Set getSearchRealms() { // determine realms to search Set realms = new LinkedHashSet(); for ( ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); classLoader != null; classLoader = classLoader.getParent() ) { if ( classLoader instanceof ClassRealm ) { ClassRealm realm = (ClassRealm) classLoader; while ( realm != null ) { realms.add( realm ); realm = realm.getParentRealm(); } } } if ( realms.isEmpty() ) { realms.addAll( container.getClassWorld().getRealms() ); } return realms; } private ComponentManager createComponentManager( ComponentDescriptor descriptor, String role, String roleHint ) throws ComponentLookupException { // Get the ComponentManagerFactory String instantiationStrategy = descriptor.getInstantiationStrategy(); if ( instantiationStrategy == null ) { instantiationStrategy = DEFAULT_INSTANTIATION_STRATEGY; } ComponentManagerFactory componentManagerFactory = componentManagerFactories.get( instantiationStrategy ); if ( componentManagerFactory == null ) { throw new ComponentLookupException( "Unsupported instantiation strategy: " + instantiationStrategy, role, roleHint, descriptor.getRealm() ); } // Get the LifecycleHandler LifecycleHandler lifecycleHandler; try { lifecycleHandler = lifecycleHandlerManager.getLifecycleHandler( descriptor.getLifecycleHandler() ); } catch ( UndefinedLifecycleHandlerException e ) { throw new ComponentLookupException( "Undefined lifecycle handler: " + descriptor.getLifecycleHandler(), role, roleHint, descriptor.getRealm() ); } // Create the ComponentManager ComponentManager componentManager = componentManagerFactory.createComponentManager( container, lifecycleHandler, descriptor, role, roleHint ); // Add componentManager to indexes Key key = new Key( descriptor.getRealm(), role, roleHint ); componentManagers.put( key, componentManager ); return componentManager; } private static class Key implements Comparable { private final ClassRealm realm; private final String role; private final String roleHint; private final int hashCode; private Key( ClassRealm realm, String role, String roleHint ) { this.realm = realm; if ( role == null ) { role = "null"; } this.role = role; if ( roleHint == null ) { roleHint = "null"; } this.roleHint = roleHint; int hashCode; hashCode = ( realm != null ? realm.hashCode() : 0 ); hashCode = 31 * hashCode + role.hashCode(); hashCode = 31 * hashCode + roleHint.hashCode(); this.hashCode = hashCode; } public boolean equals( Object o ) { if ( this == o ) { return true; } if ( o == null || getClass() != o.getClass() ) { return false; } Key key = (Key) o; return !( realm != null ? !realm.equals( key.realm ) : key.realm != null ) && role.equals( key.role ) && roleHint.equals( key.roleHint ); } public int hashCode() { return hashCode; } public String toString() { return realm + "/" + role + "/" + roleHint; } public int compareTo( Key o ) { int value; if ( realm != null ) { value = realm.getId().compareTo( o.realm.getId() ); } else { value = o.realm == null ? 0 : 1; } if ( value == 0 ) { value = role.compareTo( o.role ); if ( value == 0 ) { value = roleHint.compareTo( o.roleHint ); } } return value; } } } ././@LongLink0000000000000000000000000000016700000000000011571 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/DefaultPlexusContainer.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/DefaultPl0000644000175000017500000007474411174733555033531 0ustar twernertwernerpackage org.codehaus.plexus; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 static org.codehaus.plexus.PlexusConstants.PLEXUS_DEFAULT_HINT; import static org.codehaus.plexus.component.CastUtils.cast; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.Reader; import java.util.ArrayList; import java.util.List; import java.util.Map; import org.codehaus.plexus.classworlds.ClassWorld; import org.codehaus.plexus.classworlds.realm.ClassRealm; import org.codehaus.plexus.classworlds.realm.DuplicateRealmException; import org.codehaus.plexus.classworlds.realm.NoSuchRealmException; import org.codehaus.plexus.component.discovery.ComponentDiscoverer; import org.codehaus.plexus.component.discovery.ComponentDiscovererManager; import org.codehaus.plexus.component.discovery.ComponentDiscoveryEvent; import org.codehaus.plexus.component.discovery.ComponentDiscoveryListener; import org.codehaus.plexus.component.discovery.PlexusXmlComponentDiscoverer; import org.codehaus.plexus.component.factory.ComponentFactoryManager; import org.codehaus.plexus.component.repository.ComponentDescriptor; import org.codehaus.plexus.component.repository.ComponentSetDescriptor; import org.codehaus.plexus.component.repository.exception.ComponentLifecycleException; import org.codehaus.plexus.component.repository.exception.ComponentLookupException; import org.codehaus.plexus.component.repository.exception.ComponentRepositoryException; import org.codehaus.plexus.component.repository.io.PlexusTools; import org.codehaus.plexus.configuration.PlexusConfiguration; import org.codehaus.plexus.configuration.PlexusConfigurationException; import org.codehaus.plexus.configuration.PlexusConfigurationMerger; import org.codehaus.plexus.configuration.source.ConfigurationSource; import org.codehaus.plexus.configuration.xml.XmlPlexusConfiguration; import org.codehaus.plexus.container.initialization.ContainerInitializationContext; import org.codehaus.plexus.container.initialization.ContainerInitializationPhase; import org.codehaus.plexus.context.Context; import org.codehaus.plexus.context.ContextException; import org.codehaus.plexus.context.ContextMapAdapter; import org.codehaus.plexus.context.DefaultContext; import org.codehaus.plexus.logging.AbstractLogEnabled; import org.codehaus.plexus.logging.Logger; import org.codehaus.plexus.logging.LoggerManager; import org.codehaus.plexus.util.IOUtil; import org.codehaus.plexus.util.InterpolationFilterReader; import org.codehaus.plexus.util.ReaderFactory; /** * Default implementation of PlexusContainer and MutablePlexusContainer. * @author Jason van Zyl * @author Kenney Westerhof */ public class DefaultPlexusContainer extends AbstractLogEnabled implements MutablePlexusContainer { protected static final String DEFAULT_CONTAINER_NAME = "default"; protected static final String DEFAULT_REALM_NAME = "plexus.core"; /** * Arbitrary data associated with the container. Data in the container has highest precedence when configuring * a component to create. */ protected Context containerContext; protected PlexusConfiguration configuration; // todo: don't use a reader protected Reader configurationReader; protected ClassWorld classWorld; protected ClassRealm containerRealm; // ---------------------------------------------------------------------------- // Core components // ---------------------------------------------------------------------------- private ComponentRegistry componentRegistry; /** * Simple index (registry) of ComponentDiscovers and ComponentDiscoveryListener. */ protected ComponentDiscovererManager componentDiscovererManager; /** * Trivial class to look-up ComponentFactory instances in this container. */ protected ComponentFactoryManager componentFactoryManager; /** * Generic logger interface. */ protected LoggerManager loggerManager; /** * Converts a ComponentDescriptor into PlexusConfiguration. */ protected ConfigurationSource configurationSource; // ---------------------------------------------------------------------------- // // ---------------------------------------------------------------------------- // TODO: Is there a more threadpool-friendly way to do this? private ThreadLocal lookupRealm = new ThreadLocal(); public void addComponent( Object component, String role ) throws ComponentRepositoryException { ComponentDescriptor cd = new ComponentDescriptor(); cd.setRole( role ); cd.setRoleHint( PLEXUS_DEFAULT_HINT ); cd.setImplementation( role ); addComponentDescriptor( cd ); } public ClassRealm setLookupRealm( ClassRealm realm ) { ClassRealm oldRealm = lookupRealm.get(); lookupRealm.set( realm ); return oldRealm; } public ClassRealm getLookupRealm() { return lookupRealm.get(); } // ---------------------------------------------------------------------- // Constructors // ---------------------------------------------------------------------- public DefaultPlexusContainer() throws PlexusContainerException { construct( new DefaultContainerConfiguration() ); } public DefaultPlexusContainer( ContainerConfiguration c ) throws PlexusContainerException { construct( c ); } public ClassRealm createChildRealm( String id ) { try { return containerRealm.createChildRealm( id ); } catch ( DuplicateRealmException e ) { try { return classWorld.getRealm( id ); } catch ( NoSuchRealmException e1 ) { return null; } } } private void construct( ContainerConfiguration c ) throws PlexusContainerException { configurationSource = c.getConfigurationSource(); // ---------------------------------------------------------------------------- // ClassWorld // ---------------------------------------------------------------------------- classWorld = c.getClassWorld(); // Make sure we have a valid ClassWorld if ( classWorld == null ) { classWorld = new ClassWorld( DEFAULT_REALM_NAME, Thread.currentThread().getContextClassLoader() ); } containerRealm = c.getRealm(); if ( containerRealm == null ) { try { containerRealm = classWorld.getRealm( DEFAULT_REALM_NAME ); } catch ( NoSuchRealmException e ) { containerRealm = (ClassRealm) classWorld.getRealms().iterator().next(); if ( containerRealm == null ) { System.err.println( "No container realm! Expect errors." ); new Throwable().printStackTrace(); } } } setLookupRealm( containerRealm ); // ---------------------------------------------------------------------------- // Context // ---------------------------------------------------------------------------- if ( c.getContext() != null ) { containerContext = new DefaultContext( c.getContext() ); } else { containerContext = new DefaultContext(); } // ---------------------------------------------------------------------------- // Configuration // ---------------------------------------------------------------------------- InputStream in = null; if ( c.getContainerConfiguration() != null ) { in = toStream( c.getContainerConfiguration() ); } try { if ( c.getContainerConfigurationURL() != null ) { in = c.getContainerConfigurationURL().openStream(); } } catch ( IOException e ) { throw new PlexusContainerException( "Error reading configuration URL", e ); } try { configurationReader = in == null ? null : ReaderFactory.newXmlReader( in ); } catch ( IOException e ) { throw new PlexusContainerException( "Error reading configuration file", e ); } try { initialize( c ); start(); } finally { IOUtil.close( configurationReader ); } for( Class clazz : c.getComponentDiscoverers() ) { try { ComponentDiscoverer cd = (ComponentDiscoverer) lookup( clazz ); componentDiscovererManager.addComponentDiscoverer( cd ); } catch ( ComponentLookupException e ) { } } for( Class clazz : c.getComponentDiscoveryListeners() ) { try { ComponentDiscoveryListener cdl = (ComponentDiscoveryListener) lookup( clazz ); componentDiscovererManager.registerComponentDiscoveryListener( cdl ); } catch ( ComponentLookupException e ) { } } } // ---------------------------------------------------------------------------- // Lookup // ---------------------------------------------------------------------------- private Class getInterfaceClass( String role, String hint ) { ComponentDescriptor cd; if ( hint == null ) { cd = getComponentDescriptor( role ); } else { cd = getComponentDescriptor( role, hint ); } if ( cd != null ) { try { ClassRealm realm = getLookupRealm(); if ( realm != null ) { return realm.loadClass( role ); } else { ClassLoader loader = cd.getImplementationClass().getClassLoader(); if ( loader != null ) { return loader.loadClass( role ); } } } catch ( ClassNotFoundException e ) { return Object.class; } } return Object.class; } private Class getRoleClass( String role ) { return getInterfaceClass( role, null ); } private Class getRoleClass( String role, String hint ) { return getInterfaceClass( role, hint ); } public Object lookup( String role ) throws ComponentLookupException { return componentRegistry.lookup( getRoleClass( role ), role, PLEXUS_DEFAULT_HINT ); } public Object lookup( String role, String roleHint ) throws ComponentLookupException { return componentRegistry.lookup( getRoleClass( role, roleHint ), role, roleHint ); } public T lookup( Class type ) throws ComponentLookupException { return componentRegistry.lookup( type, type.getName(), PLEXUS_DEFAULT_HINT ); } public T lookup( Class type, String roleHint ) throws ComponentLookupException { return componentRegistry.lookup( type, type.getName(), roleHint ); } public T lookup( Class type, String role, String roleHint ) throws ComponentLookupException { return componentRegistry.lookup( type, role, roleHint ); } public List lookupList( String role ) throws ComponentLookupException { return cast(componentRegistry.lookupList( getRoleClass( role ), role, null)); } public List lookupList( String role, List roleHints ) throws ComponentLookupException { return cast(componentRegistry.lookupList( getRoleClass( role ), role, roleHints )); } public List lookupList( Class type ) throws ComponentLookupException { return componentRegistry.lookupList( type, type.getName(), null ); } public List lookupList( Class type, List roleHints ) throws ComponentLookupException { return componentRegistry.lookupList( type, type.getName(), roleHints ); } public Map lookupMap( String role ) throws ComponentLookupException { return cast(componentRegistry.lookupMap( getRoleClass( role ), role, null )); } public Map lookupMap( String role, List roleHints ) throws ComponentLookupException { return cast(componentRegistry.lookupMap( getRoleClass( role ), role, roleHints )); } public Map lookupMap( Class type ) throws ComponentLookupException { return componentRegistry.lookupMap( type, type.getName(), null ); } public Map lookupMap( Class type, List roleHints ) throws ComponentLookupException { return componentRegistry.lookupMap( type, type.getName(), roleHints ); } // ---------------------------------------------------------------------- // Component Descriptor Lookup // ---------------------------------------------------------------------- public boolean hasComponent( String role ) { return componentRegistry.getComponentDescriptor( Object.class, role, PLEXUS_DEFAULT_HINT ) != null; } public boolean hasComponent( String role, String roleHint ) { return componentRegistry.getComponentDescriptor( Object.class, role, roleHint ) != null; } public boolean hasComponent( Class type ) { return componentRegistry.getComponentDescriptor( type, type.getName(), PLEXUS_DEFAULT_HINT ) != null; } public boolean hasComponent( Class type, String roleHint ) { return componentRegistry.getComponentDescriptor( type, type.getName(), roleHint ) != null; } public boolean hasComponent( Class type, String role, String roleHint ) { return componentRegistry.getComponentDescriptor( type, role, roleHint ) != null; } public ComponentDescriptor getComponentDescriptor( String role ) { return componentRegistry.getComponentDescriptor( Object.class, role, PLEXUS_DEFAULT_HINT ); } public ComponentDescriptor getComponentDescriptor( String role, String roleHint ) { return componentRegistry.getComponentDescriptor( Object.class, role, roleHint ); } public ComponentDescriptor getComponentDescriptor( Class type, String role, String roleHint ) { return componentRegistry.getComponentDescriptor( type, role, roleHint ); } public Map> getComponentDescriptorMap( String role ) { return cast(componentRegistry.getComponentDescriptorMap( Object.class, role )); } public Map> getComponentDescriptorMap( Class type, String role ) { return componentRegistry.getComponentDescriptorMap( type, role ); } public List> getComponentDescriptorList( String role ) { return cast(componentRegistry.getComponentDescriptorList( Object.class, role )); } public List> getComponentDescriptorList( Class type, String role ) { return componentRegistry.getComponentDescriptorList( type, role ); } public void addComponentDescriptor( ComponentDescriptor componentDescriptor ) throws ComponentRepositoryException { if ( componentDescriptor.getRealm() == null ) { componentDescriptor.setRealm( this.containerRealm ); // throw new ComponentImplementationNotFoundException( "ComponentDescriptor is missing realmId" ); } componentRegistry.addComponentDescriptor( componentDescriptor ); } // ---------------------------------------------------------------------- // Component Release // ---------------------------------------------------------------------- public void release( Object component ) throws ComponentLifecycleException { componentRegistry.release( component ); } public void releaseAll( Map components ) throws ComponentLifecycleException { for ( Object component : components.values() ) { release( component ); } } public void releaseAll( List components ) throws ComponentLifecycleException { for ( Object component : components ) { release( component ); } } // ---------------------------------------------------------------------- // Lifecycle Management // ---------------------------------------------------------------------- protected void initialize( ContainerConfiguration containerConfiguration ) throws PlexusContainerException { try { initializeConfiguration( containerConfiguration ); initializePhases( containerConfiguration ); containerContext.put( PlexusConstants.PLEXUS_KEY, this ); discoverComponents( getContainerRealm() ); PlexusConfiguration[] loadOnStartComponents = getConfiguration().getChild( "load-on-start" ).getChildren( "component" ); getLogger().debug( "Found " + loadOnStartComponents.length + " components to load on start" ); ClassLoader prevCl = Thread.currentThread().getContextClassLoader(); try { for ( PlexusConfiguration loadOnStartComponent : loadOnStartComponents ) { String role = loadOnStartComponent.getChild( "role" ).getValue( null ); String roleHint = loadOnStartComponent.getChild( "role-hint" ).getValue( null ); if ( role == null ) { throw new PlexusContainerException( "Missing 'role' element from load-on-start." ); } if ( roleHint == null ) { roleHint = PlexusConstants.PLEXUS_DEFAULT_HINT; } if ( roleHint.equals( "*" ) ) { getLogger().info( "Loading on start all components with [role]: " + "[" + role + "]" ); lookupList( role ); } else { getLogger().info( "Loading on start [role,roleHint]: " + "[" + role + "," + roleHint + "]" ); lookup( role, roleHint ); } } } catch ( ComponentLookupException e ) { throw new PlexusContainerException( "Error looking up load-on-start component.", e ); } finally { Thread.currentThread().setContextClassLoader( prevCl ); } } catch ( ContextException e ) { throw new PlexusContainerException( "Error processing configuration", e ); } catch ( PlexusConfigurationException e ) { throw new PlexusContainerException( "Error configuring components", e ); } catch ( IOException e ) { throw new PlexusContainerException( "Error reading configuration file", e ); } catch ( ComponentRepositoryException e ) { throw new PlexusContainerException( "Error discoverying components.", e ); } } protected void initializePhases( ContainerConfiguration containerConfiguration ) throws PlexusContainerException { ContainerInitializationPhase[] initPhases = containerConfiguration.getInitializationPhases(); ContainerInitializationContext initializationContext = new ContainerInitializationContext( this, classWorld, containerRealm, configuration, containerConfiguration ); for ( ContainerInitializationPhase phase : initPhases ) { try { phase.execute( initializationContext ); } catch ( Exception e ) { throw new PlexusContainerException( "Error initializaing container in " + phase.getClass().getName() + ".", e ); } } } protected void start() throws PlexusContainerException { // XXX this is called after initializeConfiguration - is this correct? configuration = null; } public void dispose() { try { componentRegistry.dispose(); boolean needToDisposeRealm = false; try { containerRealm.setParentRealm( null ); if ( needToDisposeRealm ) { classWorld.disposeRealm( containerRealm.getId() ); } } catch ( NoSuchRealmException e ) { getLogger().debug( "Failed to dispose realm." ); } } finally { lookupRealm.set( null ); } } public void addContextValue( Object key, Object value ) { containerContext.put( key, value ); } // ---------------------------------------------------------------------- // Misc Configuration // ---------------------------------------------------------------------- public ClassWorld getClassWorld() { return classWorld; } public void setClassWorld( ClassWorld classWorld ) { this.classWorld = classWorld; } public ClassRealm getContainerRealm() { return containerRealm; } public void setContainerRealm( ClassRealm containerRealm ) { this.containerRealm = containerRealm; } // ---------------------------------------------------------------------- // Context // ---------------------------------------------------------------------- public Context getContext() { return containerContext; } // ---------------------------------------------------------------------- // Configuration // ---------------------------------------------------------------------- // TODO: put this in a separate helper class and turn into a component if possible, too big. protected void initializeConfiguration( ContainerConfiguration c ) throws PlexusConfigurationException, ContextException, IOException { // We need an empty plexus configuration for merging. This is a function of removing the // plexus-boostrap.xml file. configuration = new XmlPlexusConfiguration( "plexus" ); if ( configurationReader != null ) { // User userConfiguration PlexusConfiguration userConfiguration = PlexusTools.buildConfiguration( "", getInterpolationConfigurationReader( configurationReader ) ); // Merger of bootstrapConfiguration and user userConfiguration configuration = PlexusConfigurationMerger.merge( userConfiguration, configuration ); } } protected Reader getInterpolationConfigurationReader( Reader reader ) { return new InterpolationFilterReader( reader, new ContextMapAdapter( containerContext ) ); } public Logger getLogger() { return super.getLogger(); } // ---------------------------------------------------------------------- // Discovery // ---------------------------------------------------------------------- public void registerComponentDiscoveryListener( ComponentDiscoveryListener listener ) { componentDiscovererManager.registerComponentDiscoveryListener( listener ); } public void removeComponentDiscoveryListener( ComponentDiscoveryListener listener ) { componentDiscovererManager.removeComponentDiscoveryListener( listener ); } // ---------------------------------------------------------------------------- // Mutable Container Interface // ---------------------------------------------------------------------------- public ComponentRegistry getComponentRegistry() { return componentRegistry; } public void setComponentRegistry( ComponentRegistry componentRegistry ) { this.componentRegistry = componentRegistry; } public ComponentDiscovererManager getComponentDiscovererManager() { return componentDiscovererManager; } public void setComponentDiscovererManager( ComponentDiscovererManager componentDiscovererManager ) { this.componentDiscovererManager = componentDiscovererManager; } public ComponentFactoryManager getComponentFactoryManager() { return componentFactoryManager; } public void setComponentFactoryManager( ComponentFactoryManager componentFactoryManager ) { this.componentFactoryManager = componentFactoryManager; } // Configuration public PlexusConfiguration getConfiguration() { return configuration; } public void setConfiguration( PlexusConfiguration configuration ) { this.configuration = configuration; } // ---------------------------------------------------------------------------- // Component Realms // ---------------------------------------------------------------------------- public ClassRealm getComponentRealm( String realmId ) { ClassRealm realm = null; try { realm = classWorld.getRealm( realmId ); } catch ( NoSuchRealmException e ) { // This should never happen: when a component is discovered, it is discovered from a realm and // it is at that point the realm id is assigned to the component descriptor. } if ( realm == null ) { // The core components need the container realm. realm = containerRealm; } return realm; } public void removeComponentRealm( ClassRealm realm ) throws PlexusContainerException { if ( getContainerRealm().getId().equals( realm.getId() ) ) { throw new IllegalArgumentException( "Cannot remove container realm: " + realm.getId() + "\n(trying to remove container realm as if it were a component realm)." ); } componentRegistry.removeComponentRealm( realm ); ClassRealm lookupRealm = getLookupRealm(); if ( ( lookupRealm != null ) && lookupRealm.getId().equals( realm.getId() ) ) { setLookupRealm( getContainerRealm() ); } } private InputStream toStream( String resource ) throws PlexusContainerException { if ( resource == null ) { return null; } String relativeResource = resource; if ( resource.startsWith( "/" ) ) { relativeResource = resource.substring( 1 ); } InputStream is = getClass().getClassLoader().getResourceAsStream( relativeResource ); if ( is == null ) { try { return new FileInputStream( resource ); } catch ( FileNotFoundException e ) { return null; } } return is; } /** * Utility method to get a default lookup realm for a component. */ public ClassRealm getLookupRealm( Object component ) { if ( component.getClass().getClassLoader() instanceof ClassRealm ) { return ( (ClassRealm) component.getClass().getClassLoader() ); } else { return getLookupRealm(); } } public void setConfigurationSource( ConfigurationSource configurationSource ) { this.configurationSource = configurationSource; } public ConfigurationSource getConfigurationSource() { return configurationSource; } public LoggerManager getLoggerManager() { // TODO Auto-generated method stub return loggerManager; } public void setLoggerManager( LoggerManager loggerManager ) { this.loggerManager = loggerManager; } // Discovery public List> discoverComponents( ClassRealm realm ) throws PlexusConfigurationException, ComponentRepositoryException { List componentSetDescriptors = new ArrayList(); List> discoveredComponentDescriptors = new ArrayList>(); for ( ComponentDiscoverer componentDiscoverer : getComponentDiscovererManager().getComponentDiscoverers() ) { for ( ComponentSetDescriptor componentSetDescriptor : componentDiscoverer.findComponents( getContext(), realm ) ) { // Here we should collect all the urls // do the interpolation against the context // register all the components // allow interception and replacement of the components componentSetDescriptors.add( componentSetDescriptor ); for ( ComponentDescriptor componentDescriptor : componentSetDescriptor.getComponents() ) { addComponentDescriptor( componentDescriptor ); discoveredComponentDescriptors.add( componentDescriptor ); } // Fire the event ComponentDiscoveryEvent event = new ComponentDiscoveryEvent( componentSetDescriptor ); componentDiscovererManager.fireComponentDiscoveryEvent( event ); } } return discoveredComponentDescriptors; } } ././@LongLink0000000000000000000000000000014600000000000011566 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/container/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/container0000755000175000017500000000000011225200002033556 5ustar twernertwerner././@LongLink0000000000000000000000000000016500000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/container/initialization/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/container0000755000175000017500000000000011225200002033556 5ustar twernertwerner././@LongLink0000000000000000000000000000023600000000000011566 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/container/initialization/AbstractContainerInitializationPhase.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/container0000644000175000017500000000144610531217373033607 0ustar twernertwernerpackage org.codehaus.plexus.container.initialization; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 abstract class AbstractContainerInitializationPhase implements ContainerInitializationPhase { } ././@LongLink0000000000000000000000000000024000000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/container/initialization/InitializeUserConfigurationSourcePhase.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/container0000644000175000017500000001004211107373274033602 0ustar twernertwernerpackage org.codehaus.plexus.container.initialization; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.ArrayList; import java.util.List; import org.codehaus.plexus.PlexusConstants; import org.codehaus.plexus.component.repository.ComponentDescriptor; import org.codehaus.plexus.component.repository.exception.ComponentLookupException; import org.codehaus.plexus.component.repository.exception.ComponentRepositoryException; import org.codehaus.plexus.configuration.source.ChainedConfigurationSource; import org.codehaus.plexus.configuration.source.ConfigurationSource; /** * @author Jason van Zyl * @author cstamas */ public class InitializeUserConfigurationSourcePhase extends AbstractCoreComponentInitializationPhase { public void initializeCoreComponent( ContainerInitializationContext context ) throws ContainerInitializationException { ConfigurationSource existingConfigurationSource = context.getContainer().getConfigurationSource(); try { // is the user overriding the ConfigurationSource (role-hint: default) or only extending it? if ( context.getContainer().hasComponent( ConfigurationSource.class ) ) { // overriding ConfigurationSource cs = context.getContainer().lookup( ConfigurationSource.class ); // swap the user provided configuration source with current one context.getContainer().setConfigurationSource( cs ); } else { // extending List userConfigurationSources = context.getContainer().lookupList( ConfigurationSource.class ); if ( userConfigurationSources.size() > 0 ) { List configurationSources = new ArrayList( userConfigurationSources.size() + 1 ); // adding user provied ones to be able to interfere configurationSources.addAll( userConfigurationSources ); // at the end adding the container source, to make sure config will be returned // from plexus.xml if no user interference is given configurationSources.add( existingConfigurationSource ); ConfigurationSource configurationSource = new ChainedConfigurationSource( configurationSources ); context.getContainer().setConfigurationSource( configurationSource ); } // register the default source, either the chained or the existing one as default ComponentDescriptor cd = new ComponentDescriptor(); cd.setRole( ConfigurationSource.ROLE ); cd.setRoleHint( PlexusConstants.PLEXUS_DEFAULT_HINT ); cd.setImplementationClass( context.getContainer().getConfigurationSource().getClass() ); try { context.getContainer().addComponentDescriptor( cd ); } catch ( ComponentRepositoryException cre ) { throw new ContainerInitializationException( "Error setting up configuration source.", cre ); } } } catch ( ComponentLookupException e ) { throw new ContainerInitializationException( "Error setting up user configuration source.", e ); } } } ././@LongLink0000000000000000000000000000023100000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/container/initialization/InitializeSystemPropertiesPhase.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/container0000644000175000017500000000337510706572365033623 0ustar twernertwernerpackage org.codehaus.plexus.container.initialization; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.configuration.PlexusConfiguration; /** * @author Jason van Zyl */ public class InitializeSystemPropertiesPhase extends AbstractContainerInitializationPhase { public void execute( ContainerInitializationContext context ) throws ContainerInitializationException { PlexusConfiguration[] systemProperties = context.getContainerXmlConfiguration().getChild( "system-properties" ).getChildren( "property" ); for ( int i = 0; i < systemProperties.length; ++i ) { String name = systemProperties[i].getAttribute( "name", null ); String value = systemProperties[i].getAttribute( "value", null ); if ( name == null ) { throw new ContainerInitializationException( "Missing 'name' attribute in 'property' tag. " ); } if ( value == null ) { throw new ContainerInitializationException( "Missing 'value' attribute in 'property' tag. " ); } System.getProperties().setProperty( name, value ); } } } ././@LongLink0000000000000000000000000000024200000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/container/initialization/AbstractCoreComponentInitializationPhase.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/container0000644000175000017500000000214510746717116033614 0ustar twernertwernerpackage org.codehaus.plexus.container.initialization; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 abstract class AbstractCoreComponentInitializationPhase extends AbstractContainerInitializationPhase { public void execute( ContainerInitializationContext context ) throws ContainerInitializationException { initializeCoreComponent( context ); } protected abstract void initializeCoreComponent( ContainerInitializationContext context ) throws ContainerInitializationException; } ././@LongLink0000000000000000000000000000024300000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/container/initialization/InitializeComponentDiscovererManagerPhase.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/container0000644000175000017500000000423611174733555033620 0ustar twernertwernerpackage org.codehaus.plexus.container.initialization; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.component.discovery.ComponentDiscovererManager; import org.codehaus.plexus.component.discovery.ComponentDiscoveryListener; /** * @author Jason van Zyl */ public class InitializeComponentDiscovererManagerPhase extends AbstractCoreComponentInitializationPhase { public void initializeCoreComponent( ContainerInitializationContext context ) throws ContainerInitializationException { ComponentDiscovererManager componentDiscovererManager = context.getContainerConfiguration().getComponentDiscovererManager(); context.getContainer().setComponentDiscovererManager( componentDiscovererManager ); for ( ComponentDiscoveryListener listener : componentDiscovererManager.getComponentDiscoveryListeners().keySet() ) { try { // This is a hack until we have completely live components context.getContainer().addComponent( listener, listener.getClass().getName() ); context.getContainer().getComponentDiscovererManager().removeComponentDiscoveryListener( listener ); ComponentDiscoveryListener cdl = context.getContainer().lookup( listener.getClass() ); context.getContainer().getComponentDiscovererManager().registerComponentDiscoveryListener( cdl ); } catch ( Exception e ) { throw new ContainerInitializationException( "Error initializing component discovery listener.", e ); } } } } ././@LongLink0000000000000000000000000000023200000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/container/initialization/ContainerInitializationException.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/container0000644000175000017500000000216110531217373033602 0ustar twernertwernerpackage org.codehaus.plexus.container.initialization; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 ContainerInitializationException extends Exception { public ContainerInitializationException( String id ) { super( id ); } public ContainerInitializationException( String id, Throwable throwable ) { super( id, throwable ); } public ContainerInitializationException( Throwable throwable ) { super( throwable ); } } ././@LongLink0000000000000000000000000000024000000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/container/initialization/InitializeComponentFactoryManagerPhase.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/container0000644000175000017500000000371510706703104033604 0ustar twernertwernerpackage org.codehaus.plexus.container.initialization; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.PlexusConstants; import org.codehaus.plexus.component.factory.ComponentFactoryManager; import org.codehaus.plexus.context.ContextException; import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable; /** * @author Jason van Zyl */ public class InitializeComponentFactoryManagerPhase extends AbstractCoreComponentInitializationPhase { public void initializeCoreComponent( ContainerInitializationContext context ) throws ContainerInitializationException { ComponentFactoryManager componentFactoryManager = context.getContainerConfiguration().getComponentFactoryManager(); if ( componentFactoryManager instanceof Contextualizable ) { //TODO: this is wrong here jvz. context.getContainer().getContext().put( PlexusConstants.PLEXUS_KEY, context.getContainer() ); try { ( (Contextualizable) componentFactoryManager).contextualize( context.getContainer().getContext() ); } catch ( ContextException e ) { throw new ContainerInitializationException( "Error contextualization component factory manager.", e ); } } context.getContainer().setComponentFactoryManager( componentFactoryManager ); } } ././@LongLink0000000000000000000000000000023000000000000011560 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/container/initialization/ContainerInitializationContext.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/container0000644000175000017500000000445610706572365033624 0ustar twernertwernerpackage org.codehaus.plexus.container.initialization; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.ContainerConfiguration; import org.codehaus.plexus.DefaultPlexusContainer; import org.codehaus.plexus.classworlds.ClassWorld; import org.codehaus.plexus.classworlds.realm.ClassRealm; import org.codehaus.plexus.configuration.PlexusConfiguration; /** * @author Jason van Zyl */ public class ContainerInitializationContext { private DefaultPlexusContainer container; ClassWorld classWorld; ClassRealm containerRealm; PlexusConfiguration containerXmlConfiguration; ContainerConfiguration containerConfiguration; public ContainerInitializationContext( DefaultPlexusContainer container, ClassWorld classWorld, ClassRealm containerRealm, PlexusConfiguration configuration, ContainerConfiguration containerConfiguration ) { this.container = container; this.classWorld = classWorld; this.containerRealm = containerRealm; this.containerXmlConfiguration = configuration; this.containerConfiguration = containerConfiguration; } public DefaultPlexusContainer getContainer() { return container; } public ClassWorld getClassWorld() { return classWorld; } public ClassRealm getContainerRealm() { return containerRealm; } public PlexusConfiguration getContainerXmlConfiguration() { return containerXmlConfiguration; } public ContainerConfiguration getContainerConfiguration() { return containerConfiguration; } } ././@LongLink0000000000000000000000000000023200000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/container/initialization/InitializeComponentRegistryPhase.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/container0000644000175000017500000000775311174733555033627 0ustar twernertwernerpackage org.codehaus.plexus.container.initialization; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.component.repository.ComponentRepository; import org.codehaus.plexus.component.repository.ComponentDescriptor; import org.codehaus.plexus.component.repository.io.PlexusTools; import org.codehaus.plexus.component.repository.exception.ComponentRepositoryException; import org.codehaus.plexus.component.manager.PerLookupComponentManagerFactory; import org.codehaus.plexus.component.manager.SingletonComponentManagerFactory; import org.codehaus.plexus.configuration.PlexusConfiguration; import org.codehaus.plexus.configuration.PlexusConfigurationException; import org.codehaus.plexus.DefaultComponentRegistry; import org.codehaus.plexus.ComponentRegistry; import org.codehaus.plexus.lifecycle.LifecycleHandlerManager; /** * @author Jason van Zyl */ public class InitializeComponentRegistryPhase implements ContainerInitializationPhase { public void execute( ContainerInitializationContext context ) throws ContainerInitializationException { ComponentRepository repository = getComponentRepository( context ); LifecycleHandlerManager lifecycleHandlerManager = getLifecycleHandlerManager( context ); ComponentRegistry componentRegistry = new DefaultComponentRegistry( context.getContainer(), repository, lifecycleHandlerManager ); componentRegistry.registerComponentManagerFactory( new PerLookupComponentManagerFactory() ); componentRegistry.registerComponentManagerFactory( new SingletonComponentManagerFactory() ); context.getContainer().setComponentRegistry( componentRegistry ); } private ComponentRepository getComponentRepository( ContainerInitializationContext context ) throws ContainerInitializationException { ComponentRepository repository = context.getContainerConfiguration().getComponentRepository(); // Add the components defined in the container xml configuration try { PlexusConfiguration configuration = context.getContainerXmlConfiguration(); PlexusConfiguration[] componentConfigurations = configuration.getChild( "components" ).getChildren( "component" ); for ( PlexusConfiguration componentConfiguration : componentConfigurations ) { ComponentDescriptor componentDescriptor = PlexusTools.buildComponentDescriptor( componentConfiguration, context.getContainer().getContainerRealm() ); componentDescriptor.setRealm( context.getContainer().getContainerRealm() ); repository.addComponentDescriptor( componentDescriptor ); } } catch ( PlexusConfigurationException e ) { throw new ContainerInitializationException( "Error initializing component repository: " + "Cannot unmarshall component descriptor: ", e ); } catch ( ComponentRepositoryException e ) { throw new ContainerInitializationException( "Error initializing component repository: ", e ); } return repository; } private LifecycleHandlerManager getLifecycleHandlerManager( ContainerInitializationContext context ) { LifecycleHandlerManager lifecycleHandlerManager = context.getContainerConfiguration().getLifecycleHandlerManager(); lifecycleHandlerManager.initialize(); return lifecycleHandlerManager; } }././@LongLink0000000000000000000000000000022600000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/container/initialization/ContainerInitializationPhase.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/container0000644000175000017500000000163210531217373033604 0ustar twernertwernerpackage org.codehaus.plexus.container.initialization; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 ContainerInitializationPhase { String ROLE = ContainerInitializationPhase.class.getName(); void execute( ContainerInitializationContext context ) throws ContainerInitializationException; } ././@LongLink0000000000000000000000000000022600000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/container/initialization/InitializeLoggerManagerPhase.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/container0000644000175000017500000000610411111156773033604 0ustar twernertwernerpackage org.codehaus.plexus.container.initialization; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.PlexusConstants; import org.codehaus.plexus.PlexusContainer; import org.codehaus.plexus.component.repository.ComponentDescriptor; import org.codehaus.plexus.component.repository.exception.ComponentRepositoryException; import org.codehaus.plexus.component.repository.exception.ComponentLookupException; import org.codehaus.plexus.logging.Logger; import org.codehaus.plexus.logging.LoggerManager; import org.codehaus.plexus.logging.console.ConsoleLoggerManager; /** @author Jason van Zyl */ public class InitializeLoggerManagerPhase extends AbstractCoreComponentInitializationPhase { public void initializeCoreComponent( ContainerInitializationContext context ) throws ContainerInitializationException { LoggerManager loggerManager = context.getContainer().getLoggerManager(); // ---------------------------------------------------------------------- // The logger manager may have been set programmatically so we need // to check. If it hasn't then we will try to look up a logger manager // that may have been specified in the plexus.xml file. If that doesn't // work then we'll programmatcially stuff in the console logger. // ---------------------------------------------------------------------- if ( loggerManager == null ) { try { loggerManager = context.getContainer().lookup( LoggerManager.class ); } catch ( ComponentLookupException e ) { ComponentDescriptor cd = new ComponentDescriptor(); cd.setRole( LoggerManager.ROLE ); cd.setRoleHint( PlexusConstants.PLEXUS_DEFAULT_HINT ); cd.setImplementation( ConsoleLoggerManager.class.getName() ); try { context.getContainer().addComponentDescriptor( cd ); } catch ( ComponentRepositoryException cre ) { throw new ContainerInitializationException( "Error setting up logging manager.", cre ); } loggerManager = new ConsoleLoggerManager( "info" ); } context.getContainer().setLoggerManager( loggerManager ); } Logger logger = loggerManager.getLoggerForComponent( PlexusContainer.class.getName() ); context.getContainer().enableLogging( logger ); } } ././@LongLink0000000000000000000000000000024500000000000011566 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/container/initialization/InitializeContainerConfigurationSourcePhase.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/container0000644000175000017500000000337110777725005033616 0ustar twernertwernerpackage org.codehaus.plexus.container.initialization; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.configuration.source.ConfigurationSource; import org.codehaus.plexus.configuration.source.ContainerConfigurationSource; /** * @author Jason van Zyl * @author cstamas */ public class InitializeContainerConfigurationSourcePhase extends AbstractCoreComponentInitializationPhase { public void initializeCoreComponent( ContainerInitializationContext context ) throws ContainerInitializationException { ConfigurationSource configurationSource = context.getContainer().getConfigurationSource(); // ---------------------------------------------------------------------- // The configurationSource may have been set programmatically so we need // to check. If it hasn't then we will add the default container config source. // ---------------------------------------------------------------------- if ( configurationSource == null ) { // adding default source for container to enable lookups context.getContainer().setConfigurationSource( new ContainerConfigurationSource() ); } } } plexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/logging/0000755000175000017500000000000011225200002033301 5ustar twernertwerner././@LongLink0000000000000000000000000000016600000000000011570 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/logging/LoggerManager.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/logging/L0000644000175000017500000000404110722311152033430 0ustar twernertwernerpackage org.codehaus.plexus.logging; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * @author Trygve Laugstøl * @version $Id: LoggerManager.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public interface LoggerManager { String ROLE = LoggerManager.class.getName(); /** * Sets the threshold for all new loggers. It will NOT affect the existing loggers. * * This is usually only set once while the logger manager is configured. * * @param threshold The new threshold. */ void setThreshold( int threshold ); /** * Returns the current threshold for all new loggers. * * @return Returns the current threshold for all new loggers. */ int getThreshold(); /** * Sets the threshold for all loggers. It affects all the existing loggers * as well as future loggers. * * @param threshold The new threshold. */ void setThresholds( int threshold ); // The new stuff void setThreshold( String role, int threshold ); void setThreshold( String role, String roleHint, int threshold ); int getThreshold( String role ); int getThreshold( String role, String roleHint ); Logger getLoggerForComponent( String role ); Logger getLoggerForComponent( String role, String roleHint ); void returnComponentLogger( String role ); void returnComponentLogger( String role, String hint ); int getActiveLoggerCount(); } ././@LongLink0000000000000000000000000000016300000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/logging/LogEnabled.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/logging/L0000644000175000017500000000143710706562153033451 0ustar twernertwernerpackage org.codehaus.plexus.logging; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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. */ /** * @version $Id: LogEnabled.java 6965 2007-10-21 05:32:27Z jvanzyl $ */ public interface LogEnabled { void enableLogging( Logger logger ); } ././@LongLink0000000000000000000000000000017600000000000011571 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/logging/AbstractLoggerManager.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/logging/A0000644000175000017500000000356410722311152033426 0ustar twernertwernerpackage org.codehaus.plexus.logging; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * @author Trygve Laugstøl * @version $Id: AbstractLoggerManager.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public abstract class AbstractLoggerManager implements LoggerManager { /** */ public AbstractLoggerManager() { } public void setThreshold( String role, int threshold ) { setThreshold( role, null, threshold ); } public int getThreshold( String role ) { return getThreshold( role, null ); } public Logger getLoggerForComponent( String role ) { return getLoggerForComponent( role, null ); } public void returnComponentLogger( String role ) { returnComponentLogger( role, null ); } /** * Creates a string key useful as keys in Map's. * * @param role The component role. * @param roleHint The component role hint. * @return Returns a string thats useful as a key for components. */ protected String toMapKey( String role, String roleHint ) { if ( roleHint == null ) { return role; } else { return role + ":" + roleHint; } } } ././@LongLink0000000000000000000000000000015700000000000011570 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/logging/Logger.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/logging/L0000644000175000017500000000374310722311152033440 0ustar twernertwernerpackage org.codehaus.plexus.logging; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * @author Trygve Laugstøl * @version $Id: Logger.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public interface Logger { /** Typecode for debugging messages. */ int LEVEL_DEBUG = 0; /** Typecode for informational messages. */ int LEVEL_INFO = 1; /** Typecode for warning messages. */ int LEVEL_WARN = 2; /** Typecode for error messages. */ int LEVEL_ERROR = 3; /** Typecode for fatal error messages. */ int LEVEL_FATAL = 4; /** Typecode for disabled log levels. */ int LEVEL_DISABLED = 5; void debug( String message ); void debug( String message, Throwable throwable ); boolean isDebugEnabled(); void info( String message ); void info( String message, Throwable throwable ); boolean isInfoEnabled(); void warn( String message ); void warn( String message, Throwable throwable ); boolean isWarnEnabled(); void error( String message ); void error( String message, Throwable throwable ); boolean isErrorEnabled(); void fatalError( String message ); void fatalError( String message, Throwable throwable ); boolean isFatalErrorEnabled(); Logger getChildLogger( String name ); int getThreshold(); void setThreshold( int threshold ); String getName(); } ././@LongLink0000000000000000000000000000015400000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/logging/console/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/logging/c0000755000175000017500000000000011225200002033444 5ustar twernertwerner././@LongLink0000000000000000000000000000020500000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/logging/console/ConsoleLoggerManager.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/logging/c0000644000175000017500000001543011074750636033502 0ustar twernertwernerpackage org.codehaus.plexus.logging.console; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.logging.AbstractLoggerManager; import org.codehaus.plexus.logging.Logger; import org.codehaus.plexus.logging.LoggerManager; import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable; import java.util.HashMap; import java.util.Iterator; import java.util.Locale; import java.util.Map; /** * This is a simple logger manager that will only write the logging statements to the console. * * Sample configuration: *
 * 
 *   org.codehaus.plexus.logging.ConsoleLoggerManager
 *   
 *     DEBUG
 *   
 * 
 * 
* * @author Jason van Zyl * @author Trygve Laugstøl * @version $Id: ConsoleLoggerManager.java 7789 2008-10-13 22:54:22Z bentmann $ */ public class ConsoleLoggerManager extends AbstractLoggerManager implements LoggerManager, Initializable { /** * Message of this level or higher will be logged. * * This field is set by the plexus container thus the name is 'threshold'. The field * currentThreshold contains the current setting of the threshold. */ private String threshold = "info"; private int currentThreshold; private Map loggers; /** The number of active loggers in use. */ private int loggerCount; private boolean bootTimeLogger = false; public ConsoleLoggerManager() { } /** * This special constructor is called directly when the container is bootstrapping itself. */ public ConsoleLoggerManager( String threshold ) { this.threshold = threshold; bootTimeLogger = true; initialize(); } public void initialize() { debug( "Initializing ConsoleLoggerManager: " + this.hashCode() + "." ); // if ( !bootTimeLogger ) // new Throwable().printStackTrace(System.err); currentThreshold = parseThreshold( threshold ); if ( currentThreshold == -1 ) { debug( "Could not parse the threshold level: '" + threshold + "', setting to debug." ); currentThreshold = Logger.LEVEL_DEBUG; } loggers = new HashMap(); } public void setThreshold( int currentThreshold ) { this.currentThreshold = currentThreshold; } public void setThresholds( int currentThreshold ) { this.currentThreshold = currentThreshold; for ( Iterator logs = loggers.values().iterator(); logs.hasNext(); ) { Logger logger = (Logger) logs.next(); logger.setThreshold( currentThreshold ); } } /** * @return Returns the threshold. */ public int getThreshold() { return currentThreshold; } // new stuff public void setThreshold( String role, String roleHint, int threshold ) { ConsoleLogger logger; String name; name = toMapKey( role, roleHint ); logger = (ConsoleLogger)loggers.get( name ); if(logger == null) { debug( "Trying to set the threshold of a unknown logger '" + name + "'." ); return; // nothing to do } logger.setThreshold( threshold ); } public int getThreshold( String role, String roleHint ) { ConsoleLogger logger; String name; name = toMapKey( role, roleHint ); logger = (ConsoleLogger)loggers.get( name ); if(logger == null) { debug( "Trying to get the threshold of a unknown logger '" + name + "'." ); return Logger.LEVEL_DEBUG; // does not return null because that could create a NPE } return logger.getThreshold(); } public Logger createLogger(int threshold, String name) { return new ConsoleLogger( threshold, name ); } public Logger getLoggerForComponent( String role, String roleHint ) { Logger logger; String name; name = toMapKey( role, roleHint ); logger = (Logger)loggers.get( name ); if ( logger != null ) return logger; debug( "Creating logger '" + name + "' " + this.hashCode() + "." ); logger = createLogger( getThreshold(), name ); loggers.put( name, logger ); return logger; } public void returnComponentLogger( String role, String roleHint ) { Object obj; String name; name = toMapKey( role, roleHint ); obj = loggers.remove( name ); if ( obj == null ) { debug( "There was no such logger '" + name + "' " + this.hashCode() + "."); } else { debug( "Removed logger '" + name + "' " + this.hashCode() + "."); } } public int getActiveLoggerCount() { return loggers.size(); } private int parseThreshold( String text ) { text = text.trim().toLowerCase( Locale.ENGLISH ); if ( text.equals( "debug" ) ) { return ConsoleLogger.LEVEL_DEBUG; } else if ( text.equals( "info" ) ) { return ConsoleLogger.LEVEL_INFO; } else if ( text.equals( "warn" ) ) { return ConsoleLogger.LEVEL_WARN; } else if ( text.equals( "error" ) ) { return ConsoleLogger.LEVEL_ERROR; } else if ( text.equals( "fatal" ) ) { return ConsoleLogger.LEVEL_FATAL; } return -1; } private String decodeLogLevel( int logLevel ) { switch(logLevel) { case ConsoleLogger.LEVEL_DEBUG: return "debug"; case ConsoleLogger.LEVEL_INFO: return "info"; case ConsoleLogger.LEVEL_WARN: return "warn"; case ConsoleLogger.LEVEL_ERROR: return "error"; case ConsoleLogger.LEVEL_FATAL: return "fatal"; case ConsoleLogger.LEVEL_DISABLED: return "disabled"; default: return "unknown"; } } /** * Remove this method and all references when this code is verified. * * @param msg */ private void debug( String msg ) { // if ( !bootTimeLogger ) // System.out.println( "[Console] " + msg ); } } ././@LongLink0000000000000000000000000000017600000000000011571 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/logging/console/ConsoleLogger.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/logging/c0000644000175000017500000000570610531217373033500 0ustar twernertwernerpackage org.codehaus.plexus.logging.console; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.logging.AbstractLogger; import org.codehaus.plexus.logging.Logger; /** * Logger sending everything to the standard output streams. * This is mainly for the cases when you have a utility that * does not have a logger to supply. * * @author Avalon Development Team * @version $Id: ConsoleLogger.java 4779 2006-11-23 04:09:31Z jvanzyl $ */ public final class ConsoleLogger extends AbstractLogger { public ConsoleLogger( int threshold, String name ) { super( threshold, name ); } public void debug( String message, Throwable throwable ) { if ( isDebugEnabled() ) { System.out.print( "[DEBUG] " ); System.out.println( message ); if ( null != throwable ) { throwable.printStackTrace( System.out ); } } } public void info( String message, Throwable throwable ) { if ( isInfoEnabled() ) { System.out.print( "[INFO] " ); System.out.println( message ); if ( null != throwable ) { throwable.printStackTrace( System.out ); } } } public void warn( String message, Throwable throwable ) { if ( isWarnEnabled() ) { System.out.print( "[WARNING] " ); System.out.println( message ); if ( null != throwable ) { throwable.printStackTrace( System.out ); } } } public void error( String message, Throwable throwable ) { if ( isErrorEnabled() ) { System.out.print( "[ERROR] " ); System.out.println( message ); if ( null != throwable ) { throwable.printStackTrace( System.out ); } } } public void fatalError( String message, Throwable throwable ) { if ( isFatalErrorEnabled() ) { System.out.print( "[FATAL ERROR] " ); System.out.println( message ); if ( null != throwable ) { throwable.printStackTrace( System.out ); } } } public Logger getChildLogger( String name ) { return this; } } ././@LongLink0000000000000000000000000000017300000000000011566 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/logging/AbstractLogEnabled.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/logging/A0000644000175000017500000000331210722311152033415 0ustar twernertwernerpackage org.codehaus.plexus.logging; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * @author Trygve Laugstøl * @version $Id: AbstractLogEnabled.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public abstract class AbstractLogEnabled implements LogEnabled { private Logger logger; public void enableLogging( Logger logger ) { this.logger = logger; } protected Logger getLogger() { return logger; } protected void setupLogger( Object component ) { setupLogger( component, logger ); } protected void setupLogger( Object component, String subCategory ) { if ( subCategory == null ) { throw new IllegalStateException( "Logging category must be defined." ); } Logger logger = this.logger.getChildLogger( subCategory ); setupLogger( component, logger ); } protected void setupLogger( Object component, Logger logger ) { if ( component instanceof LogEnabled ) { ( (LogEnabled) component ).enableLogging( logger ); } } } ././@LongLink0000000000000000000000000000017200000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/logging/BaseLoggerManager.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/logging/B0000644000175000017500000001167211074750636033445 0ustar twernertwernerpackage org.codehaus.plexus.logging; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.personality.plexus.lifecycle.phase.Initializable; import java.util.HashMap; import java.util.Iterator; import java.util.Locale; import java.util.Map; /** * Base class for all LoggerManagers which use cache of Loggers. * * @author Michal Maczka * @version $Id: BaseLoggerManager.java 7789 2008-10-13 22:54:22Z bentmann $ */ public abstract class BaseLoggerManager extends AbstractLoggerManager implements Initializable { /** */ private Map loggerCache = new HashMap(); private String threshold = "info"; private int currentThreshold; public void initialize() { currentThreshold = parseThreshold( threshold ); if ( currentThreshold == -1 ) { currentThreshold = Logger.LEVEL_DEBUG; } } protected int parseThreshold( String text ) { text = text.trim().toLowerCase( Locale.ENGLISH ); if ( text.equals( "debug" ) ) { return Logger.LEVEL_DEBUG; } else if ( text.equals( "info" ) ) { return Logger.LEVEL_INFO; } else if ( text.equals( "warn" ) ) { return Logger.LEVEL_WARN; } else if ( text.equals( "error" ) ) { return Logger.LEVEL_ERROR; } else if ( text.equals( "fatal" ) ) { return Logger.LEVEL_FATAL; } return -1; } /** * Sets the threshold for all new loggers. It will NOT affect the existing loggers. *

* This is usually only set once while the logger manager is configured. * * @param currentThreshold The new threshold. */ public void setThreshold( int currentThreshold ) { this.currentThreshold = currentThreshold; } /** * Sets the threshold for all new loggers. It will NOT affect the existing loggers. *

* This is usually only set once while the logger manager is configured. * * @param currentThreshold The new threshold. */ public void setThresholds( int currentThreshold ) { this.currentThreshold = currentThreshold; for ( Iterator logs = loggerCache.values().iterator(); logs.hasNext(); ) { Logger logger = (Logger) logs.next(); logger.setThreshold( currentThreshold ); } } /** * Returns the current threshold for all new loggers. * * @return Returns the current threshold for all new loggers. */ public int getThreshold() { return currentThreshold; } public void setThreshold( String role, String roleHint, int threshold ) { AbstractLogger logger; String key = toMapKey( role, roleHint ); logger = ( AbstractLogger ) loggerCache.get( key ); if ( logger == null ) { return; // nothing to do } logger.setThreshold( threshold ); } public int getThreshold( String role, String roleHint ) { AbstractLogger logger; String key = toMapKey( role, roleHint ); logger = ( AbstractLogger ) loggerCache.get( key ); if ( logger == null ) { return Logger.LEVEL_DEBUG; // does not return null because that could create a NPE } return logger.getThreshold(); } public Logger getLoggerForComponent( String role, String roleHint ) { Logger logger; String key = toMapKey( role, roleHint ); logger = ( Logger ) loggerCache.get( key ); if ( logger != null ) { return logger; } logger = createLogger( key ); loggerCache.put( key, logger ); return logger; } protected abstract Logger createLogger( String key ); public void returnComponentLogger( String role, String roleHint ) { Object obj; String key = toMapKey( role, roleHint ); obj = loggerCache.remove( key ); if ( obj == null ) { // TODO: use a logger! System.err.println( "There was no such logger '" + key + "' " + hashCode() + "." ); } } public int getActiveLoggerCount() { return loggerCache.size(); } public String getThresholdAsString() { return threshold; } } ././@LongLink0000000000000000000000000000016700000000000011571 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/logging/AbstractLogger.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/logging/A0000644000175000017500000000560010706562153033432 0ustar twernertwernerpackage org.codehaus.plexus.logging; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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. */ /* * LICENSE */ /** * @author Trygve Laugstøl * @version $Id: AbstractLogger.java 6965 2007-10-21 05:32:27Z jvanzyl $ */ public abstract class AbstractLogger implements Logger { private int threshold; private String name; public AbstractLogger( int threshold, String name ) { if ( !isValidThreshold( threshold ) ) { throw new IllegalArgumentException( "Threshold " + threshold + " is not valid" ); } this.threshold = threshold; this.name = name; } public int getThreshold() { return threshold; } public void setThreshold( int threshold ) { this.threshold = threshold; } public String getName() { return name; } public void debug( String message ) { debug( message, null ); } public boolean isDebugEnabled() { return threshold <= LEVEL_DEBUG; } public void info( String message ) { info( message, null ); } public boolean isInfoEnabled() { return threshold <= LEVEL_INFO; } public void warn( String message ) { warn( message, null ); } public boolean isWarnEnabled() { return threshold <= LEVEL_WARN; } public void error( String message ) { error( message, null ); } public boolean isErrorEnabled() { return threshold <= LEVEL_ERROR; } public void fatalError( String message ) { fatalError( message, null ); } public boolean isFatalErrorEnabled() { return threshold <= LEVEL_FATAL; } protected boolean isValidThreshold( int threshold ) { if ( threshold == LEVEL_DEBUG ) { return true; } if ( threshold == LEVEL_INFO ) { return true; } if ( threshold == LEVEL_WARN ) { return true; } if ( threshold == LEVEL_ERROR ) { return true; } if ( threshold == LEVEL_FATAL ) { return true; } if ( threshold == LEVEL_DISABLED ) { return true; } return false; } } ././@LongLink0000000000000000000000000000014600000000000011566 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/lifecycle/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/lifecycle0000755000175000017500000000000011225200003033534 5ustar twernertwerner././@LongLink0000000000000000000000000000017300000000000011566 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/lifecycle/LifecycleHandler.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/lifecycle0000644000175000017500000000377610706732434033600 0ustar twernertwernerpackage org.codehaus.plexus.lifecycle; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.manager.ComponentManager; import org.codehaus.plexus.lifecycle.phase.Phase; import org.codehaus.plexus.personality.plexus.lifecycle.phase.PhaseExecutionException; public interface LifecycleHandler { String getId(); void addBeginSegment( Phase phase ); void addEndSegment( Phase phase ); /** * @deprecated */ void start( Object component, ComponentManager manager ) throws PhaseExecutionException; void start( Object component, ComponentManager manager, ClassRealm realm ) throws PhaseExecutionException; /** * @deprecated */ void end( Object component, ComponentManager manager ) throws PhaseExecutionException; /** * * @param component * @param manager * @param componentContextRealm the realm used to create the component, which may not be the component's realm; this * component could have requirements that were satisfied using components from this realm. It could be * used to lookup the same manager components that were used to start the component. * @throws PhaseExecutionException */ void end( Object component, ComponentManager manager, ClassRealm componentContextRealm ) throws PhaseExecutionException; void initialize(); } ././@LongLink0000000000000000000000000000021500000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/lifecycle/UndefinedLifecycleHandlerException.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/lifecycle0000644000175000017500000000147310531217373033564 0ustar twernertwernerpackage org.codehaus.plexus.lifecycle; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 UndefinedLifecycleHandlerException extends Exception { public UndefinedLifecycleHandlerException( String message ) { super( message ); } } ././@LongLink0000000000000000000000000000020300000000000011560 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/lifecycle/AbstractLifecycleHandler.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/lifecycle0000644000175000017500000000715610706732434033574 0ustar twernertwernerpackage org.codehaus.plexus.lifecycle; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.manager.ComponentManager; import org.codehaus.plexus.lifecycle.phase.Phase; import org.codehaus.plexus.personality.plexus.lifecycle.phase.PhaseExecutionException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public abstract class AbstractLifecycleHandler implements LifecycleHandler { private List beginSegment; private List endSegment; // ---------------------------------------------------------------------- // Begin Segment // ---------------------------------------------------------------------- public void addBeginSegment( Phase phase ) { if ( beginSegment == null ) { beginSegment = new ArrayList(); } beginSegment.add( phase ); } public List getBeginSegment() { return beginSegment; } public void addEndSegment( Phase phase ) { if ( endSegment == null ) { endSegment = new ArrayList(); } endSegment.add( phase ); } public List getEndSegment() { return endSegment; } // ---------------------------------------------------------------------- // Lifecylce Management // ---------------------------------------------------------------------- /** * @deprecated */ public void start( Object component, ComponentManager manager ) throws PhaseExecutionException { start( component, manager, manager.getContainer().getLookupRealm( component ) ); } /** * Start a component's lifecycle. */ public void start( Object component, ComponentManager manager, ClassRealm realm ) throws PhaseExecutionException { if ( segmentIsEmpty( getBeginSegment() ) ) { return; } for ( Iterator i = getBeginSegment().iterator(); i.hasNext(); ) { Phase phase = (Phase) i.next(); phase.execute( component, manager, realm ); } } /** * End a component's lifecycle. * @deprecated */ public void end( Object component, ComponentManager manager ) throws PhaseExecutionException { end( component, manager, manager.getContainer().getLookupRealm( component ) ); } /** * End a component's lifecycle. */ public void end( Object component, ComponentManager manager, ClassRealm contextRealm ) throws PhaseExecutionException { if ( segmentIsEmpty( getEndSegment() ) ) { return; } for ( Iterator i = getEndSegment().iterator(); i.hasNext(); ) { Phase phase = (Phase) i.next(); phase.execute( component, manager, contextRealm ); } } private boolean segmentIsEmpty( List segment ) { if ( segment == null || segment.size() == 0 ) { return true; } return false; } } ././@LongLink0000000000000000000000000000020200000000000011557 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/lifecycle/LifecycleHandlerManager.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/lifecycle0000644000175000017500000000211511101647327033556 0ustar twernertwernerpackage org.codehaus.plexus.lifecycle; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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. */ /** * LifecycleHandlerManager is a simple index (registry) of LifecycleHandler instances. * * @author Jason van Zyl * * @version $Id: LifecycleHandlerManager.java 7797 2008-10-28 17:41:43Z dain $ */ public interface LifecycleHandlerManager { void initialize(); void addLifecycleHandler( LifecycleHandler lifecycleHandler ); LifecycleHandler getLifecycleHandler( String id ) throws UndefinedLifecycleHandlerException; } ././@LongLink0000000000000000000000000000015400000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/lifecycle/phase/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/lifecycle0000755000175000017500000000000011225200003033534 5ustar twernertwerner././@LongLink0000000000000000000000000000016600000000000011570 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/lifecycle/phase/Phase.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/lifecycle0000644000175000017500000000203210553765637033573 0ustar twernertwernerpackage org.codehaus.plexus.lifecycle.phase; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.manager.ComponentManager; import org.codehaus.plexus.personality.plexus.lifecycle.phase.PhaseExecutionException; public interface Phase { /** Execute the phase. */ public void execute( Object component, ComponentManager manager, ClassRealm realm ) throws PhaseExecutionException; } ././@LongLink0000000000000000000000000000017600000000000011571 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/lifecycle/phase/AbstractPhase.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/lifecycle0000644000175000017500000000250310575515633033567 0ustar twernertwernerpackage org.codehaus.plexus.lifecycle.phase; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.manager.ComponentManager; import org.codehaus.plexus.personality.plexus.lifecycle.phase.PhaseExecutionException; public abstract class AbstractPhase implements Phase { /** Execute the phase. */ public abstract void execute( Object component, ComponentManager manager, ClassRealm realm ) throws PhaseExecutionException; /** * @deprecated */ public final void execute( Object component, ComponentManager manager ) throws PhaseExecutionException { execute( component, manager, manager.getContainer().getLookupRealm( component ) ); } } ././@LongLink0000000000000000000000000000020000000000000011555 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/lifecycle/BasicLifecycleHandler.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/lifecycle0000644000175000017500000000200510706732434033560 0ustar twernertwernerpackage org.codehaus.plexus.lifecycle; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 BasicLifecycleHandler extends AbstractLifecycleHandler { protected String id; public BasicLifecycleHandler( String id ) { this.id = id; } public String getId() { return id; } /** @see org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable#initialize */ public void initialize() { } } ././@LongLink0000000000000000000000000000021100000000000011557 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/lifecycle/DefaultLifecycleHandlerManager.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/lifecycle0000644000175000017500000000367611101647327033573 0ustar twernertwernerpackage org.codehaus.plexus.lifecycle; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; /** * @author Jason van Zyl * @version $Id: DefaultLifecycleHandlerManager.java 7797 2008-10-28 17:41:43Z dain $ */ public class DefaultLifecycleHandlerManager implements LifecycleHandlerManager { private final ConcurrentMap lifecycleHandlers = new ConcurrentHashMap(); private String defaultLifecycleHandlerId = "plexus"; public void addLifecycleHandler( LifecycleHandler lifecycleHandler ) { lifecycleHandlers.put( lifecycleHandler.getId(), lifecycleHandler ); } public void initialize() { for ( LifecycleHandler lifecycleHandler : lifecycleHandlers.values() ) { lifecycleHandler.initialize(); } } public LifecycleHandler getLifecycleHandler( String id ) throws UndefinedLifecycleHandlerException { if ( id == null ) { id = defaultLifecycleHandlerId; } LifecycleHandler lifecycleHandler = lifecycleHandlers.get( id ); if ( lifecycleHandler == null ) { throw new UndefinedLifecycleHandlerException( "Specified lifecycle handler cannot be found: " + id ); } return lifecycleHandler; } } ././@LongLink0000000000000000000000000000017100000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/PlexusContainerException.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/PlexusCon0000644000175000017500000000271710706562153033552 0ustar twernertwernerpackage org.codehaus.plexus; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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. */ /** * Container execution exception. * * @author Brett Porter * @version $Id: PlexusContainerException.java 6965 2007-10-21 05:32:27Z jvanzyl $ */ public class PlexusContainerException extends Exception { private static final long serialVersionUID = 2213861902264275451L; /** * Construct a new PlexusContainerException instance. * @param message exception message * @param throwable causing exception to chain */ public PlexusContainerException( String message, Throwable throwable ) { super( message, throwable ); } /** * Construct a new PlexusContainerException instance. * @param message exception message */ public PlexusContainerException( String message ) { super( message ); } } ././@LongLink0000000000000000000000000000015200000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/configuration/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/configura0000755000175000017500000000000011225200004033553 5ustar twernertwerner././@LongLink0000000000000000000000000000022300000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/configuration/PlexusConfigurationResourceException.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/configura0000644000175000017500000000150310531217373033574 0ustar twernertwernerpackage org.codehaus.plexus.configuration; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 PlexusConfigurationResourceException extends Exception { public PlexusConfigurationResourceException( String message ) { super( message ); } } ././@LongLink0000000000000000000000000000021300000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/configuration/PlexusConfigurationException.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/configura0000644000175000017500000000265510706562153033610 0ustar twernertwernerpackage org.codehaus.plexus.configuration; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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. */ /** * Exception that is thrown when an expected configuration value encounters * problems loading correctly. */ public class PlexusConfigurationException extends Exception { private static final long serialVersionUID = 7559886640184983689L; /** * Construct a new PlexusConfigurationException instance. * @param message exception message */ public PlexusConfigurationException( String message ) { this( message, null ); } /** * Construct a new PlexusConfigurationException instance. * @param message exception message * @param throwable causing exception to chain */ public PlexusConfigurationException( String message, Throwable throwable ) { super( message, throwable ); } } ././@LongLink0000000000000000000000000000016100000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/configuration/source/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/configura0000755000175000017500000000000011225200004033553 5ustar twernertwerner././@LongLink0000000000000000000000000000022000000000000011557 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/configuration/source/ChainedConfigurationSource.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/configura0000644000175000017500000000301310733103631033565 0ustar twernertwernerpackage org.codehaus.plexus.configuration.source; import java.util.Iterator; import java.util.List; import org.codehaus.plexus.component.repository.ComponentDescriptor; import org.codehaus.plexus.configuration.PlexusConfiguration; /** * A configuration source that delegates to any number of underlying configuration sources. If you are an application * author and want to create a custom source of configuration for the components in your application then you would most * likely want to create a chained configuration source where you can decide the order of processing, but still have the * container perform its default behavior. * * @author Jason van Zyl */ public class ChainedConfigurationSource implements ConfigurationSource { private List configurationSources; public ChainedConfigurationSource( List configurationSources ) { this.configurationSources = configurationSources; } public PlexusConfiguration getConfiguration( ComponentDescriptor componentDescriptor ) { for ( Iterator i = configurationSources.iterator(); i.hasNext(); ) { ConfigurationSource configurationSource = (ConfigurationSource) i.next(); PlexusConfiguration configuration = configurationSource.getConfiguration( componentDescriptor ); if ( configuration != null ) { return configuration; } } return null; } public List getConfigurationSources() { return configurationSources; } } ././@LongLink0000000000000000000000000000021100000000000011557 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/configuration/source/ConfigurationSource.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/configura0000644000175000017500000000153110730533647033603 0ustar twernertwernerpackage org.codehaus.plexus.configuration.source; import org.codehaus.plexus.component.repository.ComponentDescriptor; import org.codehaus.plexus.configuration.PlexusConfiguration; /** * A source for component configurations which may reside outside the configuration within a component descriptor. A * common usecase for this is to create a unified configuration for a set of components. For an application it is more * convenient to present the user with a single configuration, instead of making users work directly with a Plexus * configuration file which exposes component details including implementation, and wiring information. * * @author Jason van Zyl */ public interface ConfigurationSource { String ROLE = ConfigurationSource.class.getName(); PlexusConfiguration getConfiguration( ComponentDescriptor componentDescriptor ); } ././@LongLink0000000000000000000000000000022200000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/configuration/source/ContainerConfigurationSource.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/configura0000644000175000017500000000105610722063337033600 0ustar twernertwernerpackage org.codehaus.plexus.configuration.source; import org.codehaus.plexus.component.repository.ComponentDescriptor; import org.codehaus.plexus.configuration.PlexusConfiguration; /** @author Jason van Zyl */ public class ContainerConfigurationSource implements ConfigurationSource { public PlexusConfiguration getConfiguration( ComponentDescriptor componentDescriptor ) { if ( componentDescriptor.hasConfiguration() ) { return componentDescriptor.getConfiguration(); } return null; } } ././@LongLink0000000000000000000000000000020200000000000011557 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/configuration/PlexusConfiguration.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/configura0000644000175000017500000001307110746717116033607 0ustar twernertwernerpackage org.codehaus.plexus.configuration; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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. */ /** * A configuration data hierarchy for configuring aspects of plexus. For * example, to populate a ComponentDescriptor. Implementation of * PlexusConfiguration may be populated by any means, for example, by XML file. */ public interface PlexusConfiguration { // ---------------------------------------------------------------------- // Name handling // ---------------------------------------------------------------------- /** * Returns the name of this configuration. * @return the name of this configuration */ String getName(); /** * Sets the name of this configuration. * @param name */ void setName(String name); // ---------------------------------------------------------------------- // Value handling // ---------------------------------------------------------------------- /** * Returns the value of this configuration. * @return the value of this configuration * @throws PlexusConfigurationException */ String getValue() throws PlexusConfigurationException; /** * Returns the value of this configuration, or default if one cannot be * found. * @param defaultValue value to return if none is found * @return the value of this configuration */ String getValue( String defaultValue ); /** * Set the value of a configuration element. * @param value * @return */ void setValue( String value ); /** * Set the value of a configuration element and return the PlexusConfiguration object * so that further operations can be carried out. * @param value * @return */ PlexusConfiguration setValueAndGetSelf( String value ); // ---------------------------------------------------------------------- // Attribute handling // ---------------------------------------------------------------------- /** * Sets an attribute on this configuration. * @param name * @param value */ void setAttribute( String name, String value ); /** * Returns an array of attribute names. * @return an array of attribute names */ String[] getAttributeNames(); /** * Returns the value of the named attribute. * @return the value of the named attribute * @throws PlexusConfigurationException */ String getAttribute( String paramName ) throws PlexusConfigurationException; /** * Returns the value of the named attribute, or default if one cannot be * found. * @param defaultValue value to return if none is found * @return the value of the named attribute */ String getAttribute( String name, String defaultValue ); // ---------------------------------------------------------------------- // Child handling // ---------------------------------------------------------------------- /** * Returns the child configuration of the given name. * @param child the name of the child to return * @return the child configuration of the given name */ PlexusConfiguration getChild( String child ); /** * Returns the child configuration at the given location. * @param i the position of the child under this configuration * @return the child configuration at the given location */ PlexusConfiguration getChild( int i ); /** * Returns the child configuration of the given name. * @param child the name of the child to return * @param createChild true if a new child should be create, if none found * @return the child configuration of the given name, or new child if * created */ PlexusConfiguration getChild( String child, boolean createChild ); /** * Returns an array of all child configurations. * @return an array of all child configurations */ PlexusConfiguration[] getChildren(); /** * Returns an array of all child configurations with the given name. * @param name the name of the children configurations to return * @return an array of all child configurations with the given name */ PlexusConfiguration[] getChildren( String name ); /** * Adds a configuration under this configuration, which acts as * a parent. * @param configuration the child configuration to add */ void addChild( PlexusConfiguration configuration ); /** * Add a child element with a given name and return the newly created element. * @param name * @return */ PlexusConfiguration addChild( String name ); /** * Add a child element with a given name, and given value and return the * newly created element. * @param name * @return */ PlexusConfiguration addChild( String name, String value ); /** * Returns the number of directly children under this configuration. * @return the number of directly children under this configuration. */ int getChildCount(); } ././@LongLink0000000000000000000000000000021000000000000011556 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/configuration/PlexusConfigurationMerger.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/configura0000644000175000017500000003444410746717116033616 0ustar twernertwernerpackage org.codehaus.plexus.configuration; import org.codehaus.plexus.configuration.xml.XmlPlexusConfiguration; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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. */ /** * @todo This merger explicity uses the XML implementation of the plexus configuration but * it must work for configurations coming from any source. */ public class PlexusConfigurationMerger { // -----------------------------------+----------------------------------------------------------------- // E L E M E N T | // -----------------------------------+----------------------------------------------------------------- // load-on-start | user // -----------------------------------+----------------------------------------------------------------- // system-properties | user // -----------------------------------+----------------------------------------------------------------- // configurations-directory | user // -----------------------------------+----------------------------------------------------------------- // logging | user wins // -----------------------------------+----------------------------------------------------------------- // component-repository | user wins // -----------------------------------+----------------------------------------------------------------- // resources | user wins, but system resources show through // -----------------------------------+----------------------------------------------------------------- // component-manager-manager | user wins, but system resources show through // -----------------------------------+----------------------------------------------------------------- // component-discoverer-manager | user wins, but system resources show through // -----------------------------------+----------------------------------------------------------------- // component-factory-manager | user wins, but system resources show through // -----------------------------------+----------------------------------------------------------------- // lifecycle-handler-manager | user wins, but system lifecycles show through // -----------------------------------+----------------------------------------------------------------- // component-composer-manager | user wins, but system lifecycles show through // -----------------------------------+----------------------------------------------------------------- // components | user // -----------------------------------+----------------------------------------------------------------- public static PlexusConfiguration merge( PlexusConfiguration user, PlexusConfiguration system ) { PlexusConfiguration mergedConfiguration = new XmlPlexusConfiguration( "plexus" ); // ---------------------------------------------------------------------- // Load on start // ---------------------------------------------------------------------- PlexusConfiguration loadOnStart = user.getChild( "load-on-start" ); if ( loadOnStart.getChildCount() != 0 ) { mergedConfiguration.addChild( loadOnStart ); } // ---------------------------------------------------------------------- // System properties // ---------------------------------------------------------------------- PlexusConfiguration systemProperties = user.getChild( "system-properties" ); if ( systemProperties.getChildCount() != 0 ) { mergedConfiguration.addChild( systemProperties ); } // ---------------------------------------------------------------------- // Configurations directory // ---------------------------------------------------------------------- PlexusConfiguration[] configurationsDirectories = user.getChildren( "configurations-directory" ); if ( configurationsDirectories.length != 0 ) { for ( int i = 0; i < configurationsDirectories.length; i++ ) { mergedConfiguration.addChild( configurationsDirectories[i] ); } } // ---------------------------------------------------------------------- // Logging // ---------------------------------------------------------------------- PlexusConfiguration logging = user.getChild( "logging" ); if ( logging.getChildCount() != 0 ) { mergedConfiguration.addChild( logging ); } else { mergedConfiguration.addChild( system.getChild( "logging" ) ); } // ---------------------------------------------------------------------- // Container initialization phases // ---------------------------------------------------------------------- mergedConfiguration.addChild( system.getChild( "container-initialization") ); mergedConfiguration.addChild( system.getChild( "component-lookup-manager") ); // ---------------------------------------------------------------------- // Component repository // ---------------------------------------------------------------------- PlexusConfiguration componentRepository = user.getChild( "component-repository" ); if ( componentRepository.getChildCount() != 0 ) { mergedConfiguration.addChild( componentRepository ); } else { mergedConfiguration.addChild( system.getChild( "component-repository" ) ); } // ---------------------------------------------------------------------- // Resources // ---------------------------------------------------------------------- copyResources( system, mergedConfiguration ); copyResources( user, mergedConfiguration ); // ---------------------------------------------------------------------- // Component manager manager // ---------------------------------------------------------------------- PlexusConfiguration componentManagerManager = user.getChild( "component-manager-manager" ); if ( componentManagerManager.getChildCount() != 0 ) { mergedConfiguration.addChild( componentManagerManager ); copyComponentManagers( system.getChild( "component-manager-manager" ), componentManagerManager ); } else { mergedConfiguration.addChild( system.getChild( "component-manager-manager" ) ); } // ---------------------------------------------------------------------- // Component discoverer manager // ---------------------------------------------------------------------- PlexusConfiguration componentDiscovererManager = user.getChild( "component-discoverer-manager" ); if ( componentDiscovererManager.getChildCount() != 0 ) { mergedConfiguration.addChild( componentDiscovererManager ); copyComponentDiscoverers( system.getChild( "component-discoverer-manager" ), componentDiscovererManager ); } else { mergedConfiguration.addChild( system.getChild( "component-discoverer-manager" ) ); } // ---------------------------------------------------------------------- // Component factory manager // ---------------------------------------------------------------------- PlexusConfiguration componentFactoryManager = user.getChild( "component-factory-manager" ); if ( componentFactoryManager.getChildCount() != 0 ) { mergedConfiguration.addChild( componentFactoryManager ); copyComponentFactories( system.getChild( "component-factory-manager" ), componentFactoryManager ); } else { mergedConfiguration.addChild( system.getChild( "component-factory-manager" ) ); } // ---------------------------------------------------------------------- // Lifecycle handler managers // ---------------------------------------------------------------------- PlexusConfiguration lifecycleHandlerManager = user.getChild( "lifecycle-handler-manager" ); if ( lifecycleHandlerManager.getChildCount() != 0 ) { mergedConfiguration.addChild( lifecycleHandlerManager ); copyLifecycles( system.getChild( "lifecycle-handler-manager" ), lifecycleHandlerManager ); } else { mergedConfiguration.addChild( system.getChild( "lifecycle-handler-manager" ) ); } // ---------------------------------------------------------------------- // Component factory manager // ---------------------------------------------------------------------- PlexusConfiguration componentComposerManager = user.getChild( "component-composer-manager" ); if ( componentComposerManager.getChildCount() != 0 ) { mergedConfiguration.addChild( componentComposerManager ); copyComponentComposers( system.getChild( "component-composer-manager" ), componentComposerManager ); } else { mergedConfiguration.addChild( system.getChild( "component-composer-manager" ) ); } // ---------------------------------------------------------------------- // Components // ---------------------------------------------------------------------- // We grab the system components first and then add the user defined // components so that user defined components will win. When component // descriptors are processed the last definition wins because the component // descriptors are stored in a Map in the component repository. // ---------------------------------------------------------------------- PlexusConfiguration components = system.getChild( "components" ); mergedConfiguration.addChild( components ); copyComponents( user.getChild( "components" ), components ); return mergedConfiguration; } private static void copyResources( PlexusConfiguration source, PlexusConfiguration destination ) { PlexusConfiguration handlers[] = source.getChild( "resources" ).getChildren(); PlexusConfiguration dest = destination.getChild( "resources" ); for ( int i = 0; i < handlers.length; i++ ) { dest.addChild( handlers[i] ); } } private static void copyComponentManagers( PlexusConfiguration source, PlexusConfiguration destination ) { try { PlexusConfiguration id = destination.getChild( "default-component-manager-id" ); String sid = source.getChild( "default-component-manager-id" ).getValue(); if ( id.getValue() == null ) { id.setValue( sid ); } } catch ( PlexusConfigurationException e ) { // do nothing } PlexusConfiguration handlers[] = source.getChild( "component-managers" ).getChildren( "component-manager" ); PlexusConfiguration dest = destination.getChild( "component-managers" ); for ( int i = 0; i < handlers.length; i++ ) { dest.addChild( handlers[i] ); } } private static void copyComponentDiscoverers( PlexusConfiguration source, PlexusConfiguration destination ) { PlexusConfiguration handlers[] = source.getChild( "component-discoverers" ).getChildren( "component-discoverer" ); PlexusConfiguration dest = destination.getChild( "component-discoverers" ); for ( int i = 0; i < handlers.length; i++ ) { dest.addChild( handlers[i] ); } } private static void copyComponentFactories( PlexusConfiguration source, PlexusConfiguration destination ) { PlexusConfiguration handlers[] = source.getChild( "component-factories" ).getChildren( "component-factory" ); PlexusConfiguration dest = destination.getChild( "component-factories" ); for ( int i = 0; i < handlers.length; i++ ) { dest.addChild( handlers[i] ); } } private static void copyComponentComposers( PlexusConfiguration source, PlexusConfiguration destination ) { try { PlexusConfiguration id = destination.getChild( "default-component-composer-id" ); String sid = source.getChild( "default-component-composer-id" ).getValue(); if ( id.getValue() == null ) { id.setValue( sid ); } } catch ( PlexusConfigurationException e ) { // do nothing } PlexusConfiguration composers[] = source.getChild( "component-composers" ).getChildren( "component-composer" ); PlexusConfiguration dest = destination.getChild( "component-composers" ); for ( int i = 0; i < composers.length; i++ ) { dest.addChild( composers[i] ); } } private static void copyLifecycles( PlexusConfiguration source, PlexusConfiguration destination ) { PlexusConfiguration handlers[] = source.getChild( "lifecycle-handlers" ).getChildren( "lifecycle-handler" ); PlexusConfiguration dest = destination.getChild( "lifecycle-handlers" ); for ( int i = 0; i < handlers.length; i++ ) { dest.addChild( handlers[i] ); } } private static void copyComponents( PlexusConfiguration source, PlexusConfiguration destination ) { PlexusConfiguration components[] = source.getChildren( "component" ); for ( int i = 0; i < components.length; i++ ) { destination.addChild( components[i] ); } } } ././@LongLink0000000000000000000000000000021600000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/configuration/PlexusComponentDescriptorMerger.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/configura0000644000175000017500000000766511107373274033616 0ustar twernertwernerpackage org.codehaus.plexus.configuration; import java.io.IOException; import java.io.StringReader; import java.util.ArrayList; import java.util.List; import org.codehaus.plexus.component.repository.ComponentDescriptor; import org.codehaus.plexus.component.repository.ComponentRequirement; import org.codehaus.plexus.configuration.xml.XmlPlexusConfiguration; import org.codehaus.plexus.util.xml.Xpp3Dom; import org.codehaus.plexus.util.xml.Xpp3DomBuilder; import org.codehaus.plexus.util.xml.pull.XmlPullParserException; /** * * @author Kenney Westerhof * */ public class PlexusComponentDescriptorMerger { /** * Merges override and target, where target is updated with override. */ public static void merge( ComponentDescriptor override, ComponentDescriptor target ) { if ( override.getImplementation() != null ) { target.setImplementation( override.getImplementation() ); } mergeRequirements( override, target ); mergeConfiguration( override, target ); // TODO: other getters/setters. } private static void mergeConfiguration( ComponentDescriptor override, ComponentDescriptor target ) { // try to parse the override dom. If this fails, do not update anything and keep // the original target configuration. Xpp3Dom overrideDom; try { overrideDom = Xpp3DomBuilder.build( new StringReader( override.getConfiguration().toString() ) ); } catch ( XmlPullParserException e1 ) { return; } catch ( IOException e1 ) { return; } // try to parse the target dom. if this fails, replace it with the override configuration, // dom, otherwise merge it. Xpp3Dom targetDom = null; if ( target.getConfiguration() != null ) { try { targetDom = Xpp3DomBuilder.build( new StringReader( target.getConfiguration().toString() ) ); } catch ( XmlPullParserException e1 ) { } catch ( IOException e1 ) { } } if ( targetDom != null ) { Xpp3Dom.mergeXpp3Dom( overrideDom, targetDom ); } else { targetDom = overrideDom; } target.setConfiguration( new XmlPlexusConfiguration( targetDom ) ); } private static void mergeRequirements( ComponentDescriptor override, ComponentDescriptor target ) { List toAdd = new ArrayList(); List toRemove = new ArrayList(); for ( ComponentRequirement sourceReq : override.getRequirements() ) { for ( ComponentRequirement targetReq : target.getRequirements() ) { // if a fieldName is specified, only override target requirements // that also have a fieldname. if ( sourceReq.getFieldName() != null ) { if ( sourceReq.getFieldName().equals( targetReq.getFieldName() ) ) { toRemove.add( targetReq ); toAdd.add( sourceReq ); break; } } else if ( targetReq.getFieldName() == null ) { // no fieldnames specified - just check for the role; hints may be // overriden too. if ( sourceReq.getRole().equals( targetReq.getRole() ) ) { toRemove.add( targetReq ); toAdd.add( sourceReq ); } } } } target.removeRequirements( toRemove ); target.addRequirements( toAdd ); } } ././@LongLink0000000000000000000000000000015500000000000011566 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/configuration/io/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/configura0000755000175000017500000000000011225200004033553 5ustar twernertwerner././@LongLink0000000000000000000000000000021300000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/configuration/io/PlexusConfigurationReader.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/configura0000644000175000017500000000106510777725005033607 0ustar twernertwernerpackage org.codehaus.plexus.configuration.io; import java.io.IOException; import java.io.InputStream; import java.io.Reader; import org.codehaus.plexus.configuration.PlexusConfiguration; import org.codehaus.plexus.configuration.PlexusConfigurationException; public interface PlexusConfigurationReader { public PlexusConfiguration read( Reader reader ) throws IOException, PlexusConfigurationException; public PlexusConfiguration read( InputStream inputStream ) throws IOException, PlexusConfigurationException; } ././@LongLink0000000000000000000000000000021300000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/configuration/io/PlexusConfigurationWriter.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/configura0000644000175000017500000000067110777725005033611 0ustar twernertwernerpackage org.codehaus.plexus.configuration.io; import java.io.IOException; import java.io.OutputStream; import java.io.Writer; import org.codehaus.plexus.configuration.PlexusConfiguration; public interface PlexusConfigurationWriter { void write( Writer writer, PlexusConfiguration configuration ) throws IOException; void write( OutputStream outputStream, PlexusConfiguration configuration ) throws IOException; } ././@LongLink0000000000000000000000000000021600000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/configuration/io/XmlPlexusConfigurationReader.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/configura0000644000175000017500000000245610777725005033614 0ustar twernertwernerpackage org.codehaus.plexus.configuration.io; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.Reader; import org.codehaus.plexus.configuration.PlexusConfiguration; import org.codehaus.plexus.configuration.PlexusConfigurationException; import org.codehaus.plexus.configuration.xml.XmlPlexusConfiguration; import org.codehaus.plexus.util.xml.Xpp3Dom; import org.codehaus.plexus.util.xml.Xpp3DomBuilder; import org.codehaus.plexus.util.xml.pull.XmlPullParserException; public class XmlPlexusConfigurationReader implements PlexusConfigurationReader { public PlexusConfiguration read( InputStream inputStream ) throws IOException, PlexusConfigurationException { return read( new InputStreamReader( inputStream ) ); } public PlexusConfiguration read( Reader reader ) throws IOException, PlexusConfigurationException { try { Xpp3Dom dom = Xpp3DomBuilder.build( reader ); return new XmlPlexusConfiguration( dom ); } catch ( XmlPullParserException e ) { throw new PlexusConfigurationException( "Failed to parse configuration resource!\nError was: \'" + e.getLocalizedMessage() + "\'", e ); } } } ././@LongLink0000000000000000000000000000021600000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/configuration/io/XmlPlexusConfigurationWriter.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/configura0000644000175000017500000000555710777725005033621 0ustar twernertwernerpackage org.codehaus.plexus.configuration.io; import org.codehaus.plexus.configuration.PlexusConfiguration; import java.io.IOException; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.Writer; public class XmlPlexusConfigurationWriter implements PlexusConfigurationWriter { public void write( OutputStream outputStream, PlexusConfiguration configuration ) throws IOException { write( new OutputStreamWriter( outputStream ), configuration ); } public void write( Writer writer, PlexusConfiguration configuration ) throws IOException { int depth = 0; display( configuration, writer, depth ); } private void display( PlexusConfiguration c, Writer w, int depth ) throws IOException { int count = c.getChildCount(); if ( count == 0 ) { displayTag( c, w, depth ); } else { indent( depth, w ); w.write( '<' ); w.write( c.getName() ); attributes( c, w ); w.write( '>' ); w.write( '\n' ); for ( int i = 0; i < count; i++ ) { PlexusConfiguration child = c.getChild( i ); display( child, w, depth + 1 ); } indent( depth, w ); w.write( '<' ); w.write( '/' ); w.write( c.getName() ); w.write( '>' ); w.write( '\n' ); } } private void displayTag( PlexusConfiguration c, Writer w, int depth ) throws IOException { String value = c.getValue( null ); if ( value != null ) { indent( depth, w ); w.write( '<' ); w.write( c.getName() ); attributes( c, w ); w.write( '>' ); w.write( c.getValue( null ) ); w.write( '<' ); w.write( '/' ); w.write( c.getName() ); w.write( '>' ); w.write( '\n' ); } else { indent( depth, w ); w.write( '<' ); w.write( c.getName() ); attributes( c, w ); w.write( '/' ); w.write( '>' ); w.write( "\n" ); } } private void attributes( PlexusConfiguration c, Writer w ) throws IOException { String[] names = c.getAttributeNames(); for ( int i = 0; i < names.length; i++ ) { w.write( ' ' ); w.write( names[i] ); w.write( '=' ); w.write( '"' ); w.write( c.getAttribute( names[i], null ) ); w.write( '"' ); } } private void indent( int depth, Writer w ) throws IOException { for ( int i = 0; i < depth; i++ ) { w.write( ' ' ); } } } ././@LongLink0000000000000000000000000000021100000000000011557 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/configuration/DefaultPlexusConfiguration.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/configura0000644000175000017500000001404111110641321033561 0ustar twernertwernerpackage org.codehaus.plexus.configuration; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; /** * @version $Id: DefaultPlexusConfiguration.java 7854 2008-11-18 22:33:53Z bentmann $ */ public class DefaultPlexusConfiguration implements PlexusConfiguration { private String name; private String value; private Map attributes; private Map> childMap; private List childList; protected DefaultPlexusConfiguration() { this( "configuration" ); } protected DefaultPlexusConfiguration( String name ) { this( name, null ); } protected DefaultPlexusConfiguration( String name, String value ) { super(); this.name = name; this.value = value; this.attributes = new LinkedHashMap(); this.childMap = new LinkedHashMap>(); this.childList = new ArrayList(); } // ---------------------------------------------------------------------- // Name handling // ---------------------------------------------------------------------- public String getName() { return name; } public void setName( String name ) { this.name = name; } // ---------------------------------------------------------------------- // Value handling // ---------------------------------------------------------------------- public String getValue() { return value; } public String getValue( String defaultValue ) { String value = getValue(); if ( value == null ) { value = defaultValue; } return value; } public void setValue( String val ) { value = val; } public PlexusConfiguration setValueAndGetSelf( String val ) { setValue( val ); return this; } // ---------------------------------------------------------------------- // Attribute handling // ---------------------------------------------------------------------- public void setAttribute( String name, String value ) { attributes.put( name, value ); } public String getAttribute( String name ) { return attributes.get( name ); } public String getAttribute( String name, String defaultValue ) { String value = getAttribute( name ); if ( value == null ) { value = defaultValue; } return value; } public String[] getAttributeNames() { return attributes.keySet().toArray( new String[attributes.size()] ); } // ---------------------------------------------------------------------- // Child handling // ---------------------------------------------------------------------- public PlexusConfiguration getChild( String name ) { return getChild( name, true ); } public PlexusConfiguration getChild( int i ) { return getChildren()[i]; } public PlexusConfiguration getChild( String name, boolean createChild ) { List childs = childMap.get( name ); boolean noneFound = ( childs == null || childs.size() == 0 ); if ( noneFound && createChild ) { addChild( name ); return getChild( name, false ); } else if ( noneFound && !createChild ) { return null; } else { return childs.get( 0 ); } } public PlexusConfiguration[] getChildren() { return childList.toArray( new PlexusConfiguration[childList.size()] ); } public PlexusConfiguration[] getChildren( String name ) { List childs = new ArrayList(); List childList = childMap.get( name ); if ( childList != null ) { childs.addAll( childList ); } return childs.toArray( new PlexusConfiguration[childs.size()] ); } public void addChild( PlexusConfiguration child ) { childList.add( child ); List children = childMap.get( child.getName() ); if ( children == null ) { childMap.put( child.getName(), children = new ArrayList() ); } children.add( child ); } public PlexusConfiguration addChild( String name ) { // we are using reflection to try to create same class childs as parent is, // since many Maven and Maven plugins stuff casts the incoming result of this call // to the evil XmlPlexusConfiguration PlexusConfiguration child = null; try { child = getClass().newInstance(); child.setName( name ); } catch ( Exception e ) { // we have a PlexusConfiguration that has no constructor(name) child = new DefaultPlexusConfiguration( name ); } addChild( child ); return this; } public PlexusConfiguration addChild( String name, String value ) { PlexusConfiguration child = new DefaultPlexusConfiguration( name, value ); addChild( child ); return this; } public int getChildCount() { return this.childList.size(); } } ././@LongLink0000000000000000000000000000015600000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/configuration/xml/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/configura0000755000175000017500000000000011225200004033553 5ustar twernertwerner././@LongLink0000000000000000000000000000021100000000000011557 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/configuration/xml/XmlPlexusConfiguration.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/configura0000644000175000017500000000453510746717116033614 0ustar twernertwernerpackage org.codehaus.plexus.configuration.xml; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.StringWriter; import org.codehaus.plexus.configuration.DefaultPlexusConfiguration; import org.codehaus.plexus.configuration.io.XmlPlexusConfigurationWriter; import org.codehaus.plexus.util.xml.Xpp3Dom; /** * @version $Id: XmlPlexusConfiguration.java 7187 2008-01-26 20:55:42Z cstamas $ */ public class XmlPlexusConfiguration extends DefaultPlexusConfiguration { public XmlPlexusConfiguration() { super(); } public XmlPlexusConfiguration( String name ) { super( name ); } public XmlPlexusConfiguration( String name, String value ) { super( name, value ); } public XmlPlexusConfiguration( Xpp3Dom dom ) { super( dom.getName(), dom.getValue() ); // attrs String[] attributes = dom.getAttributeNames(); for ( int i = 0; i < attributes.length; i++ ) { setAttribute( attributes[i], dom.getAttribute( attributes[i] ) ); } // children Xpp3Dom[] doms = dom.getChildren(); for ( int i = 0; i < doms.length; i++ ) { addChild( new XmlPlexusConfiguration( doms[i] ) ); } } // ---------------------------------------------------------------------- // // ---------------------------------------------------------------------- public String toString() { StringWriter sw = new StringWriter(); XmlPlexusConfigurationWriter xw = new XmlPlexusConfigurationWriter(); try { xw.write( sw, this ); } catch ( IOException e ) { // will not happen with StringWriter } return sw.toString(); } } ././@LongLink0000000000000000000000000000016200000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/ComponentRegistry.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/Component0000644000175000017500000000460611111156773033571 0ustar twernertwernerpackage org.codehaus.plexus; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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; import java.util.Map; import org.codehaus.plexus.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.repository.exception.ComponentLookupException; import org.codehaus.plexus.component.repository.exception.ComponentRepositoryException; import org.codehaus.plexus.component.repository.exception.ComponentLifecycleException; import org.codehaus.plexus.component.repository.ComponentDescriptor; import org.codehaus.plexus.component.manager.ComponentManagerFactory; /** * @author Jason van Zyl * @author Kenney Westerhof * @author Dain Sundstrom */ public interface ComponentRegistry { void registerComponentManagerFactory( ComponentManagerFactory componentManagerFactory ); void addComponentDescriptor( ComponentDescriptor componentDescriptor ) throws ComponentRepositoryException; ComponentDescriptor getComponentDescriptor( Class type, String role, String roleHint ); @Deprecated ComponentDescriptor getComponentDescriptor( String role, String roleHint, ClassRealm realm ); List> getComponentDescriptorList( Class type, String role ); Map> getComponentDescriptorMap( Class type, String role ); T lookup( Class type, String role, String roleHint ) throws ComponentLookupException; List lookupList( Class type, String role, List hints ) throws ComponentLookupException; Map lookupMap( Class type, String role, List hints ) throws ComponentLookupException; void release( Object component ) throws ComponentLifecycleException; void removeComponentRealm( ClassRealm classRealm ) throws PlexusContainerException; void dispose(); }././@LongLink0000000000000000000000000000017600000000000011571 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/DefaultContainerConfiguration.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/DefaultCo0000644000175000017500000002752011174733555033505 0ustar twernertwernerpackage org.codehaus.plexus; import java.net.URL; import java.util.ArrayList; import java.util.List; import java.util.Map; import org.codehaus.plexus.classworlds.ClassWorld; import org.codehaus.plexus.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.discovery.ComponentDiscoverer; import org.codehaus.plexus.component.discovery.ComponentDiscovererManager; import org.codehaus.plexus.component.discovery.ComponentDiscoveryListener; import org.codehaus.plexus.component.discovery.DefaultComponentDiscoverer; import org.codehaus.plexus.component.discovery.DefaultComponentDiscovererManager; import org.codehaus.plexus.component.discovery.PlexusXmlComponentDiscoverer; import org.codehaus.plexus.component.factory.ComponentFactoryManager; import org.codehaus.plexus.component.factory.DefaultComponentFactoryManager; import org.codehaus.plexus.component.repository.ComponentRepository; import org.codehaus.plexus.component.repository.DefaultComponentRepository; import org.codehaus.plexus.configuration.source.ConfigurationSource; import org.codehaus.plexus.container.initialization.ContainerInitializationPhase; import org.codehaus.plexus.container.initialization.InitializeComponentDiscovererManagerPhase; import org.codehaus.plexus.container.initialization.InitializeComponentFactoryManagerPhase; import org.codehaus.plexus.container.initialization.InitializeComponentRegistryPhase; import org.codehaus.plexus.container.initialization.InitializeContainerConfigurationSourcePhase; import org.codehaus.plexus.container.initialization.InitializeLoggerManagerPhase; import org.codehaus.plexus.container.initialization.InitializeSystemPropertiesPhase; import org.codehaus.plexus.container.initialization.InitializeUserConfigurationSourcePhase; import org.codehaus.plexus.lifecycle.BasicLifecycleHandler; import org.codehaus.plexus.lifecycle.DefaultLifecycleHandlerManager; import org.codehaus.plexus.lifecycle.LifecycleHandler; import org.codehaus.plexus.lifecycle.LifecycleHandlerManager; import org.codehaus.plexus.personality.plexus.lifecycle.phase.ConfigurablePhase; import org.codehaus.plexus.personality.plexus.lifecycle.phase.ContextualizePhase; import org.codehaus.plexus.personality.plexus.lifecycle.phase.DisposePhase; import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializePhase; import org.codehaus.plexus.personality.plexus.lifecycle.phase.LogDisablePhase; import org.codehaus.plexus.personality.plexus.lifecycle.phase.LogEnablePhase; import org.codehaus.plexus.personality.plexus.lifecycle.phase.StartPhase; import org.codehaus.plexus.personality.plexus.lifecycle.phase.StopPhase; /** @author Jason van Zyl */ public class DefaultContainerConfiguration implements ContainerConfiguration { private String name; private Map context; private ClassWorld classWorld; private ClassRealm realm; private String containerConfiguration; private URL containerConfigurationURL; private ConfigurationSource configurationSource; private List componentDiscoverers = new ArrayList(); private List componentDiscoveryListeners = new ArrayList(); public ContainerConfiguration setName( String name ) { this.name = name; return this; } public ContainerConfiguration setContext( Map context ) { this.context = context; return this; } public ContainerConfiguration setClassWorld( ClassWorld classWorld ) { this.classWorld = classWorld; return this; } public ContainerConfiguration setRealm( ClassRealm realm ) { this.realm = realm; return this; } public ContainerConfiguration setContainerConfiguration( String containerConfiguration ) { this.containerConfiguration = containerConfiguration; return this; } public String getContainerConfiguration() { return containerConfiguration; } public ContainerConfiguration setContainerConfigurationURL( URL containerConfiguration ) { this.containerConfigurationURL = containerConfiguration; return this; } public URL getContainerConfigurationURL() { return containerConfigurationURL; } public String getName() { return name; } public Map getContext() { return context; } public ClassWorld getClassWorld() { return classWorld; } public ClassRealm getRealm() { return realm; } // Programmatic Container Initialization and Setup public ContainerConfiguration setInitializationPhases( ContainerInitializationPhase[] initializationPhases ) { this.initializationPhases = initializationPhases; return this; } public ContainerInitializationPhase[] getInitializationPhases() { return initializationPhases; } private ContainerInitializationPhase[] initializationPhases = { new InitializeComponentRegistryPhase(), new InitializeComponentFactoryManagerPhase(), new InitializeContainerConfigurationSourcePhase(), new InitializeLoggerManagerPhase(), new InitializeSystemPropertiesPhase(), new InitializeComponentDiscovererManagerPhase(), new InitializeUserConfigurationSourcePhase() }; // Component discoverer private ComponentDiscovererManager componentDiscovererManager; public ContainerConfiguration addComponentDiscoveryListener( ComponentDiscoveryListener componentDiscoveryListener ) { getComponentDiscovererManager().registerComponentDiscoveryListener( componentDiscoveryListener ); return this; } public ContainerConfiguration addComponentDiscoverer( ComponentDiscoverer componentDiscoverer ) { ((DefaultComponentDiscovererManager)getComponentDiscovererManager()).addComponentDiscoverer( componentDiscoverer ); return this; } public ContainerConfiguration addComponentDiscoverer( Class clazz ) { componentDiscoverers.add( clazz ); return this; } public ContainerConfiguration addComponentDiscoveryListener( Class clazz ) { componentDiscoveryListeners.add( clazz ); return this; } public List getComponentDiscoverers() { return componentDiscoverers; } public List getComponentDiscoveryListeners() { return componentDiscoveryListeners; } public ContainerConfiguration setComponentDiscovererManager( ComponentDiscovererManager componentDiscovererManager ) { this.componentDiscovererManager = componentDiscovererManager; return this; } public ComponentDiscovererManager getComponentDiscovererManager() { if ( componentDiscovererManager == null ) { componentDiscovererManager = new DefaultComponentDiscovererManager(); ((DefaultComponentDiscovererManager)componentDiscovererManager).addComponentDiscoverer( new DefaultComponentDiscoverer() ); ((DefaultComponentDiscovererManager)componentDiscovererManager).addComponentDiscoverer( new PlexusXmlComponentDiscoverer() ); } return componentDiscovererManager; } private ComponentFactoryManager componentFactoryManager; public ComponentFactoryManager getComponentFactoryManager() { if ( componentFactoryManager == null ) { componentFactoryManager = new DefaultComponentFactoryManager(); } return componentFactoryManager; } public ContainerConfiguration setComponentFactoryManager( ComponentFactoryManager componentFactoryManager ) { this.componentFactoryManager = componentFactoryManager; return this; } private ComponentRepository componentRepository; public ContainerConfiguration setComponentRepository( ComponentRepository componentRepository ) { this.componentRepository = componentRepository; return this; } public ComponentRepository getComponentRepository() { if ( componentRepository == null ) { componentRepository = new DefaultComponentRepository(); } return componentRepository; } // Lifecycle handler manager private LifecycleHandlerManager lifecycleHandlerManager; public ContainerConfiguration addLifecycleHandler( LifecycleHandler lifecycleHandler ) { getLifecycleHandlerManager().addLifecycleHandler( lifecycleHandler ); return this; } public ContainerConfiguration setLifecycleHandlerManager( LifecycleHandlerManager lifecycleHandlerManager ) { this.lifecycleHandlerManager = lifecycleHandlerManager; return this; } public LifecycleHandlerManager getLifecycleHandlerManager() { if ( lifecycleHandlerManager == null ) { lifecycleHandlerManager = new DefaultLifecycleHandlerManager(); // Plexus LifecycleHandler plexus = new BasicLifecycleHandler( "plexus" ); // Begin plexus.addBeginSegment( new LogEnablePhase() ); plexus.addBeginSegment( new ContextualizePhase() ); // plexus.addBeginSegment( new AutoConfigurePhase() ); plexus.addBeginSegment( new InitializePhase() ); plexus.addBeginSegment( new StartPhase() ); // End plexus.addEndSegment( new StopPhase() ); plexus.addEndSegment( new DisposePhase() ); plexus.addEndSegment( new LogDisablePhase() ); lifecycleHandlerManager.addLifecycleHandler( plexus ); // Basic LifecycleHandler basic = new BasicLifecycleHandler( "basic" ); // Begin basic.addBeginSegment( new LogEnablePhase() ); basic.addBeginSegment( new ContextualizePhase() ); // basic.addBeginSegment( new AutoConfigurePhase() ); basic.addBeginSegment( new InitializePhase() ); basic.addBeginSegment( new StartPhase() ); // End basic.addEndSegment( new StopPhase() ); basic.addEndSegment( new DisposePhase() ); basic.addEndSegment( new LogDisablePhase() ); lifecycleHandlerManager.addLifecycleHandler( basic ); // Plexus configurable LifecycleHandler plexusConfigurable = new BasicLifecycleHandler( "plexus-configurable" ); // Begin plexusConfigurable.addBeginSegment( new LogEnablePhase() ); plexusConfigurable.addBeginSegment( new ContextualizePhase() ); plexusConfigurable.addBeginSegment( new ConfigurablePhase() ); plexusConfigurable.addBeginSegment( new InitializePhase() ); plexusConfigurable.addBeginSegment( new StartPhase() ); // End plexusConfigurable.addEndSegment( new StopPhase() ); plexusConfigurable.addEndSegment( new DisposePhase() ); plexusConfigurable.addEndSegment( new LogDisablePhase() ); lifecycleHandlerManager.addLifecycleHandler( plexusConfigurable ); // Passive LifecycleHandler passive = new BasicLifecycleHandler( "passive" ); lifecycleHandlerManager.addLifecycleHandler( passive ); // Bootstrap LifecycleHandler bootstrap = new BasicLifecycleHandler( "bootstrap" ); bootstrap.addBeginSegment( new ContextualizePhase() ); lifecycleHandlerManager.addLifecycleHandler( bootstrap ); } return lifecycleHandlerManager; } // Configuration Sources public ContainerConfiguration setConfigurationSource( ConfigurationSource configurationSource ) { this.configurationSource = configurationSource; return this; } public ConfigurationSource getConfigurationSource() { return configurationSource; } } ././@LongLink0000000000000000000000000000014600000000000011566 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000755000175000017500000000000011225200004033600 5ustar twernertwerner././@LongLink0000000000000000000000000000015600000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/manager/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000755000175000017500000000000011225200003033577 5ustar twernertwerner././@LongLink0000000000000000000000000000022300000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/manager/SingletonComponentManagerFactory.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000167711111230230033613 0ustar twernertwernerpackage org.codehaus.plexus.component.manager; import org.codehaus.plexus.MutablePlexusContainer; import org.codehaus.plexus.component.repository.ComponentDescriptor; import org.codehaus.plexus.lifecycle.LifecycleHandler; public class SingletonComponentManagerFactory implements ComponentManagerFactory { public String getId() { return "singleton"; } @SuppressWarnings({"RawUseOfParameterizedType"}) public ComponentManager createComponentManager( MutablePlexusContainer container, LifecycleHandler lifecycleHandler, ComponentDescriptor componentDescriptor, String role, String roleHint ) { return new SingletonComponentManager( container, lifecycleHandler, componentDescriptor, role, roleHint ); } } ././@LongLink0000000000000000000000000000021300000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/manager/AbstractComponentManager.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000001532211135206670033624 0ustar twernertwernerpackage org.codehaus.plexus.component.manager; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.MutablePlexusContainer; import org.codehaus.plexus.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.builder.AbstractComponentBuildListener; import org.codehaus.plexus.component.builder.ComponentBuilder; import org.codehaus.plexus.component.builder.XBeanComponentBuilder; import org.codehaus.plexus.component.factory.ComponentInstantiationException; import org.codehaus.plexus.component.repository.ComponentDescriptor; import org.codehaus.plexus.component.repository.exception.ComponentLifecycleException; import org.codehaus.plexus.lifecycle.LifecycleHandler; import org.codehaus.plexus.logging.Logger; import org.codehaus.plexus.personality.plexus.lifecycle.phase.PhaseExecutionException; import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; public abstract class AbstractComponentManager implements ComponentManager { protected final MutablePlexusContainer container; private final ClassRealm realm; protected final ComponentDescriptor componentDescriptor; private final Class type; private final String role; private final String roleHint; protected final ComponentBuilder builder = new XBeanComponentBuilder(this); private final LifecycleHandler lifecycleHandler; /** * Contains a mapping from singleton instances to the realms * they were used to configure with. This realm will be used to * call all lifecycle methods. * @return a synchronized map, make sure to synchronize the map when iterating. */ protected final Map componentContextRealms = Collections.synchronizedMap(new HashMap()); private int connections; private long startId; public AbstractComponentManager( MutablePlexusContainer container, LifecycleHandler lifecycleHandler, ComponentDescriptor componentDescriptor, String role, String roleHint) { if ( container == null ) { throw new NullPointerException( "container is null" ); } this.container = container; if ( lifecycleHandler == null ) { throw new NullPointerException( "lifecycleHandler is null" ); } this.lifecycleHandler = lifecycleHandler; if ( componentDescriptor == null ) { throw new NullPointerException( "componentDescriptor is null" ); } this.componentDescriptor = componentDescriptor; if ( role == null ) { throw new NullPointerException( "role is null" ); } this.role = role; if ( roleHint == null ) { throw new NullPointerException( "roleHint is null" ); } this.roleHint = roleHint; this.realm = componentDescriptor.getRealm(); this.type = componentDescriptor.getImplementationClass(); } public ComponentDescriptor getComponentDescriptor() { return componentDescriptor; } public Class getType() { return type; } public ClassRealm getRealm() { return realm; } public String getRole() { return role; } public String getRoleHint() { return roleHint; } public LifecycleHandler getLifecycleHandler() { return lifecycleHandler; } protected void incrementConnectionCount() { connections++; } protected void decrementConnectionCount() { connections--; } protected boolean connected() { return connections > 0; } public int getConnections() { return connections; } // ---------------------------------------------------------------------- // Lifecylce Management // ---------------------------------------------------------------------- public void start( Object component ) throws PhaseExecutionException { startId = NEXT_START_ID.getAndIncrement(); getLifecycleHandler().start( component, this, componentDescriptor.getRealm() ); } /** * @deprecated for internal use only.. will be removed */ public long getStartId() { return startId; } protected T createComponentInstance() throws ComponentInstantiationException, ComponentLifecycleException { return builder.build(componentDescriptor, realm, new AbstractComponentBuildListener() { public void componentCreated( ComponentDescriptor componentDescriptor, Object component, ClassRealm realm) { componentContextRealms.put( component, realm ); } }); } protected void endComponentLifecycle( Object component ) throws ComponentLifecycleException { ClassRealm contextRealm = componentContextRealms.remove( component ); if ( contextRealm == null ) { contextRealm = container.getLookupRealm( component ); } try { getLifecycleHandler().end( component, this, contextRealm ); } catch ( PhaseExecutionException e ) { throw new ComponentLifecycleException( "Error ending component lifecycle", e ); } } public MutablePlexusContainer getContainer() { return container; } public Logger getLogger() { return container.getLogger(); } public void dissociateComponentRealm( ClassRealm realm ) throws ComponentLifecycleException { synchronized ( componentContextRealms ) { for ( Iterator> iterator = componentContextRealms.entrySet().iterator(); iterator.hasNext(); ) { Entry entry = iterator.next(); ClassRealm componentRealm = entry.getValue(); if ( componentRealm.getId().equals( realm.getId() ) ) { iterator.remove(); } } } } } ././@LongLink0000000000000000000000000000022300000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/manager/PerLookupComponentManagerFactory.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000170011111230230033576 0ustar twernertwernerpackage org.codehaus.plexus.component.manager; import org.codehaus.plexus.MutablePlexusContainer; import org.codehaus.plexus.component.repository.ComponentDescriptor; import org.codehaus.plexus.lifecycle.LifecycleHandler; public class PerLookupComponentManagerFactory implements ComponentManagerFactory { public String getId() { return "per-lookup"; } @SuppressWarnings({"RawUseOfParameterizedType"}) public ComponentManager createComponentManager( MutablePlexusContainer container, LifecycleHandler lifecycleHandler, ComponentDescriptor componentDescriptor, String role, String roleHint ) { return new PerLookupComponentManager( container, lifecycleHandler, componentDescriptor, role, roleHint ); } } ././@LongLink0000000000000000000000000000022500000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/manager/UndefinedComponentManagerException.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000170110722311152033611 0ustar twernertwernerpackage org.codehaus.plexus.component.manager; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * @version $Id: UndefinedComponentManagerException.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public class UndefinedComponentManagerException extends Exception { public UndefinedComponentManagerException( String message ) { super( message ); } } ././@LongLink0000000000000000000000000000020300000000000011560 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/manager/ComponentManager.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000501311135206670033620 0ustar twernertwernerpackage org.codehaus.plexus.component.manager; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.MutablePlexusContainer; import org.codehaus.plexus.personality.plexus.lifecycle.phase.PhaseExecutionException; import org.codehaus.plexus.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.factory.ComponentInstantiationException; import org.codehaus.plexus.component.repository.ComponentDescriptor; import org.codehaus.plexus.component.repository.exception.ComponentLifecycleException; import org.codehaus.plexus.lifecycle.LifecycleHandler; import java.util.concurrent.atomic.AtomicLong; /** * Manages a component manager. * Determines when a component is shutdown, and when it's started up. Each * manager deals with only one component class, though may handle multiple * instances of this class. * * @author Jason van Zyl * * @version $Id: ComponentManager.java 8061 2009-01-19 23:33:12Z dain $ */ public interface ComponentManager { String ROLE = ComponentManager.class.getName(); /** * @deprecated for internal use only.. will be removed */ AtomicLong NEXT_START_ID = new AtomicLong( 1 ); int getConnections(); /** * @deprecated use start instead */ LifecycleHandler getLifecycleHandler(); void dispose() throws ComponentLifecycleException; void release( Object component ) throws ComponentLifecycleException; T getComponent() throws ComponentInstantiationException, ComponentLifecycleException; ComponentDescriptor getComponentDescriptor(); Class getType(); String getRole(); String getRoleHint(); MutablePlexusContainer getContainer(); void dissociateComponentRealm( ClassRealm realm ) throws ComponentLifecycleException; ClassRealm getRealm(); void start(Object component) throws PhaseExecutionException; /** * @deprecated for internal use only.. will be removed */ long getStartId(); }././@LongLink0000000000000000000000000000021200000000000011560 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/manager/ComponentManagerFactory.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000174511111230230033607 0ustar twernertwernerpackage org.codehaus.plexus.component.manager; import org.codehaus.plexus.MutablePlexusContainer; import org.codehaus.plexus.component.repository.ComponentDescriptor; import org.codehaus.plexus.lifecycle.LifecycleHandler; public interface ComponentManagerFactory { /** * Gets the unique identifier of this ComponentManagerFactory. This id is the instantiation strategy specified * in a component descriptor. * @return the unique identifier and instantiation strategy name */ String getId(); /** * Creates a new component manager for the specified component descriptor. */ ComponentManager createComponentManager( MutablePlexusContainer container, LifecycleHandler lifecycleHandler, ComponentDescriptor componentDescriptor, String role, String roleHint ); } ././@LongLink0000000000000000000000000000021400000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/manager/PerLookupComponentManager.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000425011111156773033624 0ustar twernertwernerpackage org.codehaus.plexus.component.manager; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.component.factory.ComponentInstantiationException; import org.codehaus.plexus.component.repository.exception.ComponentLifecycleException; import org.codehaus.plexus.component.repository.ComponentDescriptor; import org.codehaus.plexus.MutablePlexusContainer; import org.codehaus.plexus.lifecycle.LifecycleHandler; /** * Creates a new component manager for every lookup * * @author Jason van Zyl * * @version $Id: PerLookupComponentManager.java 7858 2008-11-20 03:48:11Z dain $ */ public class PerLookupComponentManager extends AbstractComponentManager { public PerLookupComponentManager( MutablePlexusContainer container, LifecycleHandler lifecycleHandler, ComponentDescriptor componentDescriptor, String role, String roleHint ) { super( container, lifecycleHandler, componentDescriptor, role, roleHint ); } public void dispose() { } public T getComponent( ) throws ComponentInstantiationException, ComponentLifecycleException { T component = createComponentInstance(); return component; } public void release( Object component ) throws ComponentLifecycleException { decrementConnectionCount(); endComponentLifecycle( component ); // non cleanup map references for per-lookup cause leak componentContextRealms.remove( component ); } } ././@LongLink0000000000000000000000000000021400000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/manager/SingletonComponentManager.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000454111111156773033627 0ustar twernertwernerpackage org.codehaus.plexus.component.manager; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.component.factory.ComponentInstantiationException; import org.codehaus.plexus.component.repository.exception.ComponentLifecycleException; import org.codehaus.plexus.component.repository.ComponentDescriptor; import org.codehaus.plexus.MutablePlexusContainer; import org.codehaus.plexus.lifecycle.LifecycleHandler; /** * This ensures a component is only used as a singleton, and is only shutdown when the container * shuts down. * * @author Jason van Zyl */ public class SingletonComponentManager extends AbstractComponentManager { private T singleton; public SingletonComponentManager( MutablePlexusContainer container, LifecycleHandler lifecycleHandler, ComponentDescriptor componentDescriptor, String role, String roleHint ) { super( container, lifecycleHandler, componentDescriptor, role, roleHint ); } public synchronized void release( Object component ) throws ComponentLifecycleException { if ( singleton == component ) { dispose(); } } public synchronized void dispose() throws ComponentLifecycleException { if ( singleton != null ) { endComponentLifecycle( singleton ); singleton = null; } } public synchronized T getComponent( ) throws ComponentInstantiationException, ComponentLifecycleException { if ( singleton == null ) { singleton = createComponentInstance(); } incrementConnectionCount(); return singleton; } } ././@LongLink0000000000000000000000000000015600000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/builder/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000755000175000017500000000000011225200003033577 5ustar twernertwerner././@LongLink0000000000000000000000000000021100000000000011557 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/builder/ComponentBuildListener.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000217211107373274033627 0ustar twernertwerner/* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.codehaus.plexus.component.builder; import org.codehaus.plexus.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.repository.ComponentDescriptor; public interface ComponentBuildListener { void beforeComponentCreate(ComponentDescriptor componentDescriptor, ClassRealm realm ); void componentCreated(ComponentDescriptor componentDescriptor, Object component, ClassRealm realm ); void componentConfigured(ComponentDescriptor componentDescriptor, Object component, ClassRealm realm ); } ././@LongLink0000000000000000000000000000020300000000000011560 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/builder/ComponentBuilder.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000223011107373274033622 0ustar twernertwerner/* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.codehaus.plexus.component.builder; import org.codehaus.plexus.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.repository.ComponentDescriptor; import org.codehaus.plexus.component.repository.exception.ComponentLifecycleException; import org.codehaus.plexus.component.factory.ComponentInstantiationException; public interface ComponentBuilder { T build(ComponentDescriptor descriptor, ClassRealm realm, ComponentBuildListener listener) throws ComponentInstantiationException, ComponentLifecycleException; } ././@LongLink0000000000000000000000000000022100000000000011560 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/builder/AbstractComponentBuildListener.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000231711107373274033630 0ustar twernertwerner/* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.codehaus.plexus.component.builder; import org.codehaus.plexus.component.repository.ComponentDescriptor; import org.codehaus.plexus.classworlds.realm.ClassRealm; public abstract class AbstractComponentBuildListener implements ComponentBuildListener { public void beforeComponentCreate(ComponentDescriptor componentDescriptor, ClassRealm realm) { } public void componentCreated(ComponentDescriptor componentDescriptor, Object component, ClassRealm realm) { } public void componentConfigured(ComponentDescriptor componentDescriptor, Object component, ClassRealm realm) { } } ././@LongLink0000000000000000000000000000021000000000000011556 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/builder/XBeanComponentBuilder.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000005340011135475677033642 0ustar twernertwerner/* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.codehaus.plexus.component.builder; import static org.apache.xbean.recipe.RecipeHelper.toClass; import org.apache.xbean.recipe.AbstractRecipe; import org.apache.xbean.recipe.ConstructionException; import org.apache.xbean.recipe.ObjectRecipe; import org.apache.xbean.recipe.Option; import org.apache.xbean.recipe.RecipeHelper; import org.codehaus.plexus.MutablePlexusContainer; import org.codehaus.plexus.PlexusConstants; import org.codehaus.plexus.PlexusContainer; import org.codehaus.plexus.ComponentRegistry; import org.codehaus.plexus.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.MapOrientedComponent; import org.codehaus.plexus.component.collections.ComponentList; import org.codehaus.plexus.component.collections.ComponentMap; import org.codehaus.plexus.component.configurator.BasicComponentConfigurator; import org.codehaus.plexus.component.configurator.ComponentConfigurationException; import org.codehaus.plexus.component.configurator.ComponentConfigurator; import org.codehaus.plexus.component.configurator.converters.ConfigurationConverter; import org.codehaus.plexus.component.configurator.converters.composite.MapConverter; import org.codehaus.plexus.component.configurator.converters.lookup.ConverterLookup; import org.codehaus.plexus.component.configurator.converters.lookup.DefaultConverterLookup; import org.codehaus.plexus.component.configurator.converters.special.ClassRealmConverter; import org.codehaus.plexus.component.configurator.expression.DefaultExpressionEvaluator; import org.codehaus.plexus.component.factory.ComponentFactory; import org.codehaus.plexus.component.factory.ComponentInstantiationException; import org.codehaus.plexus.component.factory.java.JavaComponentFactory; import org.codehaus.plexus.component.manager.ComponentManager; import org.codehaus.plexus.component.repository.ComponentDescriptor; import org.codehaus.plexus.component.repository.ComponentRequirement; import org.codehaus.plexus.component.repository.ComponentRequirementList; import org.codehaus.plexus.component.repository.exception.ComponentLifecycleException; import org.codehaus.plexus.component.repository.exception.ComponentLookupException; import org.codehaus.plexus.configuration.PlexusConfiguration; import org.codehaus.plexus.configuration.PlexusConfigurationException; import org.codehaus.plexus.logging.Logger; import org.codehaus.plexus.personality.plexus.lifecycle.phase.PhaseExecutionException; import org.codehaus.plexus.util.StringUtils; import java.lang.reflect.Type; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import java.util.LinkedHashSet; public class XBeanComponentBuilder implements ComponentBuilder { private static final ThreadLocal>> STACK = new ThreadLocal>>() { protected LinkedHashSet> initialValue() { return new LinkedHashSet>(); } }; private ComponentManager componentManager; public XBeanComponentBuilder() { } public XBeanComponentBuilder(ComponentManager componentManager) { setComponentManager(componentManager); } public ComponentManager getComponentManager() { return componentManager; } public void setComponentManager(ComponentManager componentManager) { this.componentManager = componentManager; } protected MutablePlexusContainer getContainer() { return componentManager.getContainer(); } public T build( ComponentDescriptor descriptor, ClassRealm realm, ComponentBuildListener listener ) throws ComponentInstantiationException, ComponentLifecycleException { LinkedHashSet> stack = STACK.get(); if ( stack.contains( descriptor ) ) { // create list of circularity List> circularity = new ArrayList>( stack ); circularity.subList( circularity.indexOf( descriptor ), circularity.size() ); circularity.add( descriptor ); // nice circularity message String message = "Creation circularity: "; for ( ComponentDescriptor componentDescriptor : circularity ) { message += "\n\t[" + componentDescriptor.getRole() + ", " + componentDescriptor.getRoleHint() + "]"; } throw new ComponentInstantiationException( message ); } stack.add( descriptor ); try { if (listener != null) { listener.beforeComponentCreate(descriptor, realm); } T component = createComponentInstance(descriptor, realm); if (listener != null) { listener.componentCreated(descriptor, component, realm); } startComponentLifecycle(component, realm); if (listener != null) { listener.componentConfigured(descriptor, component, realm); } return component; } finally { stack.remove( descriptor ); } } protected T createComponentInstance(ComponentDescriptor descriptor, ClassRealm realm) throws ComponentInstantiationException, ComponentLifecycleException { MutablePlexusContainer container = getContainer(); if (realm == null) { realm = descriptor.getRealm(); } ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader(); Thread.currentThread().setContextClassLoader(realm); try { ObjectRecipe recipe = createObjectRecipe(descriptor, realm); T instance; ComponentFactory componentFactory = container.getComponentFactoryManager().findComponentFactory(descriptor.getComponentFactory()); if (JavaComponentFactory.class.equals(componentFactory.getClass())) { // xbean-reflect will create object and do injection instance = (T) recipe.create(); } else { // todo figure out how to easily let xbean use the factory to construct the component // use object factory to construct component and then inject into that object instance = (T) componentFactory.newInstance(descriptor, realm, container); recipe.setProperties( instance ); } // todo figure out how to easily let xbean do this map oriented stuff (if it is actually used in plexus) if ( instance instanceof MapOrientedComponent) { MapOrientedComponent mapOrientedComponent = (MapOrientedComponent) instance; processMapOrientedComponent(descriptor, mapOrientedComponent, realm); } return instance; } catch (Exception e) { throw new ComponentLifecycleException("Error constructing component " + descriptor.getHumanReadableKey(), e); } finally { Thread.currentThread().setContextClassLoader(oldClassLoader); } } public ObjectRecipe createObjectRecipe(ComponentDescriptor descriptor, ClassRealm realm) throws ComponentInstantiationException, PlexusConfigurationException { String factoryMethod = null; String[] constructorArgNames = null; Class[] constructorArgTypes = null; ObjectRecipe recipe = new ObjectRecipe(descriptor.getImplementationClass(), factoryMethod, constructorArgNames, constructorArgTypes); recipe.allow(Option.FIELD_INJECTION); recipe.allow(Option.PRIVATE_PROPERTIES); // MapOrientedComponents don't get normal injection if (!MapOrientedComponent.class.isAssignableFrom(descriptor.getImplementationClass())) { for (ComponentRequirement requirement : descriptor.getRequirements() ) { String name = requirement.getFieldName(); RequirementRecipe requirementRecipe = new RequirementRecipe(descriptor, requirement, getContainer(), name == null); if (name != null) { recipe.setProperty(name, requirementRecipe); } else { recipe.setAutoMatchProperty(requirement.getRole(), requirementRecipe); } } // add configuration data if (shouldConfigure(descriptor )) { PlexusConfiguration configuration = descriptor.getConfiguration(); if (configuration != null) { for (String name : configuration.getAttributeNames()) { String value; try { value = configuration.getAttribute(name); } catch (PlexusConfigurationException e) { throw new ComponentInstantiationException("Error getting value for attribute " + name, e); } name = fromXML(name); recipe.setProperty(name, value); } for (PlexusConfiguration child : configuration.getChildren()) { String name = child.getName(); name = fromXML(name); if (child.getChildCount() == 0) { recipe.setProperty(name, child.getValue()); } else { recipe.setProperty(name, new PlexusConfigurationRecipe(child)); } } } } } return recipe; } protected boolean shouldConfigure( ComponentDescriptor descriptor ) { String configuratorId = descriptor.getComponentConfigurator(); if (StringUtils.isEmpty(configuratorId)) { return true; } try { ComponentConfigurator componentConfigurator = getContainer().lookup(ComponentConfigurator.class, configuratorId); return componentConfigurator == null || componentConfigurator.getClass().equals(BasicComponentConfigurator.class); } catch (ComponentLookupException e) { } return true; } protected String fromXML(String elementName) { return StringUtils.lowercaseFirstLetter(StringUtils.removeAndHump(elementName, "-")); } protected void startComponentLifecycle(Object component, ClassRealm realm) throws ComponentLifecycleException { try { componentManager.start(component); } catch (PhaseExecutionException e) { throw new ComponentLifecycleException("Error starting component", e); } } public static class RequirementRecipe extends AbstractRecipe { private ComponentDescriptor componentDescriptor; private ComponentRequirement requirement; private MutablePlexusContainer container; private boolean autoMatch; public RequirementRecipe(ComponentDescriptor componentDescriptor, ComponentRequirement requirement, MutablePlexusContainer container, boolean autoMatch) { this.componentDescriptor = componentDescriptor; this.requirement = requirement; this.container = container; this.autoMatch = autoMatch; } public boolean canCreate(Type expectedType) { if (!autoMatch) { return true; } Class propertyType = toClass(expectedType); // Never auto match array, map or collection if (propertyType.isArray() || Map.class.isAssignableFrom(propertyType) || Collection.class.isAssignableFrom(propertyType) || requirement instanceof ComponentRequirementList) { return false; } // if the type to be created is an instance of the expected type, return true try { ComponentRegistry componentRegistry = container.getComponentRegistry(); return componentRegistry.getComponentDescriptor(propertyType, requirement.getRole(), requirement.getRoleHint()) != null; } catch (Exception e) { } return false; } @Override protected Object internalCreate(Type expectedType, boolean lazyRefAllowed) throws ConstructionException { Class propertyType = toClass(expectedType); try { String role = requirement.getRole(); List roleHints = null; if (requirement instanceof ComponentRequirementList) { roleHints = ((ComponentRequirementList) requirement).getRoleHints(); } Object assignment; if (propertyType.isArray()) { assignment = new ArrayList(container.lookupList(role, roleHints)); } // Map.class.isAssignableFrom( clazz ) doesn't make sense, since Map.class doesn't really // have a meaningful superclass. else { if (Map.class.equals(propertyType)) { // todo this is a lazy map // get component type Type keyType = Object.class; Type valueType = Object.class; Type[] typeParameters = RecipeHelper.getTypeParameters(Collection.class, expectedType); if (typeParameters != null && typeParameters.length == 2) { if (typeParameters[0] instanceof Class) { keyType = typeParameters[0]; } if (typeParameters[1] instanceof Class) { valueType = typeParameters[1]; } } // todo verify key type is String assignment = new ComponentMap(container, toClass(valueType), role, roleHints, componentDescriptor.getHumanReadableKey()); } // List.class.isAssignableFrom( clazz ) doesn't make sense, since List.class doesn't really // have a meaningful superclass other than Collection.class, which we'll handle next. else if (List.class.equals(propertyType)) { // todo this is a lazy list // get component type Type[] typeParameters = RecipeHelper.getTypeParameters(Collection.class, expectedType); Type componentType = Object.class; if (typeParameters != null && typeParameters.length == 1 && typeParameters[0] instanceof Class) { componentType = typeParameters[0]; } assignment = new ComponentList(container, toClass( componentType ), role, roleHints, componentDescriptor.getHumanReadableKey()); } // Set.class.isAssignableFrom( clazz ) doesn't make sense, since Set.class doesn't really // have a meaningful superclass other than Collection.class, and that would make this // if-else cascade unpredictable (both List and Set extend Collection, so we'll put another // check in for Collection.class. else if (Set.class.equals(propertyType) || Collection.class.isAssignableFrom(propertyType)) { // todo why isn't this lazy as above? assignment = container.lookupMap(role, roleHints); } else if (Logger.class.equals(propertyType)) { // todo magic reference assignment = container.getLoggerManager().getLoggerForComponent(componentDescriptor.getRole()); } else if (PlexusContainer.class.equals(propertyType)) { // todo magic reference assignment = container; } else { String roleHint = requirement.getRoleHint(); assignment = container.lookup(propertyType, role, roleHint); } } return assignment; } catch (ComponentLookupException e) { throw new ConstructionException("Composition failed of field " + requirement.getFieldName() + " " + "in object of type " + componentDescriptor.getImplementation() + " because the requirement " + requirement + " was missing)", e); } } @Override public String toString() { return "RequirementRecipe[fieldName=" + requirement.getFieldName() + ", role=" + componentDescriptor.getRole() + "]"; } } private class PlexusConfigurationRecipe extends AbstractRecipe { private final PlexusConfiguration child; public PlexusConfigurationRecipe(PlexusConfiguration child) { this.child = child; } public boolean canCreate(Type type) { try { ConverterLookup lookup = createConverterLookup(); lookup.lookupConverterForType(toClass(type)); return true; } catch (ComponentConfigurationException e) { return false; } } @Override protected Object internalCreate(Type expectedType, boolean lazyRefAllowed) throws ConstructionException { try { ConverterLookup lookup = createConverterLookup(); ConfigurationConverter converter = lookup.lookupConverterForType(toClass(expectedType)); // todo this will not work for static factories ObjectRecipe caller = (ObjectRecipe) RecipeHelper.getCaller(); Class parentClass = toClass(caller.getType()); Object value = converter.fromConfiguration(lookup, child, toClass(expectedType), parentClass, Thread.currentThread().getContextClassLoader(), new DefaultExpressionEvaluator()); return value; } catch (ComponentConfigurationException e) { throw new ConstructionException("Unable to convert configuration for property " + child.getName() + " to " + toClass(expectedType).getName()); } } private ConverterLookup createConverterLookup() { ClassRealm realm = (ClassRealm) Thread.currentThread().getContextClassLoader(); ConverterLookup lookup = new DefaultConverterLookup(); lookup.registerConverter( new ClassRealmConverter(realm) ); return lookup; } } private void processMapOrientedComponent(ComponentDescriptor descriptor, MapOrientedComponent mapOrientedComponent, ClassRealm realm) throws ComponentConfigurationException, ComponentLookupException { MutablePlexusContainer container = getContainer(); for (ComponentRequirement requirement : descriptor.getRequirements()) { String role = requirement.getRole(); String hint = requirement.getRoleHint(); String mappingType = requirement.getFieldMappingType(); Object value; // if the hint is not empty (and not default), we don't care about mapping type... // it's a single-value, not a collection. if (StringUtils.isNotEmpty(hint) && !hint.equals(PlexusConstants.PLEXUS_DEFAULT_HINT)) { value = container.lookup(role, hint); } else if ("single".equals(mappingType)) { value = container.lookup(role, hint); } else if ("map".equals(mappingType)) { value = container.lookupMap(role); } else if ("set".equals(mappingType)) { value = new HashSet(container.lookupList(role)); } else { value = container.lookup(role, hint); } mapOrientedComponent.addComponentRequirement(requirement, value); } MapConverter converter = new MapConverter(); ConverterLookup converterLookup = new DefaultConverterLookup(); DefaultExpressionEvaluator expressionEvaluator = new DefaultExpressionEvaluator(); PlexusConfiguration configuration = container.getConfigurationSource().getConfiguration( descriptor ); if ( configuration != null ) { Map context = (Map) converter.fromConfiguration(converterLookup, configuration, null, null, realm, expressionEvaluator, null ); mapOrientedComponent.setComponentConfiguration( context ); } } } ././@LongLink0000000000000000000000000000015600000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/factory/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000755000175000017500000000000011225200003033577 5ustar twernertwerner././@LongLink0000000000000000000000000000020300000000000011560 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/factory/ComponentFactory.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000256710722311152033624 0ustar twernertwernerpackage org.codehaus.plexus.component.factory; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.PlexusContainer; import org.codehaus.plexus.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.repository.ComponentDescriptor; /** A ServiceFactory is responsible for instantiating a component. * * @author Jason van Zyl * @author Michal Maczka * * @version $Id: ComponentFactory.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public interface ComponentFactory { /** Component role. */ static String ROLE = ComponentFactory.class.getName(); String getId(); Object newInstance( ComponentDescriptor componentDescriptor, ClassRealm classRealm, PlexusContainer container ) throws ComponentInstantiationException; } ././@LongLink0000000000000000000000000000022200000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/factory/ComponentInstantiationException.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000231210531217373033620 0ustar twernertwernerpackage org.codehaus.plexus.component.factory; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 Michal Maczka * * @version $Id: ComponentInstantiationException.java 4779 2006-11-23 04:09:31Z jvanzyl $ */ public class ComponentInstantiationException extends Exception { public ComponentInstantiationException( String message ) { super( message ); } public ComponentInstantiationException( String message, Throwable cause ) { super( message, cause ); } public ComponentInstantiationException( Throwable cause ) { super( cause ); } } ././@LongLink0000000000000000000000000000016300000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/factory/java/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000755000175000017500000000000011225200003033577 5ustar twernertwerner././@LongLink0000000000000000000000000000021400000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/factory/java/JavaComponentFactory.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000001052711110547154033624 0ustar twernertwernerpackage org.codehaus.plexus.component.factory.java; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.PlexusContainer; import org.codehaus.plexus.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.factory.AbstractComponentFactory; import org.codehaus.plexus.component.factory.ComponentInstantiationException; import org.codehaus.plexus.component.repository.ComponentDescriptor; import java.lang.reflect.Modifier; /** * Component Factory for components written in Java Language which have default no parameter constructor * * @author Jason van Zyl * @author Michal Maczka * @version $Id: JavaComponentFactory.java 7847 2008-11-18 14:17:16Z jvanzyl $ */ public class JavaComponentFactory extends AbstractComponentFactory { public String getId() { return "java"; } public Object newInstance( ComponentDescriptor componentDescriptor, ClassRealm classRealm, PlexusContainer container ) throws ComponentInstantiationException { Class implementationClass = null; try { String implementation = componentDescriptor.getImplementation(); implementationClass = classRealm.loadClass( implementation ); int modifiers = implementationClass.getModifiers(); if ( Modifier.isInterface( modifiers ) ) { throw new ComponentInstantiationException( "Cannot instantiate implementation '" + implementation + "' because the class is a interface." ); } if ( Modifier.isAbstract( modifiers ) ) { throw new ComponentInstantiationException( "Cannot instantiate implementation '" + implementation + "' because the class is abstract." ); } Object instance = implementationClass.newInstance(); return instance; } catch ( InstantiationException e ) { //PLXAPI: most probably cause of this is the implementation class not having // a default constructor. throw makeException( classRealm, componentDescriptor, implementationClass, e ); } catch ( ClassNotFoundException e ) { throw makeException( classRealm, componentDescriptor, implementationClass, e ); } catch ( IllegalAccessException e ) { throw makeException( classRealm, componentDescriptor, implementationClass, e ); } catch ( LinkageError e ) { throw makeException( classRealm, componentDescriptor, implementationClass, e ); } } private ComponentInstantiationException makeException( ClassRealm componentClassRealm, ComponentDescriptor componentDescriptor, Class implementationClass, Throwable e ) { // ---------------------------------------------------------------------- // Display the realm when there is an error, We should probably return a string here so we // can incorporate this into the error message for easy debugging. // ---------------------------------------------------------------------- String msg; if ( componentClassRealm == null ) { msg = "classRealm is null for " + componentDescriptor; } else { msg = "Could not instantiate component: " + componentDescriptor.getHumanReadableKey() + " realm: " + componentClassRealm.getId(); } return new ComponentInstantiationException( msg, e ); } } ././@LongLink0000000000000000000000000000022500000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/factory/UndefinedComponentFactoryException.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000226010722311152033612 0ustar twernertwernerpackage org.codehaus.plexus.component.factory; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * * @version $Id: UndefinedComponentFactoryException.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public class UndefinedComponentFactoryException extends Exception { public UndefinedComponentFactoryException( String message ) { super( message ); } public UndefinedComponentFactoryException( String message, Throwable cause ) { super( message, cause ); } public UndefinedComponentFactoryException( Throwable cause ) { super( cause ); } } ././@LongLink0000000000000000000000000000021300000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/factory/AbstractComponentFactory.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000164410707225235033630 0ustar twernertwernerpackage org.codehaus.plexus.component.factory; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * * @version $Id: AbstractComponentFactory.java 6989 2007-10-22 22:56:29Z jvanzyl $ */ public abstract class AbstractComponentFactory implements ComponentFactory { // This is for backward compatibility private String id; } ././@LongLink0000000000000000000000000000022100000000000011560 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/factory/DefaultComponentFactoryManager.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000411111107373274033622 0ustar twernertwernerpackage org.codehaus.plexus.component.factory; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.PlexusConstants; import org.codehaus.plexus.PlexusContainer; import org.codehaus.plexus.component.factory.java.JavaComponentFactory; 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; /** * @author Jason van Zyl * @version $Id: DefaultComponentFactoryManager.java 7828 2008-11-14 22:07:56Z dain $ */ public class DefaultComponentFactoryManager implements ComponentFactoryManager, Contextualizable { private ComponentFactory defaultComponentFactory = new JavaComponentFactory(); private PlexusContainer container; public ComponentFactory findComponentFactory( String id ) throws UndefinedComponentFactoryException { if ( id == null || id.equals( "java" ) ) { return defaultComponentFactory; } try { return container.lookup( ComponentFactory.class, id ); } catch ( ComponentLookupException e ) { throw new UndefinedComponentFactoryException( "Specified component factory cannot be found: " + id ); } } public void contextualize( Context context ) throws ContextException { container = (PlexusContainer) context.get( PlexusConstants.PLEXUS_KEY ); } } ././@LongLink0000000000000000000000000000021200000000000011560 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/factory/ComponentFactoryManager.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000164610706607526033640 0ustar twernertwernerpackage org.codehaus.plexus.component.factory; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * * @version $Id: ComponentFactoryManager.java 6975 2007-10-21 08:35:34Z jvanzyl $ */ public interface ComponentFactoryManager { ComponentFactory findComponentFactory( String id ) throws UndefinedComponentFactoryException; } ././@LongLink0000000000000000000000000000016300000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000755000175000017500000000000011225200003033577 5ustar twernertwerner././@LongLink0000000000000000000000000000022700000000000011566 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/ComponentConfigurationException.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000305210722311152033612 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator; import org.codehaus.plexus.configuration.PlexusConfiguration; /** * * * @author Jason van Zyl * * @version $Id: ComponentConfigurationException.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public class ComponentConfigurationException extends Exception { private PlexusConfiguration failedConfiguration; public ComponentConfigurationException( String message ) { super( message ); } public ComponentConfigurationException( String message, Throwable cause ) { super( message, cause ); } public ComponentConfigurationException( Throwable cause ) { super( cause ); } public ComponentConfigurationException( PlexusConfiguration failedConfiguration, String message ) { super( message ); this.failedConfiguration = failedConfiguration; } public ComponentConfigurationException( PlexusConfiguration failedConfiguration, String message, Throwable cause ) { super( message, cause ); this.failedConfiguration = failedConfiguration; } public ComponentConfigurationException( PlexusConfiguration failedConfiguration, Throwable cause ) { super( cause ); this.failedConfiguration = failedConfiguration; } public void setFailedConfiguration( PlexusConfiguration failedConfiguration ) { this.failedConfiguration = failedConfiguration; } public PlexusConfiguration getFailedConfiguration() { return failedConfiguration; } } ././@LongLink0000000000000000000000000000022500000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/AbstractComponentConfigurator.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000001135010707317654033632 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator; /* * The MIT License * * Copyright (c) 2004, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ import org.codehaus.classworlds.ClassRealmAdapter; import org.codehaus.plexus.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.configurator.converters.lookup.ConverterLookup; import org.codehaus.plexus.component.configurator.converters.lookup.DefaultConverterLookup; import org.codehaus.plexus.component.configurator.expression.DefaultExpressionEvaluator; import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator; import org.codehaus.plexus.configuration.PlexusConfiguration; import java.lang.reflect.Method; /** * @author Brett Porter * @version $Id: AbstractComponentConfigurator.java 6993 2007-10-23 07:15:56Z jvanzyl $ */ public abstract class AbstractComponentConfigurator implements ComponentConfigurator { /** * This is being instantiated here because there are old component factories (beanshell) that directly access * the converterLookup but do not yet state the ConverterLookup as a requirement in the component metadata. * Once these are wired up as standard components properly then we won't have to instantiate the * converter lookup here and we can let the container do it. * * @plexus.requirement */ protected ConverterLookup converterLookup = new DefaultConverterLookup(); public void configureComponent( Object component, PlexusConfiguration configuration, ClassRealm containerRealm ) throws ComponentConfigurationException { configureComponent( component, configuration, new DefaultExpressionEvaluator(), containerRealm ); } public void configureComponent( Object component, PlexusConfiguration configuration, ExpressionEvaluator expressionEvaluator, ClassRealm containerRealm ) throws ComponentConfigurationException { configureComponent( component, configuration, expressionEvaluator, containerRealm, null ); } public void configureComponent( Object component, PlexusConfiguration configuration, ExpressionEvaluator expressionEvaluator, ClassRealm containerRealm, ConfigurationListener listener ) throws ComponentConfigurationException { // ---------------------------------------------------------------------------- // For compatibility with old ComponentFactories that use old ClassWorlds // ---------------------------------------------------------------------------- org.codehaus.classworlds.ClassRealm cr = ClassRealmAdapter.getInstance( containerRealm ); Method method; try { method = getClass().getMethod( "configureComponent", new Class[]{Object.class, PlexusConfiguration.class, ExpressionEvaluator.class, org.codehaus.classworlds.ClassRealm.class, ConfigurationListener.class} ); method.invoke( this, new Object[]{component, configuration, expressionEvaluator, cr, listener} ); } catch ( Exception mnfe ) { mnfe.printStackTrace(); } // TODO: here so extended classes without the method continue to work. should be removed // this won't hit the method above going into a loop - instead, it will hit the overridden one //configureComponent( component, configuration, expressionEvaluator, containerRealm ); } } ././@LongLink0000000000000000000000000000023000000000000011560 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/MapOrientedComponentConfigurator.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000410210576263127033626 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator; import org.codehaus.plexus.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.MapOrientedComponent; import org.codehaus.plexus.component.configurator.converters.composite.MapConverter; import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator; import org.codehaus.plexus.configuration.PlexusConfiguration; import java.util.Map; /* * Copyright 2001-2005 The Apache Software Foundation. * * Licensed 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 MapOrientedComponentConfigurator extends AbstractComponentConfigurator { public void configureComponent( Object component, PlexusConfiguration configuration, ExpressionEvaluator expressionEvaluator, ClassRealm containerRealm, ConfigurationListener listener ) throws ComponentConfigurationException { if ( !( component instanceof MapOrientedComponent ) ) { throw new ComponentConfigurationException( "This configurator can only process implementations of " + MapOrientedComponent.class.getName() ); } MapConverter converter = new MapConverter(); Map context = (Map) converter.fromConfiguration( converterLookup, configuration, null, null, containerRealm, expressionEvaluator, listener ); ( (MapOrientedComponent) component ).setComponentConfiguration( context ); } } ././@LongLink0000000000000000000000000000022200000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/BasicComponentConfigurator.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000545010707303470033625 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator; /* * The MIT License * * Copyright (c) 2004, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ import org.codehaus.plexus.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.configurator.converters.composite.ObjectWithFieldsConverter; import org.codehaus.plexus.component.configurator.converters.special.ClassRealmConverter; import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator; import org.codehaus.plexus.configuration.PlexusConfiguration; /** * @author Jason van Zyl * @author Michal Maczka * @version $Id: BasicComponentConfigurator.java 6992 2007-10-23 05:31:36Z jvanzyl $ */ public class BasicComponentConfigurator extends AbstractComponentConfigurator { public void configureComponent( Object component, PlexusConfiguration configuration, ExpressionEvaluator expressionEvaluator, ClassRealm containerRealm, ConfigurationListener listener ) throws ComponentConfigurationException { // ---------------------------------------------------------------------- // We should probably take into consideration the realm that the component // came from in order to load the correct classes. // ---------------------------------------------------------------------- converterLookup.registerConverter( new ClassRealmConverter( containerRealm ) ); ObjectWithFieldsConverter converter = new ObjectWithFieldsConverter(); converter.processConfiguration( converterLookup, component, containerRealm, configuration, expressionEvaluator, listener ); } } ././@LongLink0000000000000000000000000000021500000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/ConfigurationListener.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000375110537423336033634 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator; /* * The MIT License * * Copyright (c) 2004-5, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ /** * Listen for configuration changes on an object. * * @author Brett Porter * @version $Id: ConfigurationListener.java 5127 2006-12-12 03:49:50Z jvanzyl $ */ public interface ConfigurationListener { /** * Notify the listener that a field has been set using its setter. * @param fieldName the field * @param value the value set * @param target the target object */ void notifyFieldChangeUsingSetter( String fieldName, Object value, Object target ); /** * Notify the listener that a field has been set using private field injection. * @param fieldName the field * @param value the value set * @param target the target object */ void notifyFieldChangeUsingReflection( String fieldName, Object value, Object target ); } ././@LongLink0000000000000000000000000000017600000000000011571 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/converters/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000755000175000017500000000000011225200003033577 5ustar twernertwerner././@LongLink0000000000000000000000000000020400000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/converters/basic/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000755000175000017500000000000011225200003033577 5ustar twernertwerner././@LongLink0000000000000000000000000000022700000000000011566 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/converters/basic/ShortConverter.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000273210537423336033632 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator.converters.basic; /* * The MIT License * * Copyright (c) 2004, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ public class ShortConverter extends AbstractBasicConverter { public boolean canConvert( Class type ) { return type.equals( short.class ) || type.equals( Short.class ); } public Object fromString( String str ) { return Short.valueOf( str ); } } ././@LongLink0000000000000000000000000000022600000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/converters/basic/DateConverter.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000425410537423336033633 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator.converters.basic; /* * The MIT License * * Copyright (c) 2004, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class DateConverter extends AbstractBasicConverter { /*** * @todo DateFormat is not thread safe! */ private static final DateFormat[] formats = { new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss.S a" ), new SimpleDateFormat( "yyyy-MM-dd HH:mm:ssa" ) }; public boolean canConvert( Class type ) { return type.equals( Date.class ); } public Object fromString( String str ) { for ( int i = 0; i < formats.length; i++ ) { try { return formats[i].parse( str ); } catch ( ParseException e ) { // no worries, let's try the next format. } } return null; } public String toString( Object obj ) { Date date = (Date) obj; return formats[0].format( date ); } } ././@LongLink0000000000000000000000000000023000000000000011560 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/converters/basic/StringConverter.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000265410537423336033635 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator.converters.basic; /* * The MIT License * * Copyright (c) 2004, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ public class StringConverter extends AbstractBasicConverter { public boolean canConvert( Class type ) { return type.equals( String.class ); } public Object fromString( String str ) { return str; } } ././@LongLink0000000000000000000000000000022600000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/converters/basic/ByteConverter.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000275510537423336033637 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator.converters.basic; /* * The MIT License * * Copyright (c) 2004, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ public class ByteConverter extends AbstractBasicConverter { public boolean canConvert( Class type ) { return type.equals( byte.class ) || type.equals( Byte.class ); } public Object fromString( String str ) { return new Byte( (byte) Integer.parseInt( str ) ); } } ././@LongLink0000000000000000000000000000023000000000000011560 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/converters/basic/DoubleConverter.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000273610537423336033636 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator.converters.basic; /* * The MIT License * * Copyright (c) 2004, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ public class DoubleConverter extends AbstractBasicConverter { public boolean canConvert( Class type ) { return type.equals( double.class ) || type.equals( Double.class ); } public Object fromString( String str ) { return Double.valueOf( str ); } } ././@LongLink0000000000000000000000000000022200000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/converters/basic/Converter.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000312610537423336033630 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator.converters.basic; /* * The MIT License * * Copyright (c) 2004, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ /** * Translates the String representation of a class into * an instance of the class and vice versa * */ public interface Converter { boolean canConvert( Class type ); /** * Parses a given String and return * * @param str String representation of the class * @return an instance of the class */ Object fromString( String str ); String toString( Object obj ); } ././@LongLink0000000000000000000000000000023700000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/converters/basic/AbstractBasicConverter.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000545710642755322033641 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator.converters.basic; /* * The MIT License * * Copyright (c) 2004, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ import org.codehaus.plexus.component.configurator.ComponentConfigurationException; import org.codehaus.plexus.component.configurator.ConfigurationListener; import org.codehaus.plexus.component.configurator.converters.AbstractConfigurationConverter; import org.codehaus.plexus.component.configurator.converters.lookup.ConverterLookup; import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator; import org.codehaus.plexus.configuration.PlexusConfiguration; /** * @version $Id: AbstractBasicConverter.java 6585 2007-07-04 17:37:22Z kenney $ */ public abstract class AbstractBasicConverter extends AbstractConfigurationConverter { protected abstract Object fromString( String str ) throws ComponentConfigurationException; public Object fromConfiguration( ConverterLookup converterLookup, PlexusConfiguration configuration, Class type, Class baseType, ClassLoader classLoader, ExpressionEvaluator expressionEvaluator, ConfigurationListener listener ) throws ComponentConfigurationException { if ( configuration.getChildCount() > 0 ) { throw new ComponentConfigurationException( "When configuring a basic element the configuration cannot " + "contain any child elements. " + "Configuration element '" + configuration.getName() + "'." ); } Object retValue = fromExpression( configuration, expressionEvaluator ); if ( retValue instanceof String ) { retValue = fromString( (String) retValue ); } return retValue; } } ././@LongLink0000000000000000000000000000022600000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/converters/basic/CharConverter.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000275010537423336033632 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator.converters.basic; /* * The MIT License * * Copyright (c) 2004, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ public class CharConverter extends AbstractBasicConverter { public boolean canConvert( Class type ) { return type.equals( char.class ) || type.equals( Character.class ); } public Object fromString( String str ) { return new Character( str.charAt( 0 ) ); } } ././@LongLink0000000000000000000000000000022600000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/converters/basic/FileConverter.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000527610537423336033640 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator.converters.basic; /* * The MIT License * * Copyright (c) 2004, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ import org.codehaus.plexus.component.configurator.ComponentConfigurationException; import org.codehaus.plexus.component.configurator.ConfigurationListener; import org.codehaus.plexus.component.configurator.converters.lookup.ConverterLookup; import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator; import org.codehaus.plexus.configuration.PlexusConfiguration; import java.io.File; /** * @author Brett Porter */ public class FileConverter extends AbstractBasicConverter { public boolean canConvert( Class type ) { return type.equals( File.class ); } public Object fromString( String str ) { return new File( str ); } public Object fromConfiguration( ConverterLookup converterLookup, PlexusConfiguration configuration, Class type, Class baseType, ClassLoader classLoader, ExpressionEvaluator expressionEvaluator, ConfigurationListener listener ) throws ComponentConfigurationException { File f = (File) super.fromConfiguration( converterLookup, configuration, type, baseType, classLoader, expressionEvaluator, listener ); if ( f != null ) { // Hmmm... is this cheating? Can't think of a better way right now return expressionEvaluator.alignToBaseDirectory( f ); } else { return null; } } } ././@LongLink0000000000000000000000000000022500000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/converters/basic/IntConverter.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000346610537423336033637 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator.converters.basic; import org.codehaus.plexus.component.configurator.ComponentConfigurationException; /* * The MIT License * * Copyright (c) 2004, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ public class IntConverter extends AbstractBasicConverter { public boolean canConvert( Class type ) { return type.equals( int.class ) || type.equals( Integer.class ); } public Object fromString( String str ) throws ComponentConfigurationException { try { return Integer.valueOf( str ); } catch ( NumberFormatException e ) { throw new ComponentConfigurationException( "Not a number: '" + str + "'", e ); } } } ././@LongLink0000000000000000000000000000023600000000000011566 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/converters/basic/StringBufferConverter.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000271310537423336033631 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator.converters.basic; /* * The MIT License * * Copyright (c) 2004, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ public class StringBufferConverter extends AbstractBasicConverter { public boolean canConvert( Class type ) { return type.equals( StringBuffer.class ); } public Object fromString( String str ) { return new StringBuffer( str ); } } ././@LongLink0000000000000000000000000000022700000000000011566 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/converters/basic/FloatConverter.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000273210537423336033632 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator.converters.basic; /* * The MIT License * * Copyright (c) 2004, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ public class FloatConverter extends AbstractBasicConverter { public boolean canConvert( Class type ) { return type.equals( float.class ) || type.equals( Float.class ); } public Object fromString( String str ) { return Float.valueOf( str ); } } ././@LongLink0000000000000000000000000000023100000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/converters/basic/BooleanConverter.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000277710537423336033643 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator.converters.basic; /* * The MIT License * * Copyright (c) 2004, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ public class BooleanConverter extends AbstractBasicConverter { public boolean canConvert( Class type ) { return type.equals( boolean.class ) || type.equals( Boolean.class ); } public Object fromString( String str ) { return str.equals( "true" ) ? Boolean.TRUE : Boolean.FALSE; } } ././@LongLink0000000000000000000000000000022500000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/converters/basic/UrlConverter.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000360710537423336033634 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator.converters.basic; /* * The MIT License * * Copyright (c) 2004, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ import org.codehaus.plexus.component.configurator.ComponentConfigurationException; import java.net.MalformedURLException; import java.net.URL; /** * @author Brett Porter */ public class UrlConverter extends AbstractBasicConverter { public boolean canConvert( Class type ) { return type.equals( URL.class ); } public Object fromString( String str ) throws ComponentConfigurationException { try { return new URL( str ); } catch ( MalformedURLException e ) { throw new ComponentConfigurationException( "Unable to convert '" + str + "' to an URL", e ); } } } ././@LongLink0000000000000000000000000000022600000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/converters/basic/LongConverter.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000272610537423336033635 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator.converters.basic; /* * The MIT License * * Copyright (c) 2004, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ public class LongConverter extends AbstractBasicConverter { public boolean canConvert( Class type ) { return type.equals( long.class ) || type.equals( Long.class ); } public Object fromString( String str ) { return Long.valueOf( str ); } } ././@LongLink0000000000000000000000000000022500000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/converters/basic/UriConverter.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000267010701642074033626 0ustar twernertwerner/* * Copyright (C) 2007 the original author or authors. * * Licensed 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.codehaus.plexus.component.configurator.converters.basic; import java.net.URI; import java.net.URISyntaxException; import org.codehaus.plexus.component.configurator.ComponentConfigurationException; /** * Converter for {@link URI} objects. * * @version $Id: UriConverter.java 6935 2007-10-06 08:15:56Z user57 $ */ public class UriConverter extends AbstractBasicConverter { public boolean canConvert(final Class type) { assert type != null; return type.equals(URI.class); } public Object fromString(final String str) throws ComponentConfigurationException { assert str != null; try { return new URI(str); } catch (URISyntaxException e) { throw new ComponentConfigurationException("Unable to convert to URI: " + str, e); } } }././@LongLink0000000000000000000000000000022700000000000011566 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/converters/basic/ClassConverter.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000247410531215552033626 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator.converters.basic; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.component.configurator.ComponentConfigurationException; /** * @author Brett Porter */ public class ClassConverter extends AbstractBasicConverter { public boolean canConvert( Class type ) { return type.equals( Class.class ); } public Object fromString( String str ) throws ComponentConfigurationException { try { return Class.forName( str ); } catch ( ClassNotFoundException e ) { throw new ComponentConfigurationException( "Unable to find class in conversion", e ); } } } ././@LongLink0000000000000000000000000000020500000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/converters/lookup/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000755000175000017500000000000011225200003033577 5ustar twernertwerner././@LongLink0000000000000000000000000000023100000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/converters/lookup/ConverterLookup.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000321111107373274033622 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator.converters.lookup; /* * The MIT License * * Copyright (c) 2004, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ import org.codehaus.plexus.component.configurator.ComponentConfigurationException; import org.codehaus.plexus.component.configurator.converters.ConfigurationConverter; /** @version $Id: ConverterLookup.java 7828 2008-11-14 22:07:56Z dain $ */ public interface ConverterLookup { void registerConverter( ConfigurationConverter converter ); ConfigurationConverter lookupConverterForType( Class type ) throws ComponentConfigurationException; } ././@LongLink0000000000000000000000000000024000000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/converters/lookup/DefaultConverterLookup.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000001510211107373274033624 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator.converters.lookup; /* * The MIT License * * Copyright (c) 2004, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ import org.codehaus.plexus.component.configurator.ComponentConfigurationException; import org.codehaus.plexus.component.configurator.converters.ConfigurationConverter; import org.codehaus.plexus.component.configurator.converters.basic.BooleanConverter; import org.codehaus.plexus.component.configurator.converters.basic.ByteConverter; import org.codehaus.plexus.component.configurator.converters.basic.CharConverter; import org.codehaus.plexus.component.configurator.converters.basic.DateConverter; import org.codehaus.plexus.component.configurator.converters.basic.DoubleConverter; import org.codehaus.plexus.component.configurator.converters.basic.FileConverter; import org.codehaus.plexus.component.configurator.converters.basic.FloatConverter; import org.codehaus.plexus.component.configurator.converters.basic.IntConverter; import org.codehaus.plexus.component.configurator.converters.basic.LongConverter; import org.codehaus.plexus.component.configurator.converters.basic.ShortConverter; import org.codehaus.plexus.component.configurator.converters.basic.StringBufferConverter; import org.codehaus.plexus.component.configurator.converters.basic.StringConverter; import org.codehaus.plexus.component.configurator.converters.basic.UriConverter; import org.codehaus.plexus.component.configurator.converters.basic.UrlConverter; import org.codehaus.plexus.component.configurator.converters.composite.ArrayConverter; import org.codehaus.plexus.component.configurator.converters.composite.CollectionConverter; import org.codehaus.plexus.component.configurator.converters.composite.MapConverter; import org.codehaus.plexus.component.configurator.converters.composite.ObjectWithFieldsConverter; import org.codehaus.plexus.component.configurator.converters.composite.PlexusConfigurationConverter; import org.codehaus.plexus.component.configurator.converters.composite.PropertiesConverter; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.ArrayList; import java.util.concurrent.CopyOnWriteArrayList; public class DefaultConverterLookup implements ConverterLookup { private final List converters = new ArrayList(); private final List customConverters = new CopyOnWriteArrayList(); private final Map, ConfigurationConverter> converterMap = new HashMap, ConfigurationConverter>(); public DefaultConverterLookup() { registerDefaultBasicConverters(); registerDefaultCompositeConverters(); } public synchronized void registerConverter( ConfigurationConverter converter ) { customConverters.add( converter ); } protected void registerDefaultConverter( ConfigurationConverter converter ) { converters.add( converter ); } public ConfigurationConverter lookupConverterForType( Class type ) throws ComponentConfigurationException { ConfigurationConverter retValue = null; if ( converterMap.containsKey( type ) ) { retValue = converterMap.get( type ); } else { if ( customConverters != null ) { retValue = findConverterForType( customConverters, type ); } if ( retValue == null ) { retValue = findConverterForType( converters, type ); } } if ( retValue == null ) { // this is highly irregular throw new ComponentConfigurationException( "Configuration converter lookup failed for type: " + type ); } return retValue; } private ConfigurationConverter findConverterForType( List converters, Class type ) { for ( ConfigurationConverter converter : converters ) { if ( converter.canConvert( type ) ) { converterMap.put( type, converter ); return converter; } } return null; } private void registerDefaultBasicConverters() { registerDefaultConverter( new BooleanConverter() ); registerDefaultConverter( new ByteConverter() ); registerDefaultConverter( new CharConverter() ); registerDefaultConverter( new DoubleConverter() ); registerDefaultConverter( new FloatConverter() ); registerDefaultConverter( new IntConverter() ); registerDefaultConverter( new LongConverter() ); registerDefaultConverter( new ShortConverter() ); registerDefaultConverter( new StringBufferConverter() ); registerDefaultConverter( new StringConverter() ); registerDefaultConverter( new DateConverter() ); registerDefaultConverter( new FileConverter() ); registerDefaultConverter( new UrlConverter() ); registerDefaultConverter( new UriConverter() ); } private void registerDefaultCompositeConverters() { registerDefaultConverter( new MapConverter() ); registerDefaultConverter( new ArrayConverter() ); registerDefaultConverter( new CollectionConverter() ); registerDefaultConverter( new PropertiesConverter() ); registerDefaultConverter( new PlexusConfigurationConverter() ); // this converter should be always registred as the last one registerDefaultConverter( new ObjectWithFieldsConverter() ); } } ././@LongLink0000000000000000000000000000020600000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/converters/special/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000755000175000017500000000000011225200003033577 5ustar twernertwerner././@LongLink0000000000000000000000000000023600000000000011566 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/converters/special/ClassRealmConverter.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000512210601240013033603 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator.converters.special; import org.codehaus.classworlds.ClassRealmAdapter; import org.codehaus.plexus.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.configurator.ComponentConfigurationException; import org.codehaus.plexus.component.configurator.ConfigurationListener; import org.codehaus.plexus.component.configurator.converters.AbstractConfigurationConverter; import org.codehaus.plexus.component.configurator.converters.ConfigurationConverter; import org.codehaus.plexus.component.configurator.converters.lookup.ConverterLookup; import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator; import org.codehaus.plexus.configuration.PlexusConfiguration; /** * ConfigurationConverter to set up ClassRealm component fields. * * @author Kenney Westerhof */ public class ClassRealmConverter extends AbstractConfigurationConverter { public static final String ROLE = ConfigurationConverter.class.getName(); private ClassRealm classRealm; /** * Constructs this ClassRealmConverter with the given ClassRealm. * If there's a way to automatically configure this component * using the current classrealm, this method can go away. * * @param classRealm */ public ClassRealmConverter( ClassRealm classRealm ) { setClassRealm( classRealm ); } public void setClassRealm( ClassRealm classRealm ) { this.classRealm = classRealm; } public boolean canConvert( Class type ) { // backwards compatibility for old ClassWorld fields return org.codehaus.classworlds.ClassRealm.class.isAssignableFrom( type ) || ClassRealm.class.isAssignableFrom( type ); } public Object fromConfiguration( ConverterLookup converterLookup, PlexusConfiguration configuration, Class type, Class baseType, ClassLoader classLoader, ExpressionEvaluator expressionEvaluator, ConfigurationListener listener ) throws ComponentConfigurationException { Object retValue = fromExpression( configuration, expressionEvaluator, type ); if ( retValue == null ) { retValue = classRealm; } // backwards compatibility for old ClassWorld fields if ( retValue instanceof ClassRealm && org.codehaus.classworlds.ClassRealm.class.isAssignableFrom( type ) ) { retValue = ClassRealmAdapter.getInstance( (ClassRealm) retValue ); } return retValue; } } ././@LongLink0000000000000000000000000000023100000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/converters/ConfigurationConverter.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000657410575515633033646 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator.converters; /* * The MIT License * * Copyright (c) 2004, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ import org.codehaus.plexus.component.configurator.ComponentConfigurationException; import org.codehaus.plexus.component.configurator.ConfigurationListener; import org.codehaus.plexus.component.configurator.converters.lookup.ConverterLookup; import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator; import org.codehaus.plexus.configuration.PlexusConfiguration; public interface ConfigurationConverter { boolean canConvert( Class type ); /** * @param converterLookup Repository of available converters * @param configuration * @param type the type of object to read * @param baseType the type of object the the source is * @param classLoader ClassLoader which should be used for loading classes * @param expressionEvaluator the expression evaluator to use for expressions * @return the object * @throws ComponentConfigurationException * @todo a better way, instead of baseType, would be to pass in a factory for new classes that could be based from the given package */ Object fromConfiguration( ConverterLookup converterLookup, PlexusConfiguration configuration, Class type, Class baseType, ClassLoader classLoader, ExpressionEvaluator expressionEvaluator ) throws ComponentConfigurationException; /** * @param converterLookup Repository of available converters * @param configuration * @param type the type of object to read * @param baseType the type of object the the source is * @param classLoader ClassLoader which should be used for loading classes * @param expressionEvaluator the expression evaluator to use for expressions * @return the object * @throws ComponentConfigurationException * @todo a better way, instead of baseType, would be to pass in a factory for new classes that could be based from the given package */ Object fromConfiguration( ConverterLookup converterLookup, PlexusConfiguration configuration, Class type, Class baseType, ClassLoader classLoader, ExpressionEvaluator expressionEvaluator, ConfigurationListener listener ) throws ComponentConfigurationException; } ././@LongLink0000000000000000000000000000021000000000000011556 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/converters/composite/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000755000175000017500000000000011225200003033577 5ustar twernertwerner././@LongLink0000000000000000000000000000023300000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/converters/composite/ArrayConverter.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000001334311130210325033610 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator.converters.composite; /* * The MIT License * * Copyright (c) 2004, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ import org.codehaus.plexus.component.configurator.ComponentConfigurationException; import org.codehaus.plexus.component.configurator.ConfigurationListener; import org.codehaus.plexus.component.configurator.converters.AbstractConfigurationConverter; import org.codehaus.plexus.component.configurator.converters.ConfigurationConverter; import org.codehaus.plexus.component.configurator.converters.lookup.ConverterLookup; import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator; import org.codehaus.plexus.configuration.PlexusConfiguration; import org.codehaus.plexus.util.StringUtils; import java.lang.reflect.Array; import java.util.ArrayList; import java.util.List; /** * @author Kenney Westerhof * @version $Id: ArrayConverter.java 8005 2009-01-04 19:41:09Z bentmann $ */ public class ArrayConverter extends AbstractConfigurationConverter { public boolean canConvert( Class type ) { return type.isArray(); } public Object fromConfiguration( ConverterLookup converterLookup, PlexusConfiguration configuration, Class type, Class baseType, ClassLoader classLoader, ExpressionEvaluator expressionEvaluator, ConfigurationListener listener ) throws ComponentConfigurationException { Object retValue = fromExpression( configuration, expressionEvaluator, type ); if ( retValue != null ) { return retValue; } List values = new ArrayList(); for ( int i = 0; i < configuration.getChildCount(); i++ ) { PlexusConfiguration childConfiguration = configuration.getChild( i ); String configEntry = childConfiguration.getName(); String name = fromXML( configEntry ); Class childType = getClassForImplementationHint( null, childConfiguration, classLoader ); // check if the name is a fully qualified classname if ( childType == null && name.indexOf( '.' ) > 0 ) { try { childType = classLoader.loadClass( name ); } catch ( ClassNotFoundException e ) { // doesn't exist - continue processing } } if ( childType == null ) { // try to find the class in the package of the baseType // (which is the component being configured) String baseTypeName = baseType.getName(); int lastDot = baseTypeName.lastIndexOf( '.' ); String className; if ( lastDot == -1 ) { className = name; } else { String basePackage = baseTypeName.substring( 0, lastDot ); className = basePackage + "." + StringUtils.capitalizeFirstLetter( name ); } try { childType = classLoader.loadClass( className ); } catch ( ClassNotFoundException e ) { // doesn't exist, continue processing } } // finally just try the component type of the array if ( childType == null ) { childType = type.getComponentType(); } ConfigurationConverter converter = converterLookup.lookupConverterForType( childType ); Object object = converter.fromConfiguration( converterLookup, childConfiguration, childType, baseType, classLoader, expressionEvaluator, listener ); values.add( object ); } try { return values.toArray( (Object[]) Array.newInstance( type.getComponentType(), 0 ) ); } catch ( ArrayStoreException e ) { throw new ComponentConfigurationException( "Cannot assign configuration values to array of type " + type.getComponentType().getName() + ": " + values ); } } } ././@LongLink0000000000000000000000000000024600000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/converters/composite/ObjectWithFieldsConverter.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000001327610707243234033633 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator.converters.composite; /* * The MIT License * * Copyright (c) 2004, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ import org.codehaus.plexus.component.configurator.ComponentConfigurationException; import org.codehaus.plexus.component.configurator.ConfigurationListener; import org.codehaus.plexus.component.configurator.converters.AbstractConfigurationConverter; import org.codehaus.plexus.component.configurator.converters.ComponentValueSetter; import org.codehaus.plexus.component.configurator.converters.lookup.ConverterLookup; import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator; import org.codehaus.plexus.configuration.PlexusConfiguration; import java.util.Collection; import java.util.Dictionary; import java.util.Map; /** * @author Michal Maczka * @version $Id: ObjectWithFieldsConverter.java 6990 2007-10-23 00:55:56Z jvanzyl $ */ public class ObjectWithFieldsConverter extends AbstractConfigurationConverter { public boolean canConvert( Class type ) { boolean retValue = true; if ( Dictionary.class.isAssignableFrom( type ) ) { retValue = false; } else if ( Map.class.isAssignableFrom( type ) ) { retValue = false; } else if ( Collection.class.isAssignableFrom( type ) ) { retValue = false; } return retValue; } public Object fromConfiguration( ConverterLookup converterLookup, PlexusConfiguration configuration, Class type, Class baseType, ClassLoader classLoader, ExpressionEvaluator expressionEvaluator, ConfigurationListener listener ) throws ComponentConfigurationException { Object retValue = fromExpression( configuration, expressionEvaluator, type ); if ( retValue == null ) { try { // it is a "composite" - we compose it from its children. It does not have a value of its own Class implementation = getClassForImplementationHint( type, configuration, classLoader ); retValue = instantiateObject( implementation ); processConfiguration( converterLookup, retValue, classLoader, configuration, expressionEvaluator, listener ); } catch ( ComponentConfigurationException e ) { if ( e.getFailedConfiguration() == null ) { e.setFailedConfiguration( configuration ); } throw e; } } return retValue; } public void processConfiguration( ConverterLookup converterLookup, Object object, ClassLoader classLoader, PlexusConfiguration configuration ) throws ComponentConfigurationException { processConfiguration( converterLookup, object, classLoader, configuration, null ); } public void processConfiguration( ConverterLookup converterLookup, Object object, ClassLoader classLoader, PlexusConfiguration configuration, ExpressionEvaluator expressionEvaluator ) throws ComponentConfigurationException { processConfiguration( converterLookup, object, classLoader, configuration, expressionEvaluator, null ); } public void processConfiguration( ConverterLookup converterLookup, Object object, ClassLoader classLoader, PlexusConfiguration configuration, ExpressionEvaluator expressionEvaluator, ConfigurationListener listener ) throws ComponentConfigurationException { int items = configuration.getChildCount(); for ( int i = 0; i < items; i++ ) { PlexusConfiguration childConfiguration = configuration.getChild( i ); String elementName = childConfiguration.getName(); ComponentValueSetter valueSetter = new ComponentValueSetter( fromXML( elementName ), object, converterLookup, listener ); valueSetter.configure( childConfiguration, classLoader, expressionEvaluator ); } } } ././@LongLink0000000000000000000000000000025100000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/converters/composite/PlexusConfigurationConverter.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000477010575515633033642 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator.converters.composite; /* * The MIT License * * Copyright (c) 2004, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ import org.codehaus.plexus.component.configurator.ComponentConfigurationException; import org.codehaus.plexus.component.configurator.ConfigurationListener; import org.codehaus.plexus.component.configurator.converters.AbstractConfigurationConverter; import org.codehaus.plexus.component.configurator.converters.lookup.ConverterLookup; import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator; import org.codehaus.plexus.configuration.PlexusConfiguration; /** * Converter for org.codehaus.plexus.configuration.PlexusConfiguration * * @author Michal Maczka * @version $Id: PlexusConfigurationConverter.java 6064 2007-03-13 12:39:55Z trygvis $ */ public class PlexusConfigurationConverter extends AbstractConfigurationConverter { public boolean canConvert( Class type ) { return PlexusConfiguration.class.isAssignableFrom( type ); } public Object fromConfiguration( ConverterLookup converterLookup, PlexusConfiguration configuration, Class type, Class baseType, ClassLoader classLoader, ExpressionEvaluator expressionEvaluator, ConfigurationListener listener ) throws ComponentConfigurationException { return configuration; } } ././@LongLink0000000000000000000000000000024000000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/converters/composite/CollectionConverter.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000001705511130201154033614 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator.converters.composite; /* * The MIT License * * Copyright (c) 2004, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ import org.codehaus.plexus.component.configurator.ComponentConfigurationException; import org.codehaus.plexus.component.configurator.ConfigurationListener; import org.codehaus.plexus.component.configurator.converters.AbstractConfigurationConverter; import org.codehaus.plexus.component.configurator.converters.ConfigurationConverter; import org.codehaus.plexus.component.configurator.converters.lookup.ConverterLookup; import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator; import org.codehaus.plexus.configuration.PlexusConfiguration; import org.codehaus.plexus.util.StringUtils; import java.lang.reflect.Modifier; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import java.util.SortedSet; import java.util.TreeSet; /** * @author Michal Maczka * @version $Id: CollectionConverter.java 8004 2009-01-04 18:39:40Z bentmann $ */ public class CollectionConverter extends AbstractConfigurationConverter { public boolean canConvert( Class type ) { return Collection.class.isAssignableFrom( type ) && !Map.class.isAssignableFrom( type ); } public Object fromConfiguration( ConverterLookup converterLookup, PlexusConfiguration configuration, Class type, Class baseType, ClassLoader classLoader, ExpressionEvaluator expressionEvaluator, ConfigurationListener listener ) throws ComponentConfigurationException { Object retValue = fromExpression( configuration, expressionEvaluator, type ); if ( retValue != null ) { return retValue; } Class implementation = getClassForImplementationHint( null, configuration, classLoader ); if ( implementation != null ) { retValue = instantiateObject( implementation ); } else { // we can have 2 cases here: // - provided collection class which is not abstract // like Vector, ArrayList, HashSet - so we will just instantantiate it // - we have an abtract class so we have to use default collection type int modifiers = type.getModifiers(); if ( Modifier.isAbstract( modifiers ) ) { retValue = getDefaultCollection( type ); } else { try { retValue = type.newInstance(); } catch ( IllegalAccessException e ) { String msg = "An attempt to convert configuration entry " + configuration.getName() + "' into " + type + " object failed: " + e.getMessage(); throw new ComponentConfigurationException( msg, e ); } catch ( InstantiationException e ) { String msg = "An attempt to convert configuration entry " + configuration.getName() + "' into " + type + " object failed: " + e.getMessage(); throw new ComponentConfigurationException( msg, e ); } } } // now we have collection and we have to add some objects to it for ( int i = 0; i < configuration.getChildCount(); i++ ) { PlexusConfiguration c = configuration.getChild( i ); //Object o = null; String configEntry = c.getName(); String name = fromXML( configEntry ); Class childType = getClassForImplementationHint( null, c, classLoader ); if ( childType == null && name.indexOf( '.' ) > 0 ) { try { childType = classLoader.loadClass( name ); } catch ( ClassNotFoundException e ) { // not found, continue processing } } if ( childType == null ) { // Some classloaders don't create Package objects for classes // so we have to resort to slicing up the class name String baseTypeName = baseType.getName(); int lastDot = baseTypeName.lastIndexOf( '.' ); String className; if ( lastDot == -1 ) { className = name; } else { String basePackage = baseTypeName.substring( 0, lastDot ); className = basePackage + "." + StringUtils.capitalizeFirstLetter( name ); } try { childType = classLoader.loadClass( className ); } catch ( ClassNotFoundException e ) { if ( c.getChildCount() == 0 ) { // If no children, try a String. // TODO: If we had generics we could try that instead - or could the component descriptor list an impl? childType = String.class; } else { throw new ComponentConfigurationException( "Error loading class '" + className + "'", e ); } } } ConfigurationConverter converter = converterLookup.lookupConverterForType( childType ); Object object = converter.fromConfiguration( converterLookup, c, childType, baseType, classLoader, expressionEvaluator, listener ); Collection collection = (Collection) retValue; collection.add( object ); } return retValue; } protected Collection getDefaultCollection( Class collectionType ) { Collection retValue = null; if ( List.class.isAssignableFrom( collectionType ) ) { retValue = new ArrayList(); } else if ( SortedSet.class.isAssignableFrom( collectionType ) ) { retValue = new TreeSet(); } else if ( Set.class.isAssignableFrom( collectionType ) ) { retValue = new HashSet(); } return retValue; } } ././@LongLink0000000000000000000000000000023100000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/converters/composite/MapConverter.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000647011000737074033626 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator.converters.composite; /* * The MIT License * * Copyright (c) 2004, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ import org.codehaus.plexus.component.configurator.ComponentConfigurationException; import org.codehaus.plexus.component.configurator.ConfigurationListener; import org.codehaus.plexus.component.configurator.converters.AbstractConfigurationConverter; import org.codehaus.plexus.component.configurator.converters.lookup.ConverterLookup; import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator; import org.codehaus.plexus.configuration.PlexusConfiguration; import java.util.Map; import java.util.Properties; import java.util.TreeMap; /** * Converter for java.util.Properties. * * @author Michal Maczka * @version $Id: MapConverter.java 7285 2008-04-14 20:27:40Z jdcasey $ */ public class MapConverter extends AbstractConfigurationConverter { public boolean canConvert( Class type ) { return Map.class.isAssignableFrom( type ) && !Properties.class.isAssignableFrom( type ); } public Object fromConfiguration( ConverterLookup converterLookup, PlexusConfiguration configuration, Class type, Class baseType, ClassLoader classLoader, ExpressionEvaluator expressionEvaluator, ConfigurationListener listener ) throws ComponentConfigurationException { Object retValue; String expression = configuration.getValue( null ); if ( expression == null ) { expression = configuration.getAttribute( "default-value", null ); } if ( expression == null ) { Map map = new TreeMap(); PlexusConfiguration[] children = configuration.getChildren(); for ( int i = 0; i < children.length; i++ ) { PlexusConfiguration child = children[i]; String name = child.getName(); map.put( name, fromExpression( child, expressionEvaluator ) ); } retValue = map; } else { retValue = fromExpression( configuration, expressionEvaluator ); } return retValue; } } ././@LongLink0000000000000000000000000000024000000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/converters/composite/PropertiesConverter.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000734010575515633033636 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator.converters.composite; /* * The MIT License * * Copyright (c) 2004, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ import org.codehaus.plexus.component.configurator.ComponentConfigurationException; import org.codehaus.plexus.component.configurator.ConfigurationListener; import org.codehaus.plexus.component.configurator.converters.AbstractConfigurationConverter; import org.codehaus.plexus.component.configurator.converters.lookup.ConverterLookup; import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator; import org.codehaus.plexus.configuration.PlexusConfiguration; import java.util.Properties; /** * Converter for java.util.Properties. * * @author Michal Maczka * @version $Id: PropertiesConverter.java 6064 2007-03-13 12:39:55Z trygvis $ */ public class PropertiesConverter extends AbstractConfigurationConverter { public boolean canConvert( Class type ) { return Properties.class.isAssignableFrom( type ); } public Object fromConfiguration( ConverterLookup converterLookup, PlexusConfiguration configuration, Class type, Class baseType, ClassLoader classLoader, ExpressionEvaluator expressionEvaluator, ConfigurationListener listener ) throws ComponentConfigurationException { Object retValueInterpolated = fromExpression( configuration, expressionEvaluator, type ); if ( retValueInterpolated != null ) { return retValueInterpolated; } String element = configuration.getName(); Properties retValue = new Properties(); PlexusConfiguration[] children = configuration.getChildren( "property" ); if ( children != null && children.length > 0 ) { for ( int i = 0; i < children.length; i++ ) { PlexusConfiguration child = children[i]; addEntry( retValue, element, child ); } } return retValue; } private void addEntry( Properties properties, String element, PlexusConfiguration property ) throws ComponentConfigurationException { String name; name = property.getChild( "name" ).getValue( null ); if ( name == null ) { String msg = "Converter: java.util.Properties. Trying to convert the configuration element: '" + element + "', missing child element 'name'."; throw new ComponentConfigurationException( msg ); } String value = property.getChild( "value" ).getValue( "" ); properties.put( name, value ); } } ././@LongLink0000000000000000000000000000022700000000000011566 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/converters/ComponentValueSetter.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000002010311114274131033607 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator.converters; /* * Copyright 2005-2007 Codehaus Foundation. * * Licensed 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.component.configurator.ComponentConfigurationException; import org.codehaus.plexus.component.configurator.ConfigurationListener; import org.codehaus.plexus.component.configurator.converters.lookup.ConverterLookup; import org.codehaus.plexus.component.configurator.converters.lookup.DefaultConverterLookup; import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator; import org.codehaus.plexus.configuration.PlexusConfiguration; import org.codehaus.plexus.util.ReflectionUtils; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; /** @author Kenney Westerhof */ public class ComponentValueSetter { private Object object; private String fieldName; private ConverterLookup lookup; private Method setter; private Class setterParamType; private ConfigurationConverter setterTypeConverter; private Field field; private Class fieldType; private ConfigurationConverter fieldTypeConverter; private ConfigurationListener listener; public ComponentValueSetter( String fieldName, Object object, ConverterLookup lookup ) throws ComponentConfigurationException { this( fieldName, object, lookup, null ); } public ComponentValueSetter( String fieldName, Object object, ConverterLookup lookup, ConfigurationListener listener ) throws ComponentConfigurationException { this.fieldName = fieldName; this.object = object; this.lookup = lookup; this.listener = listener; if ( object == null ) { throw new ComponentConfigurationException( "Component is null" ); } initSetter(); initField(); if ( setter == null && field == null ) { throw new ComponentConfigurationException( "Cannot find setter nor field in " + object.getClass().getName() + " for '" + fieldName + "'" ); } if ( setterTypeConverter == null && fieldTypeConverter == null ) { throw new ComponentConfigurationException( "Cannot find converter for " + setterParamType.getName() + ( fieldType != null && !fieldType.equals( setterParamType ) ? " or " + fieldType.getName() : "" ) ); } } private void initSetter() { setter = ReflectionUtils.getSetter( fieldName, object.getClass() ); if ( setter == null ) { return; } setterParamType = setter.getParameterTypes()[0]; try { setterTypeConverter = lookup.lookupConverterForType( setterParamType ); } catch ( ComponentConfigurationException e ) { // ignore, handle later } } private void initField() { field = ReflectionUtils.getFieldByNameIncludingSuperclasses( fieldName, object.getClass() ); if ( field == null ) { return; } fieldType = field.getType(); try { fieldTypeConverter = lookup.lookupConverterForType( fieldType ); } catch ( ComponentConfigurationException e ) { // ignore, handle later } } private void setValueUsingField( Object value ) throws ComponentConfigurationException { try { boolean wasAccessible = field.isAccessible(); if ( !wasAccessible ) { field.setAccessible( true ); } if ( listener != null ) { listener.notifyFieldChangeUsingReflection( fieldName, value, object ); } field.set( object, value ); if ( !wasAccessible ) { field.setAccessible( false ); } } catch ( IllegalAccessException e ) { throw new ComponentConfigurationException( "Cannot access field: " + field, e ); } catch ( IllegalArgumentException e ) { throw new ComponentConfigurationException( "Cannot assign value '" + value + "' (type: " + value.getClass() + ") to " + field, e ); } } private void setValueUsingSetter( Object value ) throws ComponentConfigurationException { if ( setterParamType == null || setter == null ) { throw new ComponentConfigurationException( "No setter found" ); } String exceptionInfo = object.getClass().getName() + "." + setter.getName() + "( " + setterParamType.getClass().getName() + " )"; if ( listener != null ) { listener.notifyFieldChangeUsingSetter( fieldName, value, object ); } try { setter.invoke( object, new Object[]{value} ); } catch ( IllegalAccessException e ) { throw new ComponentConfigurationException( "Cannot access method: " + exceptionInfo, e ); } catch ( IllegalArgumentException e ) { throw new ComponentConfigurationException( "Invalid parameter supplied while setting '" + value + "' to " + exceptionInfo, e ); } catch ( InvocationTargetException e ) { throw new ComponentConfigurationException( "Setter " + exceptionInfo + " threw exception when called with parameter '" + value + "': " + e.getTargetException().getMessage(), e ); } } public void configure( PlexusConfiguration config, ClassLoader classLoader, ExpressionEvaluator evaluator ) throws ComponentConfigurationException { Object value = null; // try setter converter + method first if ( setterTypeConverter != null ) { try { value = setterTypeConverter.fromConfiguration( lookup, config, setterParamType, object.getClass(), classLoader, evaluator, listener ); if ( value != null ) { setValueUsingSetter( value ); return; } } catch ( ComponentConfigurationException e ) { if ( fieldTypeConverter == null || fieldTypeConverter.getClass().equals( setterTypeConverter.getClass() ) ) { throw e; } } } // try setting field using value found with method // converter, if present. ComponentConfigurationException savedEx = null; if ( value != null ) { try { setValueUsingField( value ); return; } catch ( ComponentConfigurationException e ) { savedEx = e; } } // either no value or setting went wrong. Try // new converter. value = fieldTypeConverter.fromConfiguration( lookup, config, fieldType, object.getClass(), classLoader, evaluator, listener ); if ( value != null ) { setValueUsingField( value ); } // FIXME: need this? else if ( savedEx != null ) { throw savedEx; } } } ././@LongLink0000000000000000000000000000024100000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/converters/AbstractConfigurationConverter.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000002027011114274131033614 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator.converters; /* * The MIT License * * Copyright (c) 2004, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ import org.codehaus.plexus.component.configurator.ComponentConfigurationException; import org.codehaus.plexus.component.configurator.converters.lookup.ConverterLookup; import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException; import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator; import org.codehaus.plexus.configuration.PlexusConfiguration; import org.codehaus.plexus.util.StringUtils; /** * @author Michal Maczka * @version $Id: AbstractConfigurationConverter.java 7890 2008-11-29 17:14:01Z jvanzyl $ */ public abstract class AbstractConfigurationConverter implements ConfigurationConverter { private static final String IMPLEMENTATION = "implementation"; /** * We will check if user has provided a hint which class should be used for given field. * So we will check if something like is present in configuraion. * If 'implementation' hint was provided we will try to load correspoding class * If we are unable to do so error will be reported */ protected Class getClassForImplementationHint( Class type, PlexusConfiguration configuration, ClassLoader classLoader ) throws ComponentConfigurationException { Class retValue = type; String implementation = configuration.getAttribute( IMPLEMENTATION, null ); if ( implementation != null ) { try { retValue = classLoader.loadClass( implementation ); } catch ( ClassNotFoundException e ) { String msg = "ClassNotFoundException: Class name which was explicitly given in configuration using" + " 'implementation' attribute: '" + implementation + "' cannot be loaded"; throw new ComponentConfigurationException( msg, e ); } catch ( UnsupportedClassVersionError e ) { String msg = "UnsupportedClassVersionError: Class name which was explicitly given in configuration" + " using 'implementation' attribute: '" + implementation + "' cannot be loaded"; throw new ComponentConfigurationException( msg, e ); } catch ( LinkageError e ) { String msg = "LinkageError: Class name which was explicitly given in configuration using" + " 'implementation' attribute: '" + implementation + "' cannot be loaded"; throw new ComponentConfigurationException( msg, e ); } } return retValue; } protected Class loadClass( String classname, ClassLoader classLoader ) throws ComponentConfigurationException { Class retValue; try { retValue = classLoader.loadClass( classname ); } catch ( ClassNotFoundException e ) { throw new ComponentConfigurationException( "Error loading class '" + classname + "'", e ); } return retValue; } protected Object instantiateObject( String classname, ClassLoader classLoader ) throws ComponentConfigurationException { Class clazz = loadClass( classname, classLoader ); return instantiateObject( clazz ); } protected Object instantiateObject( Class clazz ) throws ComponentConfigurationException { Object retValue; try { retValue = clazz.newInstance(); return retValue; } catch ( IllegalAccessException e ) { throw new ComponentConfigurationException( "Class '" + clazz.getName() + "' cannot be instantiated", e ); } catch ( InstantiationException e ) { throw new ComponentConfigurationException( "Class '" + clazz.getName() + "' cannot be instantiated", e ); } } // first-name --> firstName protected String fromXML( String elementName ) { return StringUtils.lowercaseFirstLetter( StringUtils.removeAndHump( elementName, "-" ) ); } // firstName --> first-name protected String toXML( String fieldName ) { return StringUtils.addAndDeHump( fieldName ); } protected Object fromExpression( PlexusConfiguration configuration, ExpressionEvaluator expressionEvaluator, Class type ) throws ComponentConfigurationException { Object v = fromExpression( configuration, expressionEvaluator ); if ( v != null ) { if ( !type.isAssignableFrom( v.getClass() ) ) { String msg = "Cannot assign configuration entry '" + configuration.getName() + "' to '" + type + "' from '" + configuration.getValue( null ) + "', which is of type " + v.getClass(); throw new ComponentConfigurationException( configuration, msg ); } } return v; } protected Object fromExpression( PlexusConfiguration configuration, ExpressionEvaluator expressionEvaluator ) throws ComponentConfigurationException { Object v = null; String value = configuration.getValue( null ); if ( value != null && value.length() > 0 ) { // Object is provided by an expression // This seems a bit ugly... canConvert really should return false in this instance, but it doesn't have the // configuration to know better try { v = expressionEvaluator.evaluate( value ); } catch ( ExpressionEvaluationException e ) { String msg = "Error evaluating the expression '" + value + "' for configuration value '" + configuration.getName() + "'"; throw new ComponentConfigurationException( configuration, msg, e ); } } if ( v == null ) { value = configuration.getAttribute( "default-value", null ); if ( value != null && value.length() > 0 ) { try { v = expressionEvaluator.evaluate( value ); } catch ( ExpressionEvaluationException e ) { String msg = "Error evaluating the expression '" + value + "' for configuration value '" + configuration.getName() + "'"; throw new ComponentConfigurationException( configuration, msg, e ); } } } return v; } public Object fromConfiguration( ConverterLookup converterLookup, PlexusConfiguration configuration, Class type, Class baseType, ClassLoader classLoader, ExpressionEvaluator expressionEvaluator ) throws ComponentConfigurationException { return fromConfiguration( converterLookup, configuration, type, baseType, classLoader, expressionEvaluator, null ); } } ././@LongLink0000000000000000000000000000017600000000000011571 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/expression/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000755000175000017500000000000011225200003033577 5ustar twernertwerner././@LongLink0000000000000000000000000000023500000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/expression/DefaultExpressionEvaluator.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000236710531217373033632 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator.expression; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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; /** * Evaluate an expression. * * @author Brett Porter * @version $Id: DefaultExpressionEvaluator.java 4779 2006-11-23 04:09:31Z jvanzyl $ */ public class DefaultExpressionEvaluator implements ExpressionEvaluator { /** * Evaluate an expression. * * @param expression the expression * @return the value of the expression */ public Object evaluate( String expression ) { return expression; } public File alignToBaseDirectory( File file ) { return file; } } ././@LongLink0000000000000000000000000000022600000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/expression/ExpressionEvaluator.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000264010531217373033624 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator.expression; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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; /** * Evaluate an expression. * * @author Brett Porter * @version $Id: ExpressionEvaluator.java 4779 2006-11-23 04:09:31Z jvanzyl $ */ public interface ExpressionEvaluator { String ROLE = ExpressionEvaluator.class.getName(); /** * Evaluate an expression. * * @param expression the expression * @return the value of the expression */ Object evaluate( String expression ) throws ExpressionEvaluationException; /** * Align a given path to the base directory that can be evaluated by this expression evaluator, if known. * * @param file the file * @return the aligned file */ File alignToBaseDirectory( File file ); } ././@LongLink0000000000000000000000000000024000000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/expression/ExpressionEvaluationException.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000224710531217373033627 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator.expression; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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. */ /** * Exception that occurs during the evaluation of an expression. * * @author Brett Porter * @version $Id: ExpressionEvaluationException.java 4779 2006-11-23 04:09:31Z jvanzyl $ */ public class ExpressionEvaluationException extends Exception { public ExpressionEvaluationException( String message ) { super( message ); } public ExpressionEvaluationException( String message, Throwable cause ) { super( message, cause ); } } ././@LongLink0000000000000000000000000000021500000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/configurator/ComponentConfigurator.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000435710722311152033623 0ustar twernertwernerpackage org.codehaus.plexus.component.configurator; /* * The MIT License * * Copyright (c) 2004, The Codehaus * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ import org.codehaus.plexus.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator; import org.codehaus.plexus.configuration.PlexusConfiguration; /** * @author Jason van Zyl * @version $Id: ComponentConfigurator.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public interface ComponentConfigurator { String ROLE = ComponentConfigurator.class.getName(); void configureComponent( Object component, PlexusConfiguration configuration, ClassRealm containerRealm ) throws ComponentConfigurationException; void configureComponent( Object component, PlexusConfiguration configuration, ExpressionEvaluator expressionEvaluator, ClassRealm containerRealm ) throws ComponentConfigurationException; void configureComponent( Object component, PlexusConfiguration configuration, ExpressionEvaluator expressionEvaluator, ClassRealm containerRealm, ConfigurationListener listener ) throws ComponentConfigurationException; } ././@LongLink0000000000000000000000000000016200000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/collections/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000755000175000017500000000000011225200004033600 5ustar twernertwerner././@LongLink0000000000000000000000000000020300000000000011560 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/collections/ComponentMap.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000001365211107373274033634 0ustar twernertwernerpackage org.codehaus.plexus.component.collections; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.MutablePlexusContainer; import org.codehaus.plexus.component.repository.ComponentDescriptor; import org.codehaus.plexus.component.repository.exception.ComponentLifecycleException; import java.util.Collection; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Set; /** * @author Jason van Zyl FIXME: [jdcasey] We need to review the efficiency (in speed and memory) of this collection... */ public class ComponentMap extends AbstractComponentCollection implements Map { private Map components; private Map customAdditions = new LinkedHashMap(); public ComponentMap( MutablePlexusContainer container, Class type, String role, List roleHints, String hostComponent ) { super( container, type, role, roleHints, hostComponent ); } public int size() { return getComponentDescriptorMap().size(); } public boolean isEmpty() { return getComponentDescriptorMap().isEmpty(); } public boolean containsKey( Object key ) { Map> descriptorMap = getComponentDescriptorMap(); return descriptorMap.containsKey( key ); } public boolean containsValue( Object value ) { return getMap().containsValue( value ); } public T get( Object k ) { Map> descriptorMap = getComponentDescriptorMap(); if ( k instanceof String ) { String key = (String) k; if ( descriptorMap.containsKey( key ) ) { return lookup( role, key ); } } return null; } public T put( String key, T value ) { logger.warn( "Custom " + role + " implementations should NOT be added directly to this Map. Instead, add them as Plexus components." ); T prev = customAdditions.put( key, value ); if ( prev == null ) { prev = getComponentMap().get( key ); } return prev; } public void putAll( Map map ) { logger.warn( "Custom " + role + " implementations should NOT be added directly to this Map. Instead, add them as Plexus components." ); customAdditions.putAll( map ); } public Set keySet() { return getMap().keySet(); } public Collection values() { return getMap().values(); } public Set> entrySet() { return getMap().entrySet(); } public boolean equals( Object o ) { if ( this == o ) { return true; } if ( !( o instanceof Map ) ) { return false; } Map object = (Map) o; return getMap().equals( object ); } public int hashCode() { return getMap().hashCode(); } public T remove( Object k ) { logger.warn( "Items in this Map should NOT be removed directly. If the matching entry is a component, it will NOT be removed." ); if ( k instanceof String ) { String key = (String) k; if ( customAdditions.containsKey( key ) ) { return customAdditions.remove( key ); } } return null; } private Map getMap() { Map result = getComponentMap(); if ( !customAdditions.isEmpty() ) { result.putAll( customAdditions ); } return result; } private Map getComponentMap() { if ( ( components == null ) || checkUpdate() ) { components = new LinkedHashMap(); Map> descriptorMap = getComponentDescriptorMap(); if ( roleHints != null ) { // we must follow the order given in roleHints for ( String roleHint : roleHints ) { T component = lookup( role, roleHint ); if ( component != null ) { components.put( roleHint, component ); } } } else { for ( Entry> entry : descriptorMap.entrySet() ) { String roleHint = entry.getKey(); T component = lookup( role, roleHint ); if ( component != null ) { components.put( roleHint, component ); } } } } return components; } protected void releaseAllCallback() { if ( components != null ) { try { container.releaseAll( components ); } catch ( ComponentLifecycleException e ) { logger.debug( "Error releasing components in active collection: " + e.getMessage(), e ); } components.clear(); components = null; } } } ././@LongLink0000000000000000000000000000020400000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/collections/ComponentList.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000001616711107373274033640 0ustar twernertwernerpackage org.codehaus.plexus.component.collections; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.MutablePlexusContainer; import org.codehaus.plexus.component.repository.ComponentDescriptor; import org.codehaus.plexus.component.repository.exception.ComponentLifecycleException; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.List; import java.util.ListIterator; import java.util.Map; import java.util.Map.Entry; /** * @author Jason van Zyl FIXME: [jdcasey] We need to review the efficiency (in speed and memory) of this collection... */ public class ComponentList extends AbstractComponentCollection implements List { private List components; public ComponentList( MutablePlexusContainer container, Class type, String role, List roleHints, String hostComponent ) { super( container, type, role, roleHints, hostComponent ); } public int size() { return getComponentDescriptorMap().size(); } public boolean isEmpty() { return getComponentDescriptorMap().isEmpty(); } public boolean contains( Object object ) { return getList().contains( object ); } public Iterator iterator() { return getList().iterator(); } public Object[] toArray() { return getList().toArray(); } public Object[] toArray( Object[] ts ) { return getList().toArray( ts ); } public boolean add( T object ) { if ( components == null ) { components = new ArrayList(); } components.add( object ); /* * PLX-352 This is strictly to support the hack in the Ant Run plugin that tries to poke in a custom converter. * We need a better way to register converters to plexus and not hit the default converter lookup directly. * throw new UnsupportedOperationException( "You cannot modify this list. This list is a requirement of " + * hostComponent + " and managed by the container." ); */ return true; } public boolean remove( Object object ) { throw new UnsupportedOperationException( "You cannot modify this list. This list is a requirement of " + hostComponent + " and managed by the container." ); } public boolean containsAll( Collection collection ) { return getList().containsAll( collection ); } public boolean addAll( Collection collection ) { throw new UnsupportedOperationException( "You cannot modify this list. This list is a requirement of " + hostComponent + " and managed by the container." ); } public boolean addAll( int i, Collection collection ) { throw new UnsupportedOperationException( "You cannot modify this list. This list is a requirement of " + hostComponent + " and managed by the container." ); } public boolean removeAll( Collection collection ) { return getList().removeAll( collection ); } public boolean retainAll( Collection collection ) { return getList().retainAll( collection ); } public boolean equals( Object o ) { if ( this == o ) { return true; } if ( !( o instanceof List ) ) { return false; } List other = (List) o; return getList().equals( other ); } public int hashCode() { return getList().hashCode(); } public T get( int i ) { return getList().get( i ); } public T set( int i, T object ) { throw new UnsupportedOperationException( "You cannot modify this list. This list is a requirement of " + hostComponent + " and managed by the container." ); } public void add( int i, T object ) { throw new UnsupportedOperationException( "You cannot modify this list. This list is a requirement of " + hostComponent + " and managed by the container." ); } public T remove( int i ) { throw new UnsupportedOperationException( "You cannot modify this list. This list is a requirement of " + hostComponent + " and managed by the container." ); } public int indexOf( Object object ) { return getList().indexOf( object ); } public int lastIndexOf( Object object ) { return getList().lastIndexOf( object ); } public ListIterator listIterator() { return getList().listIterator(); } public ListIterator listIterator( int index ) { return getList().listIterator( index ); } public List subList( int fromIndex, int toIndex ) { return getList().subList( fromIndex, toIndex ); } private List getList() { // NOTE: If we cache the component map, we have a problem with releasing any of the // components in this map...we need to be able to release them all. if ( ( components == null ) || checkUpdate() ) { List componentList = new ArrayList(); Map> descriptorMap = getComponentDescriptorMap(); if ( roleHints != null ) { // we must follow the order in roleHints for ( String roleHint : roleHints ) { T component = lookup( role, roleHint ); if ( component != null ) { componentList.add( component ); } } } else { for ( Entry> entry : descriptorMap.entrySet() ) { String roleHint = entry.getKey(); T component = lookup( role, roleHint ); if ( component != null ) { componentList.add( component ); } } } components = componentList; } return components; } protected void releaseAllCallback() { if ( components != null ) { try { container.releaseAll( components ); } catch ( ComponentLifecycleException e ) { logger.debug( "Error releasing components in active collection: " + e.getMessage(), e ); } components.clear(); components = null; } } } ././@LongLink0000000000000000000000000000022200000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/collections/AbstractComponentCollection.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000001222111107373274033623 0ustar twernertwernerpackage org.codehaus.plexus.component.collections; import org.codehaus.plexus.MutablePlexusContainer; import org.codehaus.plexus.classworlds.realm.ClassRealm; import org.codehaus.plexus.classworlds.ClassWorld; import org.codehaus.plexus.component.repository.ComponentDescriptor; import org.codehaus.plexus.component.repository.exception.ComponentLookupException; import org.codehaus.plexus.logging.Logger; import java.util.HashMap; import java.util.List; import java.util.Map; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 */ // We need to have the collection notified when a new implementation of a given role has // been added to the container. We probably need some options so that we know when new // component descriptors have been added to the system, and an option to keep the collection // up-to-date when new implementations are added. // // NOTE: This includes component additions, but also component purges from the // container, as when a component realm is disposed // (and PlexusContainer.removeComponentRealm(..) is called). public abstract class AbstractComponentCollection { /** The reference to the PlexusContainer */ protected MutablePlexusContainer container; /** The type of the components held by this collection*/ protected final Class componentType; /** The role of the components we are holding in this Collection. */ protected String role; /** The role hint of the components we are holding in this Collection. */ protected List roleHints; /** The component that requires this collection of components */ protected String hostComponent; /** Used to log errors in the component lookup process. */ protected Logger logger; private List realms; private int lastRealmCount = -1; private Map> componentDescriptorMap; private ClassWorld world; public AbstractComponentCollection( MutablePlexusContainer container, Class componentType, String role, List roleHints, String hostComponent ) { this.container = container; this.componentType = componentType; this.role = role; this.roleHints = roleHints; this.hostComponent = hostComponent; logger = container.getLoggerManager().getLoggerForComponent( role ); world = container.getContainerRealm().getWorld(); } private boolean realmsHaveChanged() { return ( realms == null ) || ( world.getRealms().size() != lastRealmCount ); } protected Map> getComponentDescriptorMap() { checkUpdate(); return componentDescriptorMap; } protected boolean checkUpdate() { if ( componentDescriptorMap != null && !realmsHaveChanged() ) { return false; } Map> newComponentDescriptors = new HashMap>(); Map> componentMap = container.getComponentDescriptorMap( componentType, role ); if ( roleHints != null && !roleHints.isEmpty() ) { for ( String roleHint : roleHints ) { ComponentDescriptor componentDescriptor = componentMap.get( roleHint ); if ( componentDescriptor != null ) { newComponentDescriptors.put( roleHint, componentDescriptor ); } } } else { newComponentDescriptors.putAll( componentMap ); } if ( componentDescriptorMap == null || newComponentDescriptors.size() != componentDescriptorMap.size() ) { componentDescriptorMap = newComponentDescriptors; return true; } return false; } protected T lookup( String role, String roleHint ) { try { return container.lookup( componentType, role, roleHint ); } catch ( ComponentLookupException e ) { logger.debug( "Failed to lookup a member of active collection with role: " + role + " and role-hint: " + roleHint, e ); return null; } } public void clear() { releaseAllCallback(); componentDescriptorMap.clear(); componentDescriptorMap = null; realms = null; lastRealmCount = -1; } protected abstract void releaseAllCallback(); } ././@LongLink0000000000000000000000000000017700000000000011572 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/MapOrientedComponent.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000216210531217373033623 0ustar twernertwernerpackage org.codehaus.plexus.component; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.component.configurator.ComponentConfigurationException; import org.codehaus.plexus.component.repository.ComponentRequirement; import java.util.Map; public interface MapOrientedComponent { void addComponentRequirement( ComponentRequirement requirementDescriptor, Object requirementValue ) throws ComponentConfigurationException; void setComponentConfiguration( Map componentConfiguration ) throws ComponentConfigurationException; } ././@LongLink0000000000000000000000000000016100000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/repository/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000755000175000017500000000000011225200003033577 5ustar twernertwerner././@LongLink0000000000000000000000000000021200000000000011560 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/repository/ComponentRequirement.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000001071110706562153033625 0ustar twernertwernerpackage org.codehaus.plexus.component.repository; import org.codehaus.plexus.PlexusConstants; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 represents a component this is required by another component. * * @author Michal Maczka * @version $Id: ComponentRequirement.java 6965 2007-10-21 05:32:27Z jvanzyl $ */ public class ComponentRequirement { private String role; private String roleHint = PlexusConstants.PLEXUS_DEFAULT_HINT; private String fieldName; private String fieldMappingType; /** * Returns the field name that this component requirement will inject. * @return the field name that this component requirement will inject */ public String getFieldName() { return fieldName; } /** * Sets the name of the field that will be populated by the required * component. * @param fieldName the name of the field to be populated */ public void setFieldName( String fieldName ) { this.fieldName = fieldName; } /** * Returns the role of the required component. * @return the role of the required component */ public String getRole() { return role; } /** * Sets the role of the require component. * @param role the required component's role */ public void setRole( String role ) { this.role = role; } /** * Returns the role-hint of the required component. * @return the role-hint of the required component */ public String getRoleHint() { return roleHint; } /** * Sets the role-hint of the require component. * Pasing null will set the hint to the default value. * @param roleHint the required component's role-hint */ public void setRoleHint( String roleHint ) { if ( roleHint == null || roleHint.trim().equals( "" ) ) { this.roleHint = PlexusConstants.PLEXUS_DEFAULT_HINT; } else { this.roleHint = roleHint; } } /** * Returns the type of the field this component requirement will inject. * @return the type of the field this component requirement will inject */ public String getFieldMappingType() { return fieldMappingType; } /** * Sets the type of the field that will be populated by the required * component. * @param fieldType the type of the field to be populated */ public void setFieldMappingType( String fieldType ) { this.fieldMappingType = fieldType; } public String toString() { return "ComponentRequirement{" + "role='" + getRole() + "'" + ", " + "roleHint='" + getRoleHint() + "', " + "fieldName='" + getFieldName() + "'" + "}"; } /** * Returns a human-friendly key, suitable for display. * @return a human-friendly key */ public String getHumanReadableKey() { StringBuffer key = new StringBuffer(); key.append( "role: '").append( getRole() ).append( "'" ); if ( getRoleHint() != null ) { key.append( ", role-hint: '" ).append( getRoleHint() ).append( "'. " ); } if ( getFieldName() != null ) { key.append( ", field name: '" ).append( getFieldName() ).append( "' " ); } return key.toString(); } public boolean equals( Object other ) { if ( other instanceof ComponentRequirement ) { String myId = role + ":" + roleHint; ComponentRequirement req = (ComponentRequirement) other; String otherId = req.role + ":" + req.roleHint; return myId.equals( otherId ); } return false; } public int hashCode() { return ( role + ":" + roleHint ).hashCode(); } } ././@LongLink0000000000000000000000000000021100000000000011557 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/repository/ComponentRepository.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000272611110673417033630 0ustar twernertwernerpackage org.codehaus.plexus.component.repository; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.repository.exception.ComponentRepositoryException; import java.util.List; import java.util.Map; public interface ComponentRepository { void addComponentDescriptor( ComponentDescriptor componentDescriptor ) throws ComponentRepositoryException; ComponentDescriptor getComponentDescriptor( Class type, String role, String roleHint ); @Deprecated ComponentDescriptor getComponentDescriptor( String role, String roleHint, ClassRealm realm ); Map> getComponentDescriptorMap( Class type, String role ); List> getComponentDescriptorList( Class type, String role ); void removeComponentRealm( ClassRealm classRealm ); } ././@LongLink0000000000000000000000000000021400000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/repository/ComponentSetDescriptor.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000001073011107373274033626 0ustar twernertwernerpackage org.codehaus.plexus.component.repository; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.ArrayList; import java.util.List; /** * Contains a set of ComponentDescriptors and the set's dependencies. * * @author Jason van Zyl * @author Trygve Laugstøl * @version $Id: ComponentSetDescriptor.java 7828 2008-11-14 22:07:56Z dain $ */ public class ComponentSetDescriptor { // This field is not currently used in Maven, or Plexus private String id; /** The source location of this component source descriptor */ private String source; /** Flag to indicate whether this component should be loaded in a realm/classloader of its own. */ private boolean isolatedRealm; /** The component descriptors that can be found within this component set descriptor. */ private final List> components = new ArrayList>(); /** The dependencies that are required by the set of components found in this component set descriptor. */ private final List dependencies = new ArrayList(); /** * Returns a list of components in this set. * @return a list of components */ public List> getComponents() { return components; } /** * Add a new ComponentDescriptor to this set. * @param cd the ComponentDescriptor to add */ public void addComponentDescriptor( ComponentDescriptor cd ) { components.add( cd ); } /** * Sets a List of components as this set's contents. * @param components the List of components to set */ public void setComponents( List> components ) { this.components.clear(); this.components.addAll(components); } /** * Returns a List of dependencies of this set of components. * @return a List of dependencies of this set of components */ public List getDependencies() { return dependencies; } /** * Add a depenency to this set's contents. * @param cd the ComponentDependency to add */ public void addDependency( ComponentDependency cd ) { dependencies.add( cd ); } /** * Sets a List of dependencies as this set's component dependencies. * @param dependencies the List of components to set */ public void setDependencies( List dependencies ) { this.dependencies.clear(); this.dependencies.addAll(dependencies); } /** * Sets that this set of components may be in an isolated classrealm. * @param isolatedRealm true if this set of components may be in an * isolated classrealm */ public void setIsolatedRealm( boolean isolatedRealm ) { this.isolatedRealm = isolatedRealm; } /** * Returns true if this set may be in an isolated classrealm. * @return true if this set may be in an isolated classrealm */ public boolean isIsolatedRealm() { return isolatedRealm; } /** * Returns the identifier of this set. * @return the identifier of this set */ public String getId() { return id; } /** * Sets the identifier of this set. * @param id the identifier to set */ public void setId( String id ) { this.id = id; } public String toString() { StringBuffer sb = new StringBuffer(); sb.append( "Component Descriptor: " ); for ( ComponentDescriptor cd : components ) { sb.append( cd.getHumanReadableKey() ).append( "\n" ); } sb.append( "---" ); return sb.toString(); } public String getSource() { return source; } public void setSource( String source ) { this.source = source; } } ././@LongLink0000000000000000000000000000022000000000000011557 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/repository/DefaultComponentRepository.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000001714211122752366033632 0ustar twernertwernerpackage org.codehaus.plexus.component.repository; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 static org.codehaus.plexus.component.CastUtils.isAssignableFrom; import java.util.ArrayList; import java.util.HashSet; import java.util.LinkedHashMap; import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Set; import java.util.SortedMap; import java.util.TreeMap; import org.codehaus.plexus.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.composition.CompositionException; import org.codehaus.plexus.component.composition.CompositionResolver; import org.codehaus.plexus.component.composition.DefaultCompositionResolver; import org.codehaus.plexus.component.repository.exception.ComponentRepositoryException; import org.codehaus.plexus.logging.AbstractLogEnabled; import com.google.common.collect.Multimap; import com.google.common.collect.Multimaps; /** * @author Jason van Zyl */ public class DefaultComponentRepository extends AbstractLogEnabled implements ComponentRepository { private final Map>>> index = new LinkedHashMap>>>(); private final CompositionResolver compositionResolver = new DefaultCompositionResolver(); public DefaultComponentRepository() { } // ---------------------------------------------------------------------- // Accessors // ---------------------------------------------------------------------- private Multimap> getComponentDescriptors( String role ) { // verify arguments if ( role == null ) { throw new NullPointerException( "role is null" ); } // determine realms to search LinkedHashSet realms = new LinkedHashSet(); for (ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); classLoader != null; classLoader = classLoader.getParent()) { if ( classLoader instanceof ClassRealm ) { ClassRealm realm = (ClassRealm) classLoader; while (realm != null) { realms.add(realm); realm = realm.getParentRealm(); } } } if (realms.isEmpty()) { realms.addAll( index.keySet() ); } // Get all valid component descriptors Multimap> roleHintIndex = Multimaps.newLinkedHashMultimap(); for ( ClassRealm realm : realms ) { SortedMap>> roleIndex = index.get( realm ); if (roleIndex != null) { Multimap> descriptors = roleIndex.get( role ); if ( descriptors != null ) { roleHintIndex.putAll( descriptors ); } } } return Multimaps.unmodifiableMultimap( roleHintIndex ); } public ComponentDescriptor getComponentDescriptor( Class type, String role, String roleHint ) { for ( ComponentDescriptor descriptor : getComponentDescriptors( role ).get( roleHint ) ) { if ( isAssignableFrom( type, descriptor.getImplementationClass() ) ) { return (ComponentDescriptor) descriptor; } } return null; } public Map> getComponentDescriptorMap( Class type, String role ) { Map> descriptors = new TreeMap>(); for ( ComponentDescriptor descriptor : getComponentDescriptors( role ).values() ) { if ( !descriptors.containsKey( descriptor.getRoleHint() ) ) { if ( isAssignableFrom( type, descriptor.getImplementationClass() ) ) { descriptors.put( descriptor.getRoleHint(), (ComponentDescriptor) descriptor ); } } } return descriptors; } public List> getComponentDescriptorList( Class type, String role ) { List> descriptors = new ArrayList>(); for ( ComponentDescriptor descriptor : getComponentDescriptors( role ).values() ) { if ( isAssignableFrom( type, descriptor.getImplementationClass() ) ) { descriptors.add( (ComponentDescriptor) descriptor ); } } return descriptors; } @Deprecated public ComponentDescriptor getComponentDescriptor( String role, String roleHint, ClassRealm realm ) { // find all realms from our realm to the root realm Set realms = new HashSet(); for ( ClassRealm r = realm; r != null; r = r.getParentRealm() ) { realms.add( r ); } // get the component descriptors by roleHint for ( ComponentDescriptor componentDescriptor : getComponentDescriptors( role ).get( roleHint ) ) { // return the first descriptor from our target realms if ( realms.contains( componentDescriptor.getRealm() ) ) { return componentDescriptor; } } return null; } public void removeComponentRealm( ClassRealm classRealm ) { index.remove( classRealm ); } // ---------------------------------------------------------------------- // Lifecylce Management // ---------------------------------------------------------------------- // ---------------------------------------------------------------------- // Component Descriptor processing. // ---------------------------------------------------------------------- public void addComponentDescriptor( ComponentDescriptor componentDescriptor ) throws ComponentRepositoryException { ClassRealm classRealm = componentDescriptor.getRealm(); SortedMap>> roleIndex = index.get( classRealm ); if (roleIndex == null) { roleIndex = new TreeMap>>(); index.put(classRealm, roleIndex); } String role = componentDescriptor.getRole(); Multimap> roleHintIndex = roleIndex.get( role ); if ( roleHintIndex == null ) { roleHintIndex = Multimaps.newLinkedHashMultimap(); roleIndex.put( role, roleHintIndex ); } roleHintIndex.put( componentDescriptor.getRoleHint(), componentDescriptor ); try { compositionResolver.addComponentDescriptor( componentDescriptor ); } catch ( CompositionException e ) { throw new ComponentRepositoryException( e.getMessage(), e ); } } } ././@LongLink0000000000000000000000000000021600000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/repository/ComponentRequirementList.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000152611107373274033631 0ustar twernertwernerpackage org.codehaus.plexus.component.repository; import java.util.List; /** * Created by IntelliJ IDEA. * * @author Andrew Williams * @version $Id: ComponentRequirementList.java 7828 2008-11-14 22:07:56Z dain $ * @since 1.0 */ public class ComponentRequirementList extends ComponentRequirement { private List roleHints; public List getRoleHints() { return roleHints; } public void setRoleHints(List roleHints) { this.roleHints = roleHints; } public String getRoleHint() { StringBuffer buffer = new StringBuffer(); for ( String hint : roleHints ) { if (buffer.length() > 0) { buffer.append(","); } buffer.append(hint); } return buffer.toString(); } } ././@LongLink0000000000000000000000000000021100000000000011557 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/repository/ComponentDescriptor.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000004401311174733555033635 0ustar twernertwernerpackage org.codehaus.plexus.component.repository; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.PlexusConstants; import org.codehaus.plexus.classworlds.realm.ClassRealm; import org.codehaus.plexus.configuration.PlexusConfiguration; import java.util.ArrayList; import java.util.List; import java.util.Arrays; import java.util.Collections; /** * Component instantiation description. * * @author Jason van Zyl * @author bob mcwhirter * @author Michal Maczka * @version $Id: ComponentDescriptor.java 8155 2009-04-26 01:22:53Z jvanzyl $ */ public class ComponentDescriptor { private String alias = null; private String role = null; private Class roleClass; private String roleHint = PlexusConstants.PLEXUS_DEFAULT_HINT; private String implementation; private Class implementationClass; private String version; private String componentType; private PlexusConfiguration configuration; private String instantiationStrategy; private String lifecycleHandler; private String componentProfile; private final List requirements = new ArrayList(); private String componentFactory; private String componentComposer; private String componentConfigurator; private String description; private ClassRealm realm; // ---------------------------------------------------------------------- // These two fields allow for the specification of an isolated class realm // and dependencies that might be specified in a component configuration // setup by a user i.e. this is here to allow isolation for components // that are not picked up by the discovery mechanism. // ---------------------------------------------------------------------- private boolean isolatedRealm; // ---------------------------------------------------------------------- private ComponentSetDescriptor componentSetDescriptor; private String source; // ---------------------------------------------------------------------- // Instance methods // ---------------------------------------------------------------------- public ComponentDescriptor() { } public ComponentDescriptor( Class implementationClass, ClassRealm realm ) { this.implementationClass = implementationClass; this.implementation = implementationClass.getName(); this.realm = realm; } /** * The location this information came from (descriptor file URI). */ public void setSource( String source ) { this.source = source; } /** * The location this information came from (descriptor file URI). */ public String getSource() { return source; } /** * Returns a human-friendly key, suitable for display. * * @return a human-friendly key */ public String getHumanReadableKey() { StringBuffer key = new StringBuffer(); key.append( "role: '" ).append( role ).append( "'" ); key.append( ", implementation: '" ).append( implementation ).append( "'" ); if ( roleHint != null ) { key.append( ", role hint: '" ).append( roleHint ).append( "'" ); } if ( alias != null ) { key.append( ", alias: '" ).append( alias ).append( "'" ); } return key.toString(); } /** * Returns an alias for this component. An alias as an alternate name other than the normal key. * * @return an alias for this component */ public String getAlias() { return alias; } /** * Sets the alias for this component. * * @param alias alternate name to set */ public void setAlias( String alias ) { this.alias = alias; } /** * Returns the role of this component. * * @return the role of this component */ public String getRole() { return role; } public Class getRoleClass() { attemptRoleLoad(); if (roleClass == null) { return (Class) Object.class; } return roleClass; } private void attemptRoleLoad() { if ( roleClass == null && role != null && realm != null ) { try { roleClass = realm.loadClass( role ); Thread.currentThread(); } catch ( Throwable ignored ) { Thread.currentThread(); } } } /** * Sets the role of this component. * * @param role this component's role */ public void setRole( String role ) { this.role = role; // reload role class roleClass = null; attemptRoleLoad(); } public void setRoleClass( Class roleClass ) { this.roleClass = roleClass; if (roleClass == null) { role = null; } else { role = roleClass.getName(); } } /** * Returns the role-hint of this component. * * @return the role-hint of this component */ public String getRoleHint() { return roleHint; } /** * Sets the role-hint of this component. Pasing null will set the hint to the default value. * * @param roleHint this component's role-hint */ public void setRoleHint( String roleHint ) { if ( ( roleHint == null ) || roleHint.trim().equals( "" ) ) { this.roleHint = PlexusConstants.PLEXUS_DEFAULT_HINT; } else { this.roleHint = roleHint; } } /** * Returns the implementation of this componet. Implementation is a string denoting a FQCN in normal Java * components, or some other name or file for other component factory implementations. * * @return the implementation of this componet's role. */ public String getImplementation() { return implementation; } /** * Sets the implementation of this componet. * * @param implementation string denoting a FQCN in normal Java components, or some other name or file for other * component factory implementations */ public void setImplementation( String implementation ) { this.implementation = implementation; // reload implementation class implementationClass = null; attemptImplementationLoad(); } /** * Returns the implementation class of this componet, or null if the implementation class can not be loaded. * * @return the implementation of this componet's role. */ public Class getImplementationClass() { attemptImplementationLoad(); if (implementationClass == null) { return (Class) Object.class; } return implementationClass; } private void attemptImplementationLoad() { if ( implementationClass == null && implementation != null && realm != null ) { try { implementationClass = realm.loadClass( implementation ); Thread.currentThread(); } catch ( Throwable ignored ) { Thread.currentThread(); } } } public void setImplementationClass( Class implementationClass ) { this.implementationClass = implementationClass; if (implementationClass == null) { implementation = null; } else { implementation = implementationClass.getName(); } } /** * Returns a specific point in a components's project timeline. i.e. version 1, or 2.1.4 * * @return a specific point in a components's project timeline */ public String getVersion() { return version; } /** * Sets the point in a components's project development timeline * * @param version the components's version */ public void setVersion( String version ) { this.version = version; } /** * Returns the type of this component. * * @return the type of this component */ public String getComponentType() { return componentType; } /** * Sets this component's type. * * @param componentType the type to set */ public void setComponentType( String componentType ) { this.componentType = componentType; } /** * Returns the type of instantiation strategy for this component. * * @return the type of instantiation strategy for this component */ public String getInstantiationStrategy() { return instantiationStrategy; } /** * Returns configuration values defined for this component. * * @return configuration values defined for this component */ public PlexusConfiguration getConfiguration() { return configuration; } /** * Sets the configuration hierarchy for this component. * * @param configuration the configuration hierarchy to set */ public void setConfiguration( PlexusConfiguration configuration ) { this.configuration = configuration; } /** * Returns true if this component has a configuration. * * @return true if this component has a configuration */ public boolean hasConfiguration() { return configuration != null; } /** * Returns the lifecycle-handler for this component. * * @return the lifecycle-handler for this component */ public String getLifecycleHandler() { return lifecycleHandler; } /** * Sets the lifecycle-handler for this component. For example, "basic", "passive", "bootstrap". * * @param lifecycleHandler the lifecycle handler string to set */ public void setLifecycleHandler( String lifecycleHandler ) { this.lifecycleHandler = lifecycleHandler; } public String getComponentProfile() { return componentProfile; } public void setComponentProfile( String componentProfile ) { this.componentProfile = componentProfile; } /** * Add a project requirement to this component. * * @param requirement the requirement to add */ public void addRequirement( ComponentRequirement requirement ) { this.requirements.add( requirement ); } /** * Add a project requirement to this component. * * @param requirement the requirement to add */ public void addRequirement( ComponentRequirement... requirement ) { this.requirements.addAll( Arrays.asList( requirement )); } /** * Adds a list of requirements to this component. * * @param requirements the requirements to add */ public void addRequirements( List requirements ) { this.requirements.addAll( requirements ); } /** * Remove a project requirement from this component. * * @param requirement the requirement to remove */ public void removeRequirement( ComponentRequirement... requirement ) { this.requirements.removeAll( Arrays.asList( requirement )); } /** * Removes a list of requirements from this component. * * @param requirements the requirements to remove */ public void removeRequirements( List requirements ) { this.requirements.removeAll( requirements ); } /** * Returns all project requirements of this component. * * @return all project requirements of this component */ public List getRequirements() { return Collections.unmodifiableList( requirements ); } /** * Returns an id of the factory used to create this component. * * @return an id of the factory used to create this component */ public String getComponentFactory() { return componentFactory; } /** * Sets the id of the factory to use to create this component. For example, "jruby" will use a JRuby factory. * * @param componentFactory */ public void setComponentFactory( String componentFactory ) { this.componentFactory = componentFactory; } /** * Returns the ID of the type of composer this component will use. For example, "setter" or "field" for the * different types of dependency injection. * * @return the ID of the type of composer this component will use */ public String getComponentComposer() { return componentComposer; } /** * Sets a representation of the composer this component uses. * * @param componentComposer string representation of the composer to use */ public void setComponentComposer( String componentComposer ) { this.componentComposer = componentComposer; } /** * Return a human-readable description of this component. * * @return a human-readable description of this component */ public String getDescription() { return description; } /** * Sets a description of this component for users to read. * * @param description a human-readable description of this component */ public void setDescription( String description ) { this.description = description; } /** * Sets the instantiation-strategy for this component. For example, "container". * * @param instantiationStrategy */ public void setInstantiationStrategy( String instantiationStrategy ) { this.instantiationStrategy = instantiationStrategy; } // ---------------------------------------------------------------------- // // ---------------------------------------------------------------------- /** * Returns true if this may be in an isolated classrealm. * * @return true if this may be in an isolated classrealm */ public boolean isIsolatedRealm() { return isolatedRealm; } /** * Sets the component set descriptor of components and dependencies for this component. * * @param componentSetDescriptor the component set descriptor of components and dependencies */ public void setComponentSetDescriptor( ComponentSetDescriptor componentSetDescriptor ) { this.componentSetDescriptor = componentSetDescriptor; } /** * Returns the component set descriptor. * * @return the component set descriptor */ public ComponentSetDescriptor getComponentSetDescriptor() { return componentSetDescriptor; } /** * Sets that this component may be in an isolated classrealm. * * @param isolatedRealm true if this component may be in an isolated classrealm */ public void setIsolatedRealm( boolean isolatedRealm ) { this.isolatedRealm = isolatedRealm; } /** * Returns the type of component configurator for this project. For example "basic" for normal, or "map-oriented" * for map oriented components. * * @return the type of component configurator for this project */ public String getComponentConfigurator() { return componentConfigurator; } /** * Sets the type of component configurator for this project. * * @param componentConfigurator */ public void setComponentConfigurator( String componentConfigurator ) { this.componentConfigurator = componentConfigurator; } /** * The ClassRealm that this component lives under. * * @return ClassRealm that this component lives under */ public ClassRealm getRealm() { return realm; } /** * Set the ClassRealm that this component lives under. * * @param realm the ClassRealm that this component lives under */ public void setRealm( ClassRealm realm ) { this.realm = realm; // reload implementation class implementationClass = null; attemptImplementationLoad(); // reload role class roleClass = null; attemptRoleLoad(); } // Component identity established here! public boolean equals( Object other ) { if ( !( other instanceof ComponentDescriptor ) ) { return false; } else { ComponentDescriptor otherDescriptor = (ComponentDescriptor) other; boolean isEqual = true; String role = getRole(); String otherRole = otherDescriptor.getRole(); isEqual = isEqual && ( ( role.equals( otherRole ) ) || role.equals( otherRole ) ); String roleHint = getRoleHint(); String otherRoleHint = otherDescriptor.getRoleHint(); isEqual = isEqual && ( ( roleHint.equals( otherRoleHint ) ) || roleHint.equals( otherRoleHint ) ); return isEqual; } } public String toString() { return getClass().getName() + " [role: '" + getRole() + "', hint: '" + getRoleHint() + "', realm: " + ( realm == null ? "NULL" : "'" + realm + "'" ) + "]"; } public int hashCode() { int result = getRole().hashCode() + 1; String hint = getRoleHint(); if ( hint != null ) { result += hint.hashCode(); } return result; } } ././@LongLink0000000000000000000000000000016400000000000011566 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/repository/io/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000755000175000017500000000000011225200003033577 5ustar twernertwerner././@LongLink0000000000000000000000000000020400000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/repository/io/PlexusTools.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000002333011174733555033634 0ustar twernertwernerpackage org.codehaus.plexus.component.repository.io; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.PrintStream; import java.io.Reader; import java.io.StringReader; import java.util.LinkedList; import java.util.List; import org.codehaus.plexus.component.repository.ComponentDependency; import org.codehaus.plexus.component.repository.ComponentDescriptor; import org.codehaus.plexus.component.repository.ComponentRequirement; import org.codehaus.plexus.component.repository.ComponentRequirementList; import org.codehaus.plexus.component.repository.ComponentSetDescriptor; import org.codehaus.plexus.configuration.PlexusConfiguration; import org.codehaus.plexus.configuration.PlexusConfigurationException; import org.codehaus.plexus.configuration.io.XmlPlexusConfigurationReader; import org.codehaus.plexus.classworlds.ClassWorld; import org.codehaus.plexus.classworlds.realm.ClassRealm; import org.codehaus.plexus.classworlds.realm.NoSuchRealmException; /** * @author Jason van Zyl */ public class PlexusTools { public static PlexusConfiguration buildConfiguration( String resourceName, Reader configuration ) throws PlexusConfigurationException { try { XmlPlexusConfigurationReader reader = new XmlPlexusConfigurationReader(); PlexusConfiguration result = reader.read( configuration ); return result; } catch ( PlexusConfigurationException e ) { throw new PlexusConfigurationException( "PlexusConfigurationException building configuration from: " + resourceName, e ); } catch ( IOException e ) { throw new PlexusConfigurationException( "IO error building configuration from: " + resourceName, e ); } } public static PlexusConfiguration buildConfiguration( String configuration ) throws PlexusConfigurationException { return buildConfiguration( "", new StringReader( configuration ) ); } public static ComponentDescriptor buildComponentDescriptor( String configuration, ClassRealm realm ) throws PlexusConfigurationException { return buildComponentDescriptor( buildConfiguration( configuration ), realm ); } public static ComponentDescriptor buildComponentDescriptor( PlexusConfiguration configuration, ClassRealm realm ) throws PlexusConfigurationException { if ( realm == null ) { throw new NullPointerException( "realm is null" ); } String implementation = configuration.getChild( "implementation" ).getValue(); if (implementation == null) { throw new PlexusConfigurationException( "implementation is null" ); } ComponentDescriptor cd; try { Class implementationClass = realm.loadClass( implementation ); cd = new ComponentDescriptor(implementationClass, realm); } catch ( Throwable e ) { throw new PlexusConfigurationException("Can not load implementation class " + implementation + " from realm " + realm, e); } cd.setRole( configuration.getChild( "role" ).getValue() ); cd.setRoleHint( configuration.getChild( "role-hint" ).getValue() ); cd.setVersion( configuration.getChild( "version" ).getValue() ); cd.setComponentType( configuration.getChild( "component-type" ).getValue() ); cd.setInstantiationStrategy( configuration.getChild( "instantiation-strategy" ).getValue() ); cd.setLifecycleHandler( configuration.getChild( "lifecycle-handler" ).getValue() ); cd.setComponentProfile( configuration.getChild( "component-profile" ).getValue() ); cd.setComponentComposer( configuration.getChild( "component-composer" ).getValue() ); cd.setComponentConfigurator( configuration.getChild( "component-configurator" ).getValue() ); cd.setComponentFactory( configuration.getChild( "component-factory" ).getValue() ); cd.setDescription( configuration.getChild( "description" ).getValue() ); cd.setAlias( configuration.getChild( "alias" ).getValue() ); String s = configuration.getChild( "isolated-realm" ).getValue(); if ( s != null ) { cd.setIsolatedRealm( s.equals( "true" ) ? true : false ); } // ---------------------------------------------------------------------- // Here we want to look for directives for inlining external // configurations. we probably want to take them from files or URLs. // ---------------------------------------------------------------------- cd.setConfiguration( configuration.getChild( "configuration" ) ); // ---------------------------------------------------------------------- // Requirements // ---------------------------------------------------------------------- PlexusConfiguration[] requirements = configuration.getChild( "requirements" ).getChildren( "requirement" ); for ( int i = 0; i < requirements.length; i++ ) { PlexusConfiguration requirement = requirements[i]; ComponentRequirement cr; PlexusConfiguration[] hints = requirement.getChild( "role-hints" ).getChildren( "role-hint" ); if ( hints != null && hints.length > 0 ) { cr = new ComponentRequirementList(); List hintList = new LinkedList(); for ( PlexusConfiguration hint : hints ) { hintList.add( hint.getValue() ); } ( (ComponentRequirementList) cr ).setRoleHints( hintList ); } else { cr = new ComponentRequirement(); cr.setRoleHint( requirement.getChild( "role-hint" ).getValue() ); } cr.setRole( requirement.getChild( "role" ).getValue() ); cr.setFieldName( requirement.getChild( "field-name" ).getValue() ); cd.addRequirement( cr ); } return cd; } public static ComponentSetDescriptor buildComponentSet( PlexusConfiguration c, ClassRealm realm ) throws PlexusConfigurationException { ComponentSetDescriptor csd = new ComponentSetDescriptor(); // ---------------------------------------------------------------------- // Components // ---------------------------------------------------------------------- PlexusConfiguration[] components = c.getChild( "components" ).getChildren( "component" ); for ( int i = 0; i < components.length; i++ ) { PlexusConfiguration component = components[i]; csd.addComponentDescriptor( buildComponentDescriptor( component, realm ) ); } // ---------------------------------------------------------------------- // Dependencies // ---------------------------------------------------------------------- PlexusConfiguration[] dependencies = c.getChild( "dependencies" ).getChildren( "dependency" ); for ( int i = 0; i < dependencies.length; i++ ) { PlexusConfiguration d = dependencies[i]; ComponentDependency cd = new ComponentDependency(); cd.setArtifactId( d.getChild( "artifact-id" ).getValue() ); cd.setGroupId( d.getChild( "group-id" ).getValue() ); String type = d.getChild( "type" ).getValue(); if(type != null) { cd.setType( type ); } cd.setVersion( d.getChild( "version" ).getValue() ); csd.addDependency( cd ); } return csd; } public static void writeConfiguration( PrintStream out, PlexusConfiguration configuration ) throws PlexusConfigurationException { writeConfiguration( out, configuration, "" ); } private static void writeConfiguration( PrintStream out, PlexusConfiguration configuration, String indent ) throws PlexusConfigurationException { out.print( indent + "<" + configuration.getName() ); String[] atts = configuration.getAttributeNames(); if ( atts.length > 0 ) { for ( int i = 0; i < atts.length; i++ ) { out.print( "\n" + indent + " " + atts[i] + "='" + configuration.getAttribute( atts[i] ) + "'" ); } } PlexusConfiguration[] pc = configuration.getChildren(); if ( ( configuration.getValue() != null && configuration.getValue().trim().length() > 0 ) || pc.length > 0 ) { out.print( ">" + ( configuration.getValue() == null ? "" : configuration.getValue().trim() ) ); if ( pc.length > 0 ) { out.println(); for ( int i = 0; i < pc.length; i++ ) { writeConfiguration( out, pc[i], indent + " " ); } out.print( indent ); } out.println( "" ); } else { out.println( "/>" ); } } } ././@LongLink0000000000000000000000000000017300000000000011566 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/repository/exception/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000755000175000017500000000000011225200003033577 5ustar twernertwerner././@LongLink0000000000000000000000000000025100000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/repository/exception/ComponentDescriptorUnmarshallingException.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000316010722311152033612 0ustar twernertwernerpackage org.codehaus.plexus.component.repository.exception; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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. */ /** * Exception that is thrown when the class(es) required for a component * implementation are not available. * * @author Jason van Zyl * @version $Id: ComponentDescriptorUnmarshallingException.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public class ComponentDescriptorUnmarshallingException extends Exception { private static final long serialVersionUID = 6991583130117543536L; /** * Construct a new ComponentDescriptorUnmarshallingException instance. * @param message exception message */ public ComponentDescriptorUnmarshallingException( String message ) { super( message ); } /** * Construct a new ComponentDescriptorUnmarshallingException instance. * @param message exception message * @param cause causing exception to chain */ public ComponentDescriptorUnmarshallingException( String message, Throwable cause ) { super( message, cause ); } } ././@LongLink0000000000000000000000000000025700000000000011571 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/repository/exception/ComponentManagerImplementationNotFoundException.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000322410722311152033613 0ustar twernertwernerpackage org.codehaus.plexus.component.repository.exception; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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. */ /** * Exception that is thrown when the class(es) required for a component * implementation are not available. * * @author Jason van Zyl * @version $Id: ComponentManagerImplementationNotFoundException.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public class ComponentManagerImplementationNotFoundException extends Exception { private static final long serialVersionUID = 2365017114180373632L; /** * Construct a new ComponentManagerImplementationNotFoundException instance. * @param message exception message */ public ComponentManagerImplementationNotFoundException( String message ) { super( message ); } /** * Construct a new ComponentManagerImplementationNotFoundException instance. * @param message exception message * @param cause causing exception to chain */ public ComponentManagerImplementationNotFoundException( String message, Throwable cause ) { super( message, cause ); } } ././@LongLink0000000000000000000000000000023700000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/repository/exception/ComponentConfigurationException.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000306410722311152033615 0ustar twernertwernerpackage org.codehaus.plexus.component.repository.exception; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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. */ /** * Exception that is thrown when the class(es) required for a component * implementation are not available. * * @author Jason van Zyl * @version $Id: ComponentConfigurationException.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public class ComponentConfigurationException extends Exception { private static final long serialVersionUID = -921278352685045303L; /** * Construct a new ComponentConfigurationException instance. * @param message exception message */ public ComponentConfigurationException( String message ) { super( message ); } /** * Construct a new ComponentConfigurationException instance. * @param message exception message * @param cause causing exception to chain */ public ComponentConfigurationException( String message, Throwable cause ) { super( message, cause ); } } ././@LongLink0000000000000000000000000000025000000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/repository/exception/ComponentImplementationNotFoundException.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000315610722311152033617 0ustar twernertwernerpackage org.codehaus.plexus.component.repository.exception; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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. */ /** * Exception that is thrown when the class(es) required for a component * implementation are not available. * * @author Jason van Zyl * * @version $Id: ComponentImplementationNotFoundException.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public class ComponentImplementationNotFoundException extends Exception { private static final long serialVersionUID = -9171668987729438489L; /** * Construct a new ComponentImplementationNotFoundException instance. * @param message exception message */ public ComponentImplementationNotFoundException( String message ) { super( message ); } /** * Construct a new ComponentImplementationNotFoundException instance. * @param message exception message * @param cause causing exception to chain */ public ComponentImplementationNotFoundException( String message, Throwable cause ) { super( message, cause ); } } ././@LongLink0000000000000000000000000000023300000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/repository/exception/ComponentLifecycleException.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000303310722311152033611 0ustar twernertwernerpackage org.codehaus.plexus.component.repository.exception; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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. */ /** * Exception that is thrown when the class(es) required for a component * implementation are not available. * * @author Jason van Zyl * @version $Id: ComponentLifecycleException.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public class ComponentLifecycleException extends Exception { private static final long serialVersionUID = 146489359157036908L; /** * Construct a new ComponentLifecycleException instance. * @param message exception message */ public ComponentLifecycleException( String message ) { super( message ); } /** * Construct a new ComponentLifecycleException instance. * @param message exception message * @param cause causing exception to chain */ public ComponentLifecycleException( String message, Throwable cause ) { super( message, cause ); } } ././@LongLink0000000000000000000000000000023400000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/repository/exception/ComponentRepositoryException.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000304210722311152033611 0ustar twernertwernerpackage org.codehaus.plexus.component.repository.exception; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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. */ /** * Exception that is thrown when the class(es) required for a component * implementation are not available. * * @author Jason van Zyl * @version $Id: ComponentRepositoryException.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public class ComponentRepositoryException extends Exception { private static final long serialVersionUID = 3698017788731736736L; /** * Construct a new ComponentRepositoryException instance. * @param message exception message */ public ComponentRepositoryException( String message ) { super( message ); } /** * Construct a new ComponentRepositoryException instance. * @param message exception message * @param cause causing exception to chain */ public ComponentRepositoryException( String message, Throwable cause ) { super( message, cause ); } } ././@LongLink0000000000000000000000000000023100000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/repository/exception/ComponentProfileException.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000302110722311152033606 0ustar twernertwernerpackage org.codehaus.plexus.component.repository.exception; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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. */ /** * Exception that is thrown when the class(es) required for a component * implementation are not available. * * @author Jason van Zyl * @version $Id: ComponentProfileException.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public class ComponentProfileException extends Exception { private static final long serialVersionUID = -4099483467183306853L; /** * Construct a new ComponentProfileException instance. * @param message exception message */ public ComponentProfileException( String message ) { super( message ); } /** * Construct a new ComponentProfileException instance. * @param message exception message * @param cause causing exception to chain */ public ComponentProfileException( String message, Throwable cause ) { super( message, cause ); } } ././@LongLink0000000000000000000000000000023000000000000011560 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/repository/exception/ComponentLookupException.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000504111107373274033625 0ustar twernertwernerpackage org.codehaus.plexus.component.repository.exception; import org.codehaus.plexus.classworlds.realm.ClassRealm; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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. */ /** * The exception which is thrown by a component repository when * the requested component cannot be found. * * @author Jason van Zyl * @version $Id: ComponentLookupException.java 7828 2008-11-14 22:07:56Z dain $ */ public class ComponentLookupException extends Exception { private String LS = System.getProperty( "line.separator" ); private String role; private String roleHint; private ClassRealm realm; public ComponentLookupException( String message, String role, String roleHint ) { super( message ); this.role = role; this.roleHint = roleHint; } public ComponentLookupException( String message, String role, String roleHint, Throwable cause ) { super( message, cause ); this.role = role; this.roleHint = roleHint; } public ComponentLookupException( String message, String role, String roleHint, ClassRealm realm ) { super( message ); this.role = role; this.roleHint = roleHint; this.realm = realm; } public ComponentLookupException( String message, String role, String roleHint, ClassRealm realm, Throwable cause ) { super( message, cause ); this.role = role; this.roleHint = roleHint; this.realm = realm; } public String getMessage() { StringBuffer sb = new StringBuffer() .append( super.getMessage() ).append( LS ) .append( " role: ").append( role ).append( LS ) .append( " roleHint: ").append( roleHint ).append( LS ) .append( "classRealm: "); if ( realm != null ) { sb.append( realm.getId() ); realm.display(); } else { sb.append( "none specified" ); } return sb.toString(); } } ././@LongLink0000000000000000000000000000021100000000000011557 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/repository/ComponentDependency.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000620710722311152033617 0ustar twernertwernerpackage org.codehaus.plexus.component.repository; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 represents a project which this component depends upon to function * properly, for example, a required jar file. See Apache Maven for an * example of a dependency in action. * * @author Jason van Zyl * @author Trygve Laugstøl * @version $Id: ComponentDependency.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public class ComponentDependency { private static final String DEAULT_DEPENDENCY_TYPE = "jar"; private String groupId; private String artifactId; private String type = DEAULT_DEPENDENCY_TYPE; private String version; /** * Gets a key for an artifact, which is an alias for a specific * project timeline in a group. * @return a key for an artifact */ public String getArtifactId() { return artifactId; } /** * Sets the dependency's artifact ID. * @param artifactId the artifact ID */ public void setArtifactId(String artifactId) { this.artifactId = artifactId; } /** * Gets a key for a group, which represents a set of artifacts timelines. * @return a key for a group */ public String getGroupId() { return groupId; } /** * Sets the dependency's group ID. * @param groupId the group ID */ public void setGroupId(String groupId) { this.groupId = groupId; } /** * Gets the type of dependency, for example a "jar". * @return the type of dependency */ public String getType() { return type; } /** * Sets the dependency project's type. * @param type the dependency's type */ public void setType(String type) { this.type = type; } /** * Returns a specific point in a project's timeline. * i.e. version 1, or 2.1.4 * @return a specific point in a project's timeline */ public String getVersion() { return version; } /** * Sets the point in a project's development timeline * @param version the project's version */ public void setVersion(String version) { this.version = version; } public String toString() { StringBuffer sb = new StringBuffer(); sb.append( "groupId = " ).append( groupId ). append( ", artifactId = " ).append( artifactId ). append( ", version = " ).append( version ). append( ", type = " ).append( type ); return sb.toString(); } } ././@LongLink0000000000000000000000000000016000000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/discovery/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000755000175000017500000000000011225200003033577 5ustar twernertwerner././@LongLink0000000000000000000000000000022100000000000011560 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/discovery/PlexusXmlComponentDiscoverer.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000551611174733555033642 0ustar twernertwernerpackage org.codehaus.plexus.component.discovery; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.Reader; import java.util.Arrays; import org.codehaus.plexus.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.repository.ComponentDescriptor; import org.codehaus.plexus.component.repository.ComponentSetDescriptor; import org.codehaus.plexus.component.repository.io.PlexusTools; import org.codehaus.plexus.configuration.PlexusConfiguration; import org.codehaus.plexus.configuration.PlexusConfigurationException; public class PlexusXmlComponentDiscoverer extends AbstractResourceBasedComponentDiscoverer { public String getComponentDescriptorLocation() { return "META-INF/plexus/plexus.xml"; } @Override protected ComponentSetDescriptor createComponentDescriptors( Reader reader, String source, ClassRealm realm ) throws PlexusConfigurationException { ComponentSetDescriptor componentSetDescriptor = new ComponentSetDescriptor(); PlexusConfiguration configuration = PlexusTools.buildConfiguration( source, reader ); if ( configuration != null ) { PlexusConfiguration[] componentConfigurations = configuration.getChild( "components" ).getChildren( "component" ); for ( PlexusConfiguration componentConfiguration : componentConfigurations ) { ComponentDescriptor componentDescriptor; try { componentDescriptor = PlexusTools.buildComponentDescriptor( componentConfiguration, realm ); if ( componentDescriptor == null ) { continue; } } catch ( PlexusConfigurationException e ) { throw new PlexusConfigurationException( "Cannot build component descriptor from resource found in:\n" + Arrays.asList( realm.getURLs() ), e ); } componentDescriptor.setComponentType( "plexus" ); componentDescriptor.setComponentSetDescriptor( componentSetDescriptor ); componentSetDescriptor.addComponentDescriptor( componentDescriptor ); } } return componentSetDescriptor; } } ././@LongLink0000000000000000000000000000021400000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/discovery/ComponentDiscoveryEvent.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000310610706562153033625 0ustar twernertwernerpackage org.codehaus.plexus.component.discovery; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.component.repository.ComponentSetDescriptor; /** * Signals to a ComponentDiscoveryListener that an event has taken place * involving a set of components. It is up to the Listener to decide what * to do with that information. */ public class ComponentDiscoveryEvent { private ComponentSetDescriptor componentSetDescriptor; /** * Constructs a ComponentDiscoveryEvent with a set of * ComponentDescriptors. * @param componentSetDescriptor a set of ComponentDescriptors */ public ComponentDiscoveryEvent( ComponentSetDescriptor componentSetDescriptor ) { this.componentSetDescriptor = componentSetDescriptor; } /** * Returns this event's set of ComponentDescriptors. * @return this event's set of ComponentDescriptors */ public ComponentSetDescriptor getComponentSetDescriptor() { return componentSetDescriptor; } } ././@LongLink0000000000000000000000000000022600000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/discovery/DefaultComponentDiscovererManager.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000500011174733555033626 0ustar twernertwernerpackage org.codehaus.plexus.component.discovery; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.ArrayList; import java.util.List; import java.util.Set; import java.util.Map; import java.util.LinkedHashMap; public class DefaultComponentDiscovererManager implements ComponentDiscovererManager { private final List componentDiscoverers = new ArrayList(); // todo dain change this to LinkedHashSet (requires change to maven) private final Map listeners = new LinkedHashMap(); public synchronized void addComponentDiscoverer( ComponentDiscoverer discoverer ) { componentDiscoverers.add( discoverer ); } // todo this is not thread safe... we are returning the raw collection public synchronized List getComponentDiscoverers() { return componentDiscoverers; } // Listeners // todo this is not thread safe... we are returning the raw collection public synchronized Map getComponentDiscoveryListeners() { return listeners; } public synchronized void registerComponentDiscoveryListener( ComponentDiscoveryListener listener ) { if ( !listeners.containsKey( listener ) ) { listeners.put( listener, new Object() ); } } public synchronized void removeComponentDiscoveryListener( ComponentDiscoveryListener listener ) { listeners.remove( listener ); } public void fireComponentDiscoveryEvent( ComponentDiscoveryEvent event ) { Set listeners; synchronized ( this ) { listeners = this.listeners.keySet(); } for ( ComponentDiscoveryListener listener : listeners ) { listener.componentDiscovered( event ); } } } ././@LongLink0000000000000000000000000000022500000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/discovery/ResourceBasedComponentDiscoverer.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000053211174733555033633 0ustar twernertwernerpackage org.codehaus.plexus.component.discovery; /** * Component discoverer which relies on the metadata for the components residing in a resource that * can be found in a classloader. * * @author jvanzyl */ public interface ResourceBasedComponentDiscoverer extends ComponentDiscoverer { String getComponentDescriptorLocation(); } ././@LongLink0000000000000000000000000000022000000000000011557 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/discovery/DiscoveryListenerDescriptor.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000176710722311152033625 0ustar twernertwernerpackage org.codehaus.plexus.component.discovery; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * * @version $Id: DiscoveryListenerDescriptor.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public class DiscoveryListenerDescriptor { private String role; private String roleHint; public String getRole() { return role; } public String getRoleHint() { return roleHint; } } ././@LongLink0000000000000000000000000000023500000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/discovery/AbstractResourceBasedComponentDiscoverer.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000677111174733555033646 0ustar twernertwernerpackage org.codehaus.plexus.component.discovery; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.Reader; import java.net.URL; import java.net.URLConnection; import java.util.ArrayList; import java.util.Collections; import java.util.Enumeration; import java.util.List; import org.codehaus.plexus.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.repository.ComponentSetDescriptor; import org.codehaus.plexus.configuration.PlexusConfigurationException; import org.codehaus.plexus.context.Context; import org.codehaus.plexus.context.ContextMapAdapter; import org.codehaus.plexus.util.IOUtil; import org.codehaus.plexus.util.InterpolationFilterReader; import org.codehaus.plexus.util.ReaderFactory; //TODO: this should be a default strategy of searching through classloaders. a discoverer should really not have to be // concerned finding a particular resource and how to turn it into a set of component descriptors. /** * @author Jason van Zyl */ public abstract class AbstractResourceBasedComponentDiscoverer implements ComponentDiscoverer { protected abstract String getComponentDescriptorLocation(); protected abstract ComponentSetDescriptor createComponentDescriptors( Reader reader, String source, ClassRealm realm ) throws PlexusConfigurationException; public List findComponents( Context context, ClassRealm realm ) throws PlexusConfigurationException { List componentSetDescriptors = new ArrayList(); Enumeration resources; try { resources = realm.findResources( getComponentDescriptorLocation() ); } catch ( IOException e ) { throw new PlexusConfigurationException( "Unable to retrieve resources for: " + getComponentDescriptorLocation() + " in class realm: " + realm.getId() ); } for ( URL url : Collections.list( resources )) { Reader reader = null; try { URLConnection conn = url.openConnection(); conn.setUseCaches( false ); conn.connect(); reader = ReaderFactory.newXmlReader( conn.getInputStream() ); InterpolationFilterReader interpolationFilterReader = new InterpolationFilterReader( reader, new ContextMapAdapter( context ) ); ComponentSetDescriptor componentSetDescriptor = createComponentDescriptors( interpolationFilterReader, url.toString(), realm ); componentSetDescriptors.add( componentSetDescriptor ); } catch ( IOException ex ) { throw new PlexusConfigurationException( "Error reading configuration " + url, ex ); } finally { IOUtil.close( reader ); } } return componentSetDescriptors; } } ././@LongLink0000000000000000000000000000021700000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/discovery/ComponentDiscoveryListener.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000201011174733555033624 0ustar twernertwernerpackage org.codehaus.plexus.component.discovery; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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. */ /** * A listener which responds in some way to component discovery by a PlexusContainer. */ public interface ComponentDiscoveryListener { /** * Signals to this listener that a component has been discovered. * @param event the event that signals what components have been discovered */ void componentDiscovered( ComponentDiscoveryEvent event ); } ././@LongLink0000000000000000000000000000021000000000000011556 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/discovery/ComponentDiscoverer.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000216311174733555033635 0ustar twernertwernerpackage org.codehaus.plexus.component.discovery; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.classworlds.realm.ClassRealm; import org.codehaus.plexus.configuration.PlexusConfigurationException; import org.codehaus.plexus.context.Context; import org.codehaus.plexus.component.repository.ComponentSetDescriptor; import java.util.List; /** * @author Jason van Zyl */ public interface ComponentDiscoverer { List findComponents( Context context, ClassRealm classRealm ) throws PlexusConfigurationException; } ././@LongLink0000000000000000000000000000021700000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/discovery/DefaultComponentDiscoverer.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000663211174733555033642 0ustar twernertwernerpackage org.codehaus.plexus.component.discovery; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.component.repository.ComponentDescriptor; import org.codehaus.plexus.component.repository.ComponentSetDescriptor; import org.codehaus.plexus.component.repository.io.PlexusTools; import org.codehaus.plexus.configuration.PlexusConfiguration; import org.codehaus.plexus.configuration.PlexusConfigurationException; import org.codehaus.plexus.classworlds.realm.ClassRealm; import java.io.Reader; import java.util.ArrayList; import java.util.List; /** * @author Jason van Zyl */ public class DefaultComponentDiscoverer extends AbstractResourceBasedComponentDiscoverer { public String getComponentDescriptorLocation() { return "META-INF/plexus/components.xml"; } public ComponentSetDescriptor createComponentDescriptors( Reader componentDescriptorReader, String source, ClassRealm realm ) throws PlexusConfigurationException { PlexusConfiguration componentDescriptorConfiguration = PlexusTools.buildConfiguration( source, componentDescriptorReader ); ComponentSetDescriptor componentSetDescriptor = new ComponentSetDescriptor(); List> componentDescriptors = new ArrayList>(); PlexusConfiguration[] componentConfigurations = componentDescriptorConfiguration.getChild( "components" ).getChildren( "component" ); for ( PlexusConfiguration componentConfiguration : componentConfigurations ) { ComponentDescriptor componentDescriptor; try { componentDescriptor = PlexusTools.buildComponentDescriptor( componentConfiguration, realm ); } catch ( PlexusConfigurationException e ) { // This is not the most accurate of exceptions as the only real case where this exception // will be thrown is when the implementation class of the component sited cannot be loaded. // In the case where role and implementation classes do not exist then we just shouldn't // create the component descriptor. All information should be taken from annotations which // will be correct, so in the case we can't load the class it must be coming from and older // hand written descriptor which is incorrect. continue; } componentDescriptor.setSource( source ); componentDescriptor.setComponentType( "plexus" ); componentDescriptor.setComponentSetDescriptor( componentSetDescriptor ); componentDescriptors.add( componentDescriptor ); } componentSetDescriptor.setComponents( componentDescriptors ); componentSetDescriptor.setSource( source ); return componentSetDescriptor; } } ././@LongLink0000000000000000000000000000022700000000000011566 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/discovery/AnnotationBasedComponentDiscoverer.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000041111174733555033627 0ustar twernertwernerpackage org.codehaus.plexus.component.discovery; /** * Component discoverer which relies on annotation information to define component definitions. * * @author jvanzyl */ public interface AnnotationBasedComponentDiscoverer extends ComponentDiscoverer { } ././@LongLink0000000000000000000000000000021700000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/discovery/ComponentDiscovererManager.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000261311174733555033635 0ustar twernertwernerpackage org.codehaus.plexus.component.discovery; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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; import java.util.Map; /** * ComponentDiscovererManager is a simple index (registry) of ComponentDiscovers and ComponentDiscoveryListener. */ public interface ComponentDiscovererManager { void addComponentDiscoverer( ComponentDiscoverer componentDiscoverer ); List getComponentDiscoverers(); // todo dain change this to Set (requires change to maven) Map getComponentDiscoveryListeners(); void registerComponentDiscoveryListener( ComponentDiscoveryListener listener); void removeComponentDiscoveryListener( ComponentDiscoveryListener listener ); void fireComponentDiscoveryEvent( ComponentDiscoveryEvent event ); } ././@LongLink0000000000000000000000000000016400000000000011566 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/CastUtils.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000344111107373274033627 0ustar twernertwernerpackage org.codehaus.plexus.component; import org.apache.xbean.recipe.RecipeHelper; import java.util.Collection; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; @SuppressWarnings({"unchecked", "UnusedDeclaration"}) public final class CastUtils { private CastUtils() { //utility class, never constructed } public static Map cast(Map p) { return (Map) p; } public static Map cast(Map p, Class t, Class u) { return (Map) p; } public static Collection cast(Collection p) { return (Collection) p; } public static Collection cast(Collection p, Class cls) { return (Collection) p; } public static List cast(List p) { return (List) p; } public static List cast(List p, Class cls) { return (List) p; } public static Iterator cast(Iterator p) { return (Iterator) p; } public static Iterator cast(Iterator p, Class cls) { return (Iterator) p; } public static Set cast(Set p) { return (Set) p; } public static Set cast(Set p, Class cls) { return (Set) p; } public static Map.Entry cast(Map.Entry p) { return (Map.Entry) p; } public static Map.Entry cast(Map.Entry p, Class pc, Class uc) { return (Map.Entry) p; } // todo remove when recipe helper accecpts nulls public static boolean isAssignableFrom(Class expected, Class actual) { return actual != null && RecipeHelper.isAssignableFrom( expected, actual ); } } ././@LongLink0000000000000000000000000000016200000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/composition/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000755000175000017500000000000011225200003033577 5ustar twernertwerner././@LongLink0000000000000000000000000000021300000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/composition/CompositionException.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000306410722311152033615 0ustar twernertwernerpackage org.codehaus.plexus.component.composition; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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. */ /** * Thrown when component composition goes awry. * * @author Jason van Zyl * @author Michal Maczka * @version $Id: CompositionException.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public class CompositionException extends Exception { private static final long serialVersionUID = -5587124702588800322L; /** * Construct a new CompositionException instance. * * @param message The detail message for this exception. */ public CompositionException( String message ) { super( message ); } /** * Construct a new CompositionException instance. * * @param message The detail message for this exception. * @param throwable the root cause of the exception */ public CompositionException( String message, Throwable throwable ) { super( message, throwable ); } } ././@LongLink0000000000000000000000000000023200000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/composition/UndefinedComponentComposerException.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000232710531215552033623 0ustar twernertwernerpackage org.codehaus.plexus.component.composition; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 Michal Maczka * @version $Id: UndefinedComponentComposerException.java 4778 2006-11-23 03:54:18Z jvanzyl $ */ public class UndefinedComponentComposerException extends Exception { public UndefinedComponentComposerException( String message ) { super( message ); } public UndefinedComponentComposerException( String message, Throwable cause ) { super( message, cause ); } public UndefinedComponentComposerException( Throwable cause ) { super( cause ); } } ././@LongLink0000000000000000000000000000022100000000000011560 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/composition/DefaultCompositionResolver.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000602611107373274033631 0ustar twernertwernerpackage org.codehaus.plexus.component.composition; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.component.repository.ComponentDescriptor; import org.codehaus.plexus.component.repository.ComponentRequirement; import org.codehaus.plexus.component.repository.ComponentRequirementList; import org.codehaus.plexus.util.dag.CycleDetectedException; import org.codehaus.plexus.util.dag.DAG; import java.util.Iterator; import java.util.List; /** * @author Jason van Zyl * @author Michal Maczka * @version $Id: DefaultCompositionResolver.java 7828 2008-11-14 22:07:56Z dain $ */ public class DefaultCompositionResolver implements CompositionResolver { private DAG dag = new DAG(); public void addComponentDescriptor( ComponentDescriptor componentDescriptor ) throws CompositionException { String key = getDAGKey( componentDescriptor.getRole(), componentDescriptor.getRoleHint() ); List requirements = componentDescriptor.getRequirements(); for ( ComponentRequirement requirement : requirements ) { try { if ( requirement instanceof ComponentRequirementList ) { for ( String hint : ( (ComponentRequirementList) requirement ).getRoleHints() ) { dag.addEdge( key, getDAGKey( requirement.getRole(), hint ) ); } } else { dag.addEdge( key, getDAGKey( requirement.getRole(), requirement.getRoleHint() ) ); } } catch ( CycleDetectedException e ) { throw new CompositionException( "Cyclic requirement detected", e ); } } } /** * @see org.codehaus.plexus.component.composition.CompositionResolver#getRequirements(String,String) */ public List getRequirements( String role, String roleHint ) { return dag.getChildLabels( getDAGKey( role, roleHint ) ); } /** * @see org.codehaus.plexus.component.composition.CompositionResolver#findRequirements(String,String) */ public List findRequirements( String role, String roleHint ) { return dag.getParentLabels( getDAGKey( role, roleHint ) ); } private String getDAGKey( String role, String roleHint ) { return role + SEPARATOR_CHAR + roleHint; } } ././@LongLink0000000000000000000000000000021200000000000011560 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component/composition/CompositionResolver.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/component0000644000175000017500000000421411107373274033626 0ustar twernertwernerpackage org.codehaus.plexus.component.composition; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.component.repository.ComponentDescriptor; import java.util.List; /** * @author Jason van Zyl * @author Michal Maczka * @version $Id: CompositionResolver.java 7828 2008-11-14 22:07:56Z dain $ */ public interface CompositionResolver { public static final char SEPARATOR_CHAR = ':'; /** * @param componentDescriptor * @throws CompositionException when cycle is detected */ void addComponentDescriptor( ComponentDescriptor componentDescriptor ) throws CompositionException; /** * Returns the list of names of components which are required * by the component of given role and roleHint. * The names returned are in the form role:hint, where : is defined in SEPARATOR_CHAR. * * @param role The name of the component * @param roleHint The implementation hint of the component * @return The list of components which are required by given component */ List getRequirements( String role, String roleHint ); /** * Returns the list of names of components which are using the component. * of given role and roleHint. * The names returned are in the form role:hint, where : is defined in SEPARATOR_CHAR. * * @param role The name of the component * @param roleHint The implementation hint of the component * @return The list of components which are requiring given component */ List findRequirements( String role, String roleHint ); } ././@LongLink0000000000000000000000000000015700000000000011570 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/PlexusTestCase.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/PlexusTes0000644000175000017500000001700311144411335033550 0ustar twernertwernerpackage org.codehaus.plexus; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.InputStream; import java.util.HashMap; import java.util.Map; import junit.framework.TestCase; import org.codehaus.plexus.configuration.PlexusConfiguration; import org.codehaus.plexus.context.Context; import org.codehaus.plexus.context.DefaultContext; /** * @author Jason van Zyl * @author Trygve Laugstøl * @author Michal Maczka * @version $Id: PlexusTestCase.java 8105 2009-02-10 23:50:53Z jvanzyl $ */ public abstract class PlexusTestCase extends TestCase { private PlexusContainer container; private static String basedir; protected void setUp() throws Exception { basedir = getBasedir(); } protected void setupContainer() { // ---------------------------------------------------------------------------- // Context Setup // ---------------------------------------------------------------------------- DefaultContext context = new DefaultContext(); context.put( "basedir", getBasedir() ); customizeContext( context ); boolean hasPlexusHome = context.contains( "plexus.home" ); if ( !hasPlexusHome ) { File f = getTestFile( "target/plexus-home" ); if ( !f.isDirectory() ) { f.mkdir(); } context.put( "plexus.home", f.getAbsolutePath() ); } // ---------------------------------------------------------------------------- // Configuration // ---------------------------------------------------------------------------- String config = getCustomConfigurationName(); ContainerConfiguration containerConfiguration = new DefaultContainerConfiguration() .setName( "test" ) .setContext( context.getContextData() ); if ( config != null ) { containerConfiguration.setContainerConfiguration( config ); } else { String resource = getConfigurationName( null ); containerConfiguration.setContainerConfiguration( resource ); } customizeContainerConfiguration( containerConfiguration ); try { container = new DefaultPlexusContainer( containerConfiguration ); } catch ( PlexusContainerException e ) { e.printStackTrace(); fail( "Failed to create plexus container." ); } } /** * Allow custom test case implementations do augment the default container configuration before * executing tests. * * @param containerConfiguration */ protected void customizeContainerConfiguration( ContainerConfiguration containerConfiguration ) { } protected void customizeContext( Context context ) { } protected PlexusConfiguration customizeComponentConfiguration() { return null; } protected void tearDown() throws Exception { if ( container != null ) { container.dispose(); container = null; } } protected PlexusContainer getContainer() { if ( container == null ) { setupContainer(); } return container; } protected InputStream getConfiguration() throws Exception { return getConfiguration( null ); } protected InputStream getConfiguration( String subname ) throws Exception { return getResourceAsStream( getConfigurationName( subname ) ); } protected String getCustomConfigurationName() { return null; } /** * Allow the retrieval of a container configuration that is based on the name * of the test class being run. So if you have a test class called org.foo.FunTest, then * this will produce a resource name of org/foo/FunTest.xml which would be used to * configure the Plexus container before running your test. * * @param subname * @return */ protected String getConfigurationName( String subname ) { return getClass().getName().replace( '.', '/' ) + ".xml"; } protected InputStream getResourceAsStream( String resource ) { return getClass().getResourceAsStream( resource ); } protected ClassLoader getClassLoader() { return getClass().getClassLoader(); } // ---------------------------------------------------------------------- // Container access // ---------------------------------------------------------------------- protected Object lookup( String componentKey ) throws Exception { return getContainer().lookup( componentKey ); } protected Object lookup( String role, String roleHint ) throws Exception { return getContainer().lookup( role, roleHint ); } protected T lookup( Class componentClass ) throws Exception { return getContainer().lookup( componentClass ); } protected T lookup( Class componentClass, String roleHint ) throws Exception { return getContainer().lookup( componentClass, roleHint ); } protected void release( Object component ) throws Exception { getContainer().release( component ); } // ---------------------------------------------------------------------- // Helper methods for sub classes // ---------------------------------------------------------------------- public static File getTestFile( String path ) { return new File( getBasedir(), path ); } public static File getTestFile( String basedir, String path ) { File basedirFile = new File( basedir ); if ( !basedirFile.isAbsolute() ) { basedirFile = getTestFile( basedir ); } return new File( basedirFile, path ); } public static String getTestPath( String path ) { return getTestFile( path ).getAbsolutePath(); } public static String getTestPath( String basedir, String path ) { return getTestFile( basedir, path ).getAbsolutePath(); } public static String getBasedir() { if ( basedir != null ) { return basedir; } basedir = System.getProperty( "basedir" ); if ( basedir == null ) { basedir = new File( "" ).getAbsolutePath(); } return basedir; } public String getTestConfiguration() { return getTestConfiguration( getClass() ); } public static String getTestConfiguration( Class clazz ) { String s = clazz.getName().replace( '.', '/' ); return s.substring( 0, s.indexOf( "$" ) ) + ".xml"; } } plexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/context/0000755000175000017500000000000011225200002033337 5ustar twernertwerner././@LongLink0000000000000000000000000000017100000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/context/ContextException.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/context/C0000644000175000017500000000334210706562153033473 0ustar twernertwernerpackage org.codehaus.plexus.context; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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. */ /** * Exception signalling a badly formed Context. * * This can be thrown by Context object when a entry is not * found. It can also be thrown manually in contextualize() * when Component detects a malformed containerContext value. * * @author Avalon Development Team * @version CVS $Revision: 6965 $ $Date: 2007-10-21 07:32:27 +0200 (So, 21. Okt 2007) $ */ public class ContextException extends Exception { private static final long serialVersionUID = 2030206863811644180L; /** * Construct a new ContextException instance. * * @param message The detail message for this exception. */ public ContextException( final String message ) { this( message, null ); } /** * Construct a new ContextException instance. * * @param message The detail message for this exception. * @param throwable the root cause of the exception */ public ContextException( final String message, final Throwable throwable ) { super( message, throwable ); } } ././@LongLink0000000000000000000000000000016700000000000011571 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/context/DefaultContext.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/context/D0000644000175000017500000001127111135206670033470 0ustar twernertwernerpackage org.codehaus.plexus.context; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 java.util.Map; import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import java.util.concurrent.atomic.AtomicBoolean; /** * Default implementation of Context. * * This implementation is a static hierarchial store. It has the normal get() * and put methods. The hide method will hide a property. When * a property has been hidden the containerContext will not search in the parent containerContext for the value. * * @author Avalon Development Team * @version $Id: DefaultContext.java 8061 2009-01-19 23:33:12Z dain $ */ public class DefaultContext implements Context { /** * Context data. */ private final ConcurrentMap contextData = new ConcurrentHashMap(); /** * Is the containerContext read only. */ private final AtomicBoolean readOnly = new AtomicBoolean(false); /** * Create an empty Context. */ public DefaultContext() { } /** * Create a Context with specified data. The specified data is copied into the context so any subsequent updates * to supplied map are not reflected in this context. Additionally, changes to this context are not reflected in * the specified map. * * @param contextData the containerContext data */ public DefaultContext( Map contextData ) { if ( contextData == null ) { throw new NullPointerException( "contextData is null" ); } // check for nulls in key and value for ( Entry entry : contextData.entrySet() ) { Object key = entry.getKey(); Object value = entry.getValue(); if ( key == null ) { throw new IllegalArgumentException( "Key is null" ); } if ( value != null ) { this.contextData.put( key, value ); } } } public boolean contains( Object key ) { Object data = contextData.get( key ); return data != null; } public Object get( Object key ) throws ContextException { Object data = contextData.get( key ); if ( data == null ) { // There is no data for the key throw new ContextException( "Unable to resolve context key: " + key ); } return data; } public void put( Object key, Object value ) throws IllegalStateException { checkWriteable(); // check for a null key if (key == null) { throw new IllegalArgumentException("Key is null"); } if ( value == null ) { contextData.remove( key ); } else { contextData.put( key, value ); } } public void hide( Object key ) throws IllegalStateException { checkWriteable(); contextData.remove( key ); } /** * Utility method to retrieve containerContext data * * @return the containerContext data */ public Map getContextData() { return Collections.unmodifiableMap( contextData ); } /** * Make the containerContext read-only. * Any attempt to write to the containerContext via put() * will result in an IllegalStateException. */ public void makeReadOnly() { readOnly.set( true ); } /** * Utility method to check if containerContext is writeable and if not throw exception. * * @throws java.lang.IllegalStateException if containerContext is read only */ protected void checkWriteable() throws IllegalStateException { if ( readOnly.get() ) { throw new IllegalStateException( "Context is read only and can not be modified" ); } } public String toString() { return contextData.toString(); } } ././@LongLink0000000000000000000000000000017200000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/context/ContextMapAdapter.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/context/C0000644000175000017500000000234410531217373033471 0ustar twernertwernerpackage org.codehaus.plexus.context; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.HashMap; public class ContextMapAdapter extends HashMap { private Context context; public ContextMapAdapter( Context context ) { this.context = context; } public Object get( Object key ) { try { Object value = context.get( key ); if ( value instanceof String ) { return value; } else { return null; } } catch ( ContextException e ) { return null; } } } ././@LongLink0000000000000000000000000000016000000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/context/Context.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/context/C0000644000175000017500000000473711101647327033501 0ustar twernertwernerpackage org.codehaus.plexus.context; import java.util.Map; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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. */ /** * Context is a Map of arbitrary data associated with the container. */ public interface Context { /** * Returns true if this context contains a value for the specified key. * * @param key the key to search * @return true if the key was found; false otherwise */ boolean contains( Object key ); /** * Returns the value of the key. If the key can't be found it will throw a exception. * * @param key the key of the value to look up. * @return returns the value associated with the key * @throws ContextException if the key doesn't exist */ Object get( Object key ) throws ContextException; /** * Utility method to retrieve containerContext data. * The returned Map is an unmodifiable view. * @return the containerContext data * @since 1.0-alpha-18 */ Map getContextData(); /** * Adds the item to the containerContext. * * @param key the key of the item * @param value the item * @throws IllegalStateException if this context is read-only */ public void put( Object key, Object value ) throws IllegalStateException; // todo [dain] this isn't needed anymore since containers are no longer nestable /** * Hides the item in the containerContext. * After remove(key) has been called, a get(key) * will always fail, even if the parent containerContext * has such a mapping. * * @param key the items key * @throws IllegalStateException if this context is read-only */ void hide( Object key ) throws IllegalStateException; /** * Make the containerContext read-only. * Any attempt to write to the containerContext via put() * will result in an IllegalStateException. */ void makeReadOnly(); } ././@LongLink0000000000000000000000000000020100000000000011556 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/DuplicateChildContainerException.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/Duplicate0000644000175000017500000000230310531215552033525 0ustar twernertwernerpackage org.codehaus.plexus; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 DuplicateChildContainerException extends PlexusContainerException { private final String parent; private final String child; public DuplicateChildContainerException( String parent, String child ) { super( "Cannot create child container, because child named \'" + child + "\' already exists in parent \'" + parent + "\'." ); this.parent = parent; this.child = child; } public String getParent() { return parent; } public String getChild() { return child; } } ././@LongLink0000000000000000000000000000015000000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personality/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personali0000755000175000017500000000000011225200004033572 5ustar twernertwerner././@LongLink0000000000000000000000000000015700000000000011570 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personality/plexus/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personali0000755000175000017500000000000011225200004033572 5ustar twernertwerner././@LongLink0000000000000000000000000000017100000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personality/plexus/lifecycle/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personali0000755000175000017500000000000011225200004033572 5ustar twernertwerner././@LongLink0000000000000000000000000000017700000000000011572 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personality/plexus/lifecycle/phase/plexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personali0000755000175000017500000000000011225200004033572 5ustar twernertwerner././@LongLink0000000000000000000000000000021500000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personality/plexus/lifecycle/phase/StopPhase.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personali0000644000175000017500000000251610553764065033631 0ustar twernertwernerpackage org.codehaus.plexus.personality.plexus.lifecycle.phase; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.manager.ComponentManager; import org.codehaus.plexus.lifecycle.phase.AbstractPhase; public class StopPhase extends AbstractPhase { public void execute( Object object, ComponentManager manager, ClassRealm lookupRealm ) throws PhaseExecutionException { if ( object instanceof Startable ) { try { ( (Startable) object ).stop(); } catch ( StoppingException e ) { throw new PhaseExecutionException( "Error stopping component", e ); } } } } ././@LongLink0000000000000000000000000000022300000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personality/plexus/lifecycle/phase/LogDisablePhase.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personali0000644000175000017500000000316311111156773033620 0ustar twernertwernerpackage org.codehaus.plexus.personality.plexus.lifecycle.phase; /* * Copyright 2001-2007 Codehaus Foundation. * * Licensed 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.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.manager.ComponentManager; import org.codehaus.plexus.component.repository.ComponentDescriptor; import org.codehaus.plexus.lifecycle.phase.AbstractPhase; import org.codehaus.plexus.logging.LogEnabled; import org.codehaus.plexus.logging.LoggerManager; /** * @author Trygve Laugstøl * @version $Id: LogDisablePhase.java 7858 2008-11-20 03:48:11Z dain $ */ public class LogDisablePhase extends AbstractPhase { public void execute( Object object, ComponentManager componentManager, ClassRealm lookupRealm ) throws PhaseExecutionException { if ( object instanceof LogEnabled ) { LoggerManager loggerManager = componentManager.getContainer().getLoggerManager(); loggerManager.returnComponentLogger( componentManager.getRole(), componentManager.getRoleHint() ); } } } ././@LongLink0000000000000000000000000000022000000000000011557 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personality/plexus/lifecycle/phase/DisposePhase.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personali0000644000175000017500000000214510553764065033627 0ustar twernertwernerpackage org.codehaus.plexus.personality.plexus.lifecycle.phase; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.manager.ComponentManager; import org.codehaus.plexus.lifecycle.phase.AbstractPhase; public class DisposePhase extends AbstractPhase { public void execute( Object object, ComponentManager manager, ClassRealm lookupRealm ) { if ( object instanceof Disposable ) { ( (Disposable) object ).dispose(); } } } ././@LongLink0000000000000000000000000000022600000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personality/plexus/lifecycle/phase/ContextualizePhase.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personali0000644000175000017500000000336210555205412033615 0ustar twernertwernerpackage org.codehaus.plexus.personality.plexus.lifecycle.phase; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.manager.ComponentManager; import org.codehaus.plexus.context.Context; import org.codehaus.plexus.context.ContextException; import org.codehaus.plexus.lifecycle.phase.AbstractPhase; public class ContextualizePhase extends AbstractPhase { public void execute( Object object, ComponentManager manager, ClassRealm lookupRealm ) throws PhaseExecutionException { if ( object instanceof Contextualizable ) { Context context = manager.getContainer().getContext(); ClassRealm origRealm = manager.getContainer().setLookupRealm( lookupRealm ); try { ( (Contextualizable) object ).contextualize( context ); } catch ( ContextException e ) { throw new PhaseExecutionException( "Unable to contextualize component", e ); } finally { manager.getContainer().setLookupRealm( origRealm ); } } } } ././@LongLink0000000000000000000000000000022500000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personality/plexus/lifecycle/phase/ConfigurablePhase.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personali0000644000175000017500000000276510553764065033637 0ustar twernertwernerpackage org.codehaus.plexus.personality.plexus.lifecycle.phase; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.manager.ComponentManager; import org.codehaus.plexus.configuration.PlexusConfigurationException; import org.codehaus.plexus.lifecycle.phase.AbstractPhase; public class ConfigurablePhase extends AbstractPhase { public void execute( Object object, ComponentManager manager, ClassRealm lookupRealm ) throws PhaseExecutionException { if ( object instanceof Configurable ) { try { ( (Configurable) object ).configure( manager.getComponentDescriptor().getConfiguration() ); } catch ( PlexusConfigurationException e ) { throw new PhaseExecutionException( "Error occurred during phase execution", e ); } } } } ././@LongLink0000000000000000000000000000021700000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personality/plexus/lifecycle/phase/Serviceable.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personali0000644000175000017500000000157311131567517033627 0ustar twernertwernerpackage org.codehaus.plexus.personality.plexus.lifecycle.phase; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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. */ /** * Indicates that a class wants a hold on a ServiceLocator. * * @author Dan Diephouse */ public interface Serviceable { void service( ServiceLocator locator ); } ././@LongLink0000000000000000000000000000022500000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personality/plexus/lifecycle/phase/StoppingException.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personali0000644000175000017500000000214510706562153033621 0ustar twernertwernerpackage org.codehaus.plexus.personality.plexus.lifecycle.phase; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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. */ /** * Error occuring while starting a component. * * @author Brett Porter * @version $Id: StoppingException.java 6965 2007-10-21 05:32:27Z jvanzyl $ */ public class StoppingException extends Exception { public StoppingException( String message ) { super( message ); } public StoppingException( String message, Throwable cause ) { super( message, cause ); } } ././@LongLink0000000000000000000000000000021700000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personality/plexus/lifecycle/phase/ResumePhase.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personali0000644000175000017500000000214511131567517033623 0ustar twernertwernerpackage org.codehaus.plexus.personality.plexus.lifecycle.phase; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.manager.ComponentManager; import org.codehaus.plexus.lifecycle.phase.AbstractPhase; public class ResumePhase extends AbstractPhase { public void execute( Object object, ComponentManager manager, ClassRealm lookupRealm ) { if ( object instanceof Suspendable ) { ( (Suspendable) object ).resume(); } } } ././@LongLink0000000000000000000000000000022000000000000011557 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personality/plexus/lifecycle/phase/Configurable.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personali0000644000175000017500000000202210706562153033613 0ustar twernertwernerpackage org.codehaus.plexus.personality.plexus.lifecycle.phase; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.configuration.PlexusConfiguration; import org.codehaus.plexus.configuration.PlexusConfigurationException; /** * Configures a component. * * @author Dan Diephouse */ public interface Configurable { void configure( PlexusConfiguration configuration ) throws PlexusConfigurationException; } ././@LongLink0000000000000000000000000000022100000000000011560 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personality/plexus/lifecycle/phase/Initializable.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personali0000644000175000017500000000157610722311152033615 0ustar twernertwernerpackage org.codehaus.plexus.personality.plexus.lifecycle.phase; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * * @version $Id: Initializable.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public interface Initializable { public void initialize() throws InitializationException; } ././@LongLink0000000000000000000000000000022600000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personality/plexus/lifecycle/phase/AutoConfigurePhase.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personali0000644000175000017500000000531611107373274033624 0ustar twernertwernerpackage org.codehaus.plexus.personality.plexus.lifecycle.phase; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.configurator.ComponentConfigurationException; import org.codehaus.plexus.component.configurator.ComponentConfigurator; import org.codehaus.plexus.component.manager.ComponentManager; import org.codehaus.plexus.component.repository.ComponentDescriptor; import org.codehaus.plexus.component.repository.exception.ComponentLookupException; import org.codehaus.plexus.configuration.PlexusConfiguration; import org.codehaus.plexus.lifecycle.phase.AbstractPhase; import org.codehaus.plexus.util.StringUtils; public class AutoConfigurePhase extends AbstractPhase { public static final String DEFAULT_CONFIGURATOR_ID = "default"; public void execute( Object object, ComponentManager manager, ClassRealm lookupRealm ) throws PhaseExecutionException { try { ComponentDescriptor descriptor = manager.getComponentDescriptor(); String configuratorId = descriptor.getComponentConfigurator(); if ( StringUtils.isEmpty( configuratorId ) ) { configuratorId = DEFAULT_CONFIGURATOR_ID; } ComponentConfigurator componentConfigurator = manager.getContainer().lookup( ComponentConfigurator.class, configuratorId ); PlexusConfiguration configuration = manager.getContainer().getConfigurationSource().getConfiguration( descriptor ); if ( configuration != null ) { ClassRealm realm = manager.getRealm(); componentConfigurator.configureComponent( object, configuration, realm ); } } catch ( ComponentLookupException e ) { throw new PhaseExecutionException( "Unable to auto-configure component as its configurator could not be found", e ); } catch ( ComponentConfigurationException e ) { throw new PhaseExecutionException( "Unable to auto-configure component", e ); } } } ././@LongLink0000000000000000000000000000022300000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personality/plexus/lifecycle/phase/InitializePhase.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personali0000644000175000017500000000255410553764065033633 0ustar twernertwernerpackage org.codehaus.plexus.personality.plexus.lifecycle.phase; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.manager.ComponentManager; import org.codehaus.plexus.lifecycle.phase.AbstractPhase; public class InitializePhase extends AbstractPhase { public void execute( Object object, ComponentManager manager, ClassRealm lookupRealm ) throws PhaseExecutionException { if ( object instanceof Initializable ) { try { ( (Initializable) object ).initialize(); } catch ( InitializationException e ) { throw new PhaseExecutionException( "Error initialising component", e ); } } } } ././@LongLink0000000000000000000000000000023200000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personality/plexus/lifecycle/phase/PlexusContainerLocator.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personali0000644000175000017500000000504711131567517033627 0ustar twernertwernerpackage org.codehaus.plexus.personality.plexus.lifecycle.phase; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.PlexusContainer; import org.codehaus.plexus.component.repository.exception.ComponentLifecycleException; import org.codehaus.plexus.component.repository.exception.ComponentLookupException; import java.util.List; import java.util.Map; /** * A ServiceLocator for PlexusContainer. * * @author Dan Diephouse */ public class PlexusContainerLocator implements ServiceLocator { private PlexusContainer container; public PlexusContainerLocator( PlexusContainer container ) { this.container = container; } public Object lookup( String role ) throws ComponentLookupException { return container.lookup( role ); } public Object lookup( String role, String roleHint ) throws ComponentLookupException { return container.lookup( role, roleHint ); } public Map lookupMap( String role ) throws ComponentLookupException { return container.lookupMap( role ); } public List lookupList( String role ) throws ComponentLookupException { return container.lookupList( role ); } public void release( Object component ) throws ComponentLifecycleException { container.release( component ); } public void releaseAll( Map components ) throws ComponentLifecycleException { container.releaseAll( components ); } public void releaseAll( List components ) throws ComponentLifecycleException { container.releaseAll( components ); } public boolean hasComponent( String componentKey ) { return container.hasComponent( componentKey ); } public boolean hasComponent( String role, String roleHint ) { return container.hasComponent( role, roleHint ); } } ././@LongLink0000000000000000000000000000022000000000000011557 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personality/plexus/lifecycle/phase/SuspendPhase.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personali0000644000175000017500000000214711131567517033625 0ustar twernertwernerpackage org.codehaus.plexus.personality.plexus.lifecycle.phase; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.manager.ComponentManager; import org.codehaus.plexus.lifecycle.phase.AbstractPhase; public class SuspendPhase extends AbstractPhase { public void execute( Object object, ComponentManager manager, ClassRealm lookupRealm ) { if ( object instanceof Suspendable ) { ( (Suspendable) object ).suspend(); } } } ././@LongLink0000000000000000000000000000022200000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personality/plexus/lifecycle/phase/ServiceLocator.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personali0000644000175000017500000000437211131567517033627 0ustar twernertwernerpackage org.codehaus.plexus.personality.plexus.lifecycle.phase; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.component.repository.exception.ComponentLifecycleException; import org.codehaus.plexus.component.repository.exception.ComponentLookupException; import java.util.List; import java.util.Map; /** * Provides services to components by means of a lookup. * * @author Dan Diephouse */ public interface ServiceLocator { //---------------------------------------------------------------------- // Component lookup // ---------------------------------------------------------------------- Object lookup( String componentKey ) throws ComponentLookupException; Object lookup( String role, String roleHint ) throws ComponentLookupException; Map lookupMap( String role ) throws ComponentLookupException; List lookupList( String role ) throws ComponentLookupException; //---------------------------------------------------------------------- // Component release // ---------------------------------------------------------------------- void release( Object component ) throws ComponentLifecycleException; void releaseAll( Map components ) throws ComponentLifecycleException; void releaseAll( List components ) throws ComponentLifecycleException; // ---------------------------------------------------------------------- // Component discovery // ---------------------------------------------------------------------- boolean hasComponent( String componentKey ); boolean hasComponent( String role, String roleHint ); } ././@LongLink0000000000000000000000000000022200000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personality/plexus/lifecycle/phase/LogEnablePhase.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personali0000644000175000017500000000320211111156773033612 0ustar twernertwernerpackage org.codehaus.plexus.personality.plexus.lifecycle.phase; /* * Copyright 2001-2007 Codehaus Foundation. * * Licensed 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.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.manager.ComponentManager; import org.codehaus.plexus.component.repository.ComponentDescriptor; import org.codehaus.plexus.lifecycle.phase.AbstractPhase; import org.codehaus.plexus.logging.LogEnabled; import org.codehaus.plexus.logging.Logger; import org.codehaus.plexus.logging.LoggerManager; public class LogEnablePhase extends AbstractPhase { public void execute( Object object, ComponentManager componentManager, ClassRealm lookupRealm ) throws PhaseExecutionException { if ( object instanceof LogEnabled ) { LogEnabled logEnabled = (LogEnabled) object; LoggerManager loggerManager = componentManager.getContainer().getLoggerManager(); Logger logger = loggerManager.getLoggerForComponent( componentManager.getRole(), componentManager.getRoleHint() ); logEnabled.enableLogging( logger ); } } } ././@LongLink0000000000000000000000000000022400000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personality/plexus/lifecycle/phase/Contextualizable.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personali0000644000175000017500000000175210722311152033611 0ustar twernertwernerpackage org.codehaus.plexus.personality.plexus.lifecycle.phase; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.context.Context; import org.codehaus.plexus.context.ContextException; /** * @author Jason van Zyl * @version $Id: Contextualizable.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public interface Contextualizable { public void contextualize( Context context ) throws ContextException; } ././@LongLink0000000000000000000000000000021600000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personality/plexus/lifecycle/phase/Disposable.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personali0000644000175000017500000000151610722311152033607 0ustar twernertwernerpackage org.codehaus.plexus.personality.plexus.lifecycle.phase; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 * * @version $Id: Disposable.java 7089 2007-11-25 15:19:06Z jvanzyl $ */ public interface Disposable { public void dispose(); } ././@LongLink0000000000000000000000000000021600000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personality/plexus/lifecycle/phase/StartPhase.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personali0000644000175000017500000000252010553764065033624 0ustar twernertwernerpackage org.codehaus.plexus.personality.plexus.lifecycle.phase; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.manager.ComponentManager; import org.codehaus.plexus.lifecycle.phase.AbstractPhase; public class StartPhase extends AbstractPhase { public void execute( Object object, ComponentManager manager, ClassRealm lookupRealm ) throws PhaseExecutionException { if ( object instanceof Startable ) { try { ( (Startable) object ).start(); } catch ( StartingException e ) { throw new PhaseExecutionException( "Error starting component", e ); } } } } ././@LongLink0000000000000000000000000000022400000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personality/plexus/lifecycle/phase/ServiceablePhase.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personali0000644000175000017500000000237711131567517033632 0ustar twernertwernerpackage org.codehaus.plexus.personality.plexus.lifecycle.phase; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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.PlexusContainer; import org.codehaus.plexus.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.manager.ComponentManager; import org.codehaus.plexus.lifecycle.phase.AbstractPhase; public class ServiceablePhase extends AbstractPhase { public void execute( Object object, ComponentManager manager, ClassRealm lookupRealm ) { if ( object instanceof Serviceable ) { PlexusContainer container = manager.getContainer(); ( (Serviceable) object ).service( new PlexusContainerLocator(container) ); } } } ././@LongLink0000000000000000000000000000021700000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personality/plexus/lifecycle/phase/Suspendable.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personali0000644000175000017500000000135511131567517033625 0ustar twernertwernerpackage org.codehaus.plexus.personality.plexus.lifecycle.phase; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 interface Suspendable { void suspend(); void resume(); } ././@LongLink0000000000000000000000000000021500000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personality/plexus/lifecycle/phase/Startable.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personali0000644000175000017500000000145110706562153033620 0ustar twernertwernerpackage org.codehaus.plexus.personality.plexus.lifecycle.phase; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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 interface Startable { void start() throws StartingException; void stop() throws StoppingException; } ././@LongLink0000000000000000000000000000022500000000000011564 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personality/plexus/lifecycle/phase/StartingException.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personali0000644000175000017500000000214510706562153033621 0ustar twernertwernerpackage org.codehaus.plexus.personality.plexus.lifecycle.phase; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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. */ /** * Error occuring while starting a component. * * @author Brett Porter * @version $Id: StartingException.java 6965 2007-10-21 05:32:27Z jvanzyl $ */ public class StartingException extends Exception { public StartingException( String message ) { super( message ); } public StartingException( String message, Throwable cause ) { super( message, cause ); } } ././@LongLink0000000000000000000000000000023300000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personality/plexus/lifecycle/phase/InitializationException.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personali0000644000175000017500000000221010706562153033612 0ustar twernertwernerpackage org.codehaus.plexus.personality.plexus.lifecycle.phase; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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. */ /** * Indicates a problem occurred when initialising a component. * * @author Brett Porter * @version $Id: InitializationException.java 6965 2007-10-21 05:32:27Z jvanzyl $ */ public class InitializationException extends Exception { public InitializationException( String message ) { super( message ); } public InitializationException( String message, Throwable cause ) { super( message, cause ); } } ././@LongLink0000000000000000000000000000023300000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personality/plexus/lifecycle/phase/PhaseExecutionException.javaplexus-containers-1.0~beta3.0.7/plexus-container-default/src/main/java/org/codehaus/plexus/personali0000644000175000017500000000210010531217373033605 0ustar twernertwernerpackage org.codehaus.plexus.personality.plexus.lifecycle.phase; /* * Copyright 2001-2006 Codehaus Foundation. * * Licensed 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. */ /** * Describes an error that has occurred during the execution of a phase. * * @author Brett Porter * @version $Id: PhaseExecutionException.java 4779 2006-11-23 04:09:31Z jvanzyl $ */ public class PhaseExecutionException extends Exception { public PhaseExecutionException( String message, Throwable throwable ) { super( message, throwable ); } } plexus-containers-1.0~beta3.0.7/plexus-container-default/pom.xml0000644000175000017500000000257611202563456024670 0ustar twernertwerner 4.0.0 org.codehaus.plexus plexus-containers 1.0-beta-3.0.7 plexus-container-default Plexus :: Default Container maven-surefire-plugin once **/Test*.java **/Abstract*.java org.codehaus.plexus plexus-utils org.codehaus.plexus plexus-classworlds org.apache.xbean xbean-reflect com.google.code.google-collections google-collect plexus-containers-1.0~beta3.0.7/plexus-component-javadoc/0000755000175000017500000000000011225200005023323 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-component-javadoc/src/0000755000175000017500000000000011225200005024112 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-component-javadoc/src/it/0000755000175000017500000000000011225200005024526 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-component-javadoc/src/it/basic/0000755000175000017500000000000011225200005025607 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-component-javadoc/src/it/basic/verify.bsh0000644000175000017500000000424511112242737027633 0ustar twernertwernerimport java.io.*; import java.util.*; import java.util.regex.*; import org.codehaus.plexus.util.*; setAccessibility( true ); File docsDir = new File( basedir, "target/site/apidocs" ); System.out.println( "Checking for existence of: " + docsDir ); if ( !docsDir.exists() ) { throw new FileNotFoundException( docsDir + " was not created" ); } File docFile = new File( docsDir, "plexus/test/App.html" ); System.out.println( "Checking for existence of: " + docFile ); if ( !docFile.isFile() ) { throw new FileNotFoundException( docFile + " was not created" ); } String html = FileUtils.fileRead( docFile, "UTF-8" ).replaceAll( "(\r\n)|(\r)|(\n)", "" ); System.out.println( "Checking for documentation of Plexus component" ); String plexusComponent = "
plexus component:
" + "
" + "
" + "
role:
" + "
\"org.codehaus.plexus.test.app\"
" + "
role-hint:
" + "
\"app\"
" + "
"; if ( html.toLowerCase( Locale.ENGLISH ).indexOf( ( plexusComponent ).toLowerCase( Locale.ENGLISH ) ) < 0 ) { throw new IllegalStateException( "Plexus component doc wrong" ); } System.out.println( "Checking for documentation of Plexus configuration" ); String plexusConfig = "
plexus configuration:
" + "
" + "
default-value:
" + "
\"someone\"
"; if ( html.toLowerCase( Locale.ENGLISH ).indexOf( ( plexusConfig ).toLowerCase( Locale.ENGLISH ) ) < 0 ) { throw new IllegalStateException( "Plexus configuration doc wrong" ); } System.out.println( "Checking for documentation of Plexus requirement" ); String plexusRequirement = "
plexus requirement:
" + "
" + "
role-hint:
\"foo\"
" + "
"; if ( html.toLowerCase( Locale.ENGLISH ).indexOf( ( plexusRequirement ).toLowerCase( Locale.ENGLISH ) ) < 0 ) { throw new IllegalStateException( "Plexus requirement doc wrong" ); } return true; plexus-containers-1.0~beta3.0.7/plexus-component-javadoc/src/it/basic/src/0000755000175000017500000000000011225200005026376 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-component-javadoc/src/it/basic/src/main/0000755000175000017500000000000011225200005027322 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-component-javadoc/src/it/basic/src/main/java/0000755000175000017500000000000011225200005030243 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-component-javadoc/src/it/basic/src/main/java/plexus/0000755000175000017500000000000011225200005031563 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-component-javadoc/src/it/basic/src/main/java/plexus/test/0000755000175000017500000000000011225200005032542 5ustar twernertwerner././@LongLink0000000000000000000000000000015100000000000011562 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-component-javadoc/src/it/basic/src/main/java/plexus/test/App.javaplexus-containers-1.0~beta3.0.7/plexus-component-javadoc/src/it/basic/src/main/java/plexus/test/App.0000644000175000017500000000323710777725005033317 0ustar twernertwernerpackage plexus.test; /* * 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. */ /** * App class * * @author Vincent Siveton * @version 1.0 * @plexus.component role="org.codehaus.plexus.test.App" role-hint="app" */ public class App { /** * @plexus.configuration default-value="someone" */ private String name; /** * @plexus.requirement * role-hint="foo" */ private App app; /** * The main method * * @param args an array of strings that contains the arguments */ public static void main( String[] args ) { System.out.println( "Sample Application." ); } /** * Sample method that prints out the parameter string. * * @param str The string value to be printed. */ protected void sampleMethod( String str ) { System.out.println( str ); } } plexus-containers-1.0~beta3.0.7/plexus-component-javadoc/src/it/basic/pom.xml0000644000175000017500000000324311112741733027143 0ustar twernertwerner 4.0.0 org.codehaus.plexus.plexus-javadoc test 1.0-SNAPSHOT jar 2008 Test Plexus Tags org.apache.maven.plugins maven-javadoc-plugin 2.3 ${basedir}/target/site/apidocs true private UTF-8 UTF-8 UTF-8 org.codehaus.plexus.javadoc.PlexusComponentTaglet org.codehaus.plexus.javadoc.PlexusConfigurationTaglet org.codehaus.plexus.javadoc.PlexusRequirementTaglet org.codehaus.plexus plexus-component-javadoc @project.version@ plexus-containers-1.0~beta3.0.7/plexus-component-javadoc/src/it/settings.xml0000644000175000017500000000157611112242737027136 0ustar twernertwerner it-repo true local.central @localRepositoryUrl@ true true local.central @localRepositoryUrl@ true true plexus-containers-1.0~beta3.0.7/plexus-component-javadoc/src/site/0000755000175000017500000000000011225200005025056 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-component-javadoc/src/site/site.xml0000644000175000017500000000127410777725005026577 0ustar twernertwerner Plexus http://plexus.codehaus.org/ /images/plexus-logo.png org.codehaus.plexus plexus-stylus-skin 1.0-SNAPSHOT plexus-containers-1.0~beta3.0.7/plexus-component-javadoc/src/site/apt/0000755000175000017500000000000011225200005025642 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-component-javadoc/src/site/apt/usage.apt0000644000175000017500000000476610777722341027520 0ustar twernertwerner ------ Usage ------ Vincent Siveton ------ August 2007 ------ ~~ 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. ~~ NOTE: For help with the syntax of this file, see: ~~ http://maven.apache.org/guides/mini/guide-apt-format.html Usage The doclets could be use directly in the {{{http://maven.apache.org/plugins/maven-javadoc-plugin/}maven-javadoc-plugin/}}. +-----+ ... org.apache.maven.plugins maven-javadoc-plugin org.codehaus.plexus.javadoc.PlexusComponentTaglet org.codehaus.plexus plexus-javadoc 1.0-SNAPSHOT org.codehaus.plexus.javadoc.PlexusConfigurationTaglet org.codehaus.plexus plexus-javadoc 1.0-SNAPSHOT org.codehaus.plexus.javadoc.PlexusRequirementTaglet org.codehaus.plexus plexus-javadoc 1.0-SNAPSHOT ... ... ... +-----+ plexus-containers-1.0~beta3.0.7/plexus-component-javadoc/src/site/apt/index.apt0000644000175000017500000000247710777722341027520 0ustar twernertwerner ------ Introduction ------ Vincent Siveton ------ August 2007 ------ ~~ 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. ~~ NOTE: For help with the syntax of this file, see: ~~ http://maven.apache.org/guides/mini/guide-apt-format.html Plexus Doclet The Plexus Doclet project is a collection of several tags handle by the javadoc tool. For more information about the standard Javadoc tool, please refer to {{{http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html}Reference Guide}}. * Usage Instructions on how to use this project can be found {{{usage.html}here}}. plexus-containers-1.0~beta3.0.7/plexus-component-javadoc/src/main/0000755000175000017500000000000011225200005025036 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-component-javadoc/src/main/javadoc/0000755000175000017500000000000011225200005026445 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-component-javadoc/src/main/javadoc/org/0000755000175000017500000000000011225200005027234 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-component-javadoc/src/main/javadoc/org/codehaus/0000755000175000017500000000000011225200005031027 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-component-javadoc/src/main/javadoc/org/codehaus/plexus/0000755000175000017500000000000011225200005032347 5ustar twernertwerner././@LongLink0000000000000000000000000000014700000000000011567 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-component-javadoc/src/main/javadoc/org/codehaus/plexus/javadoc/plexus-containers-1.0~beta3.0.7/plexus-component-javadoc/src/main/javadoc/org/codehaus/plexus/javado0000755000175000017500000000000011225200005033534 5ustar twernertwerner././@LongLink0000000000000000000000000000016300000000000011565 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-component-javadoc/src/main/javadoc/org/codehaus/plexus/javadoc/package.htmlplexus-containers-1.0~beta3.0.7/plexus-component-javadoc/src/main/javadoc/org/codehaus/plexus/javado0000755000175000017500000000263010664115343033562 0ustar twernertwerner

Javadoc Tags used by Plexus tools

Here is a reference of the Javadoc annotations that can be used to 'decorate' the Java sources to allow Plexus tools like Component Descriptor Creator (CDC) to generate Component Descriptors.

Tag/Annotation Available on Required Descriptor Element
@plexus.component Class Yes Indicate to Plexus CDC that the class is a component
@plexus.configuration Field No Tell Plexus CDC that this item should be configured through the components.xml
@plexus.requirement FieldNo Indicate to Plexus CDC that the field is required by the component
plexus-containers-1.0~beta3.0.7/plexus-component-javadoc/src/main/java/0000755000175000017500000000000011225200005025757 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-component-javadoc/src/main/java/org/0000755000175000017500000000000011225200005026546 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-component-javadoc/src/main/java/org/codehaus/0000755000175000017500000000000011225200005030341 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-component-javadoc/src/main/java/org/codehaus/plexus/0000755000175000017500000000000011225200005031661 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-component-javadoc/src/main/java/org/codehaus/plexus/javadoc/0000755000175000017500000000000011225200005033270 5ustar twernertwerner././@LongLink0000000000000000000000000000020200000000000011557 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-component-javadoc/src/main/java/org/codehaus/plexus/javadoc/PlexusConfigurationTaglet.javaplexus-containers-1.0~beta3.0.7/plexus-component-javadoc/src/main/java/org/codehaus/plexus/javadoc/P0000644000175000017500000000653210777725005033447 0ustar twernertwernerpackage org.codehaus.plexus.javadoc; /* * 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.Map; import com.sun.tools.doclets.Taglet; /** * The @plexus.configuration tags are used to mark fields in a class for configuration through * the components.xml. * * * * * * * * * * * * * *
ParameterRequiredDescription
default-valueCurrentlyThe default values are currently required for the <configuration> * tag to be written to components.xml.
* * @see * http://plexus.codehaus.org/guides/developer-guide/appendices/javadoc-tags-reference.html * * @author Vincent Siveton * @version $Id: PlexusConfigurationTaglet.java 7277 2008-04-11 18:12:21Z bentmann $ */ public class PlexusConfigurationTaglet extends AbstractPlexusTaglet { private static final String NAME = "plexus.configuration"; private static final String HEADER = "Plexus configuration"; /** {@inheritDoc} */ public String getHeader() { return HEADER; } /** {@inheritDoc} */ public String getName() { return NAME; } /** {@inheritDoc} */ public boolean inConstructor() { return false; } /** {@inheritDoc} */ public boolean inField() { return true; } /** {@inheritDoc} */ public boolean inMethod() { return false; } /** {@inheritDoc} */ public boolean inOverview() { return false; } /** {@inheritDoc} */ public boolean inPackage() { return false; } /** {@inheritDoc} */ public boolean inType() { return false; } /** {@inheritDoc} */ public boolean isInlineTag() { return false; } /** * Register this Taglet. * * @param tagletMap the map to register this tag to. */ public static void register( Map tagletMap ) { PlexusConfigurationTaglet tag = new PlexusConfigurationTaglet(); Taglet t = (Taglet) tagletMap.get( tag.getName() ); if ( t != null ) { tagletMap.remove( tag.getName() ); } tagletMap.put( tag.getName(), tag ); } } ././@LongLink0000000000000000000000000000017500000000000011570 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-component-javadoc/src/main/java/org/codehaus/plexus/javadoc/AbstractPlexusTaglet.javaplexus-containers-1.0~beta3.0.7/plexus-component-javadoc/src/main/java/org/codehaus/plexus/javadoc/A0000644000175000017500000001272210777725005033426 0ustar twernertwernerpackage org.codehaus.plexus.javadoc; /* * 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.Enumeration; import java.util.StringTokenizer; import javax.swing.text.AttributeSet; import javax.swing.text.MutableAttributeSet; import javax.swing.text.SimpleAttributeSet; import com.sun.javadoc.Tag; import com.sun.tools.doclets.Taglet; /** * Abstract Taglet for Plexus tags. * * @see * http://plexus.codehaus.org/guides/developer-guide/appendices/javadoc-tags-reference.html * * @author Vincent Siveton * @version $Id: AbstractPlexusTaglet.java 7277 2008-04-11 18:12:21Z bentmann $ */ public abstract class AbstractPlexusTaglet implements Taglet { /** {@inheritDoc} */ public String toString( Tag tag ) { if ( tag == null ) { return null; } String tagText = tag.text(); MutableAttributeSet att = getAttributes( tagText ); StringBuffer sb = new StringBuffer(); if ( ( att == null ) || ( att.getAttributeCount() == 0 ) ) { sb.append( "
" ).append( getHeader() ).append( "
" ); } else { sb.append( "
" ).append( getHeader() ).append( ":
" ); sb.append( "
" ); appendPlexusTag( sb, att ); sb.append( "
" ); } return sb.toString(); } /** {@inheritDoc} */ public String toString( Tag[] tags ) { if ( tags.length == 0 ) { return null; } boolean hasParameters = false; for ( int i = 0; i < tags.length; i++ ) { String tagText = tags[i].text(); MutableAttributeSet att = getAttributes( tagText ); if ( att != null ) { hasParameters = att.getAttributeCount() > 0; } } StringBuffer sb = new StringBuffer(); sb.append( "
" ).append( getHeader() ).append( ( hasParameters ? ":" : "" ) ).append( "
" ); sb.append( "
" ); for ( int i = 0; i < tags.length; i++ ) { if ( i > 0 ) { sb.append( ", " ); } String tagText = tags[i].text(); appendPlexusTag( sb, getAttributes( tagText ) ); } sb.append( "
" ); return sb.toString(); } /** * @return the header to display */ public abstract String getHeader(); /** * @param text the Tag text returned by {@link Tag#text()} * @return a MutableAttributeSet or null if text was null */ private MutableAttributeSet getAttributes( String text ) { if ( text == null || text.trim().length() == 0 ) { return null; } MutableAttributeSet att = new SimpleAttributeSet(); StringTokenizer token = new StringTokenizer( text, " " ); while ( token.hasMoreTokens() ) { String nextToken = token.nextToken(); StringTokenizer token2 = new StringTokenizer( nextToken, "=" ); if ( token2.countTokens() != 2 ) { System.err.println( "The annotation '" + getName() + "' has a wrong Plexus annotations: " + text ); continue; } String name = token2.nextToken(); String value = token2.nextToken(); att.addAttribute( name, value ); } return att; } /** * Append the wanted display in the javadoc. * * @param sb * @param att */ private static void appendPlexusTag( StringBuffer sb, MutableAttributeSet att ) { if ( att == null ) { return; } if ( att.getAttributeCount() > 0 ) { sb.append( "
" ); Enumeration names = att.getAttributeNames(); while ( names.hasMoreElements() ) { Object key = names.nextElement(); Object value = att.getAttribute( key ); if ( value instanceof AttributeSet ) { // ignored } else { sb.append( "
" ).append( key ).append( ":
" ); sb.append( "
" ).append( value ).append( "
" ); } } sb.append( "
" ); } } } ././@LongLink0000000000000000000000000000017600000000000011571 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-component-javadoc/src/main/java/org/codehaus/plexus/javadoc/PlexusComponentTaglet.javaplexus-containers-1.0~beta3.0.7/plexus-component-javadoc/src/main/java/org/codehaus/plexus/javadoc/P0000644000175000017500000000770310777725005033450 0ustar twernertwernerpackage org.codehaus.plexus.javadoc; /* * 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.Map; import com.sun.tools.doclets.Taglet; /** * The @plexus.component tag is used to show that the class it annotates is a plexus component. * This will add a <component> element to the <components> in components.xml. * The following parameters are available, but remember the role is required. * The text in the javadoc tag describing this class is copied into the component's <description> tag. * * * * * * * * * * * * * * * * * * * * * * * *
ParameterRequiredDescription
roleYesThe role that this class provides an implementation for (usually the class name * of an implemented Interface
role-hintNoThe hints are used to differentiate multiple implementations of the same role
versionNoSet the version of the component
* * @see * http://plexus.codehaus.org/guides/developer-guide/appendices/javadoc-tags-reference.html * * @author Vincent Siveton * @version $Id: PlexusComponentTaglet.java 7277 2008-04-11 18:12:21Z bentmann $ */ public class PlexusComponentTaglet extends AbstractPlexusTaglet { private static final String NAME = "plexus.component"; private static final String HEADER = "Plexus component"; /** {@inheritDoc} */ public String getHeader() { return HEADER; } /** {@inheritDoc} */ public String getName() { return NAME; } /** {@inheritDoc} */ public boolean inConstructor() { return false; } /** {@inheritDoc} */ public boolean inField() { return false; } /** {@inheritDoc} */ public boolean inMethod() { return false; } /** {@inheritDoc} */ public boolean inOverview() { return false; } /** {@inheritDoc} */ public boolean inPackage() { return false; } /** {@inheritDoc} */ public boolean inType() { return true; } /** {@inheritDoc} */ public boolean isInlineTag() { return false; } /** * Register this Taglet. * * @param tagletMap the map to register this tag to. */ public static void register( Map tagletMap ) { PlexusComponentTaglet tag = new PlexusComponentTaglet(); Taglet t = (Taglet) tagletMap.get( tag.getName() ); if ( t != null ) { tagletMap.remove( tag.getName() ); } tagletMap.put( tag.getName(), tag ); } } ././@LongLink0000000000000000000000000000020000000000000011555 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-component-javadoc/src/main/java/org/codehaus/plexus/javadoc/PlexusRequirementTaglet.javaplexus-containers-1.0~beta3.0.7/plexus-component-javadoc/src/main/java/org/codehaus/plexus/javadoc/P0000644000175000017500000001041210777725005033437 0ustar twernertwernerpackage org.codehaus.plexus.javadoc; /* * 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.Map; import com.sun.tools.doclets.Taglet; /** * Tagging a field with @plexus.requirement will tell plexus to inject the required component or * list of components before the component itself is started. Fields can be of the type of the Interface * defining the component you wish to be injected or of type java.util.List or java.util.Map. *
* Fields of type java.lang.List will have a list of components injected whereas a field of * type java.lang.Map will have a mapping in the form of role-hint -> component. * The role parameter is required if using a List or Map whereas a role-hint is * not allowed. * * * * * * * * * * * * * * * * * * *
ParameterRequiredDescription
roleNo. Yes if the field is a List or a MapThe role parameter is used to tell plexus what Component role you are interested in. * For singleton fields their type is used as a default.
role-hintNo. Not allowed if the field is a List or a MapLinks to the role-hint defined by a component when looking up a component. * Not allowed with List or Map fields, as they return all role-hints.
* * @see * http://plexus.codehaus.org/guides/developer-guide/appendices/javadoc-tags-reference.html * * @author Vincent Siveton * @version $Id: PlexusRequirementTaglet.java 7277 2008-04-11 18:12:21Z bentmann $ */ public class PlexusRequirementTaglet extends AbstractPlexusTaglet { private static final String NAME = "plexus.requirement"; private static final String HEADER = "Plexus requirement"; /** {@inheritDoc} */ public String getHeader() { return HEADER; } /** {@inheritDoc} */ public String getName() { return NAME; } /** {@inheritDoc} */ public boolean inConstructor() { return false; } /** {@inheritDoc} */ public boolean inField() { return true; } /** {@inheritDoc} */ public boolean inMethod() { return false; } /** {@inheritDoc} */ public boolean inOverview() { return false; } /** {@inheritDoc} */ public boolean inPackage() { return false; } /** {@inheritDoc} */ public boolean inType() { return false; } /** {@inheritDoc} */ public boolean isInlineTag() { return false; } /** * Register this Taglet. * * @param tagletMap the map to register this tag to. */ public static void register( Map tagletMap ) { PlexusRequirementTaglet tag = new PlexusRequirementTaglet(); Taglet t = (Taglet) tagletMap.get( tag.getName() ); if ( t != null ) { tagletMap.remove( tag.getName() ); } tagletMap.put( tag.getName(), tag ); } } plexus-containers-1.0~beta3.0.7/plexus-component-javadoc/pom.xml0000644000175000017500000000504411202563456024664 0ustar twernertwerner 4.0.0 org.codehaus.plexus plexus-containers 1.0-beta-3.0.7 plexus-component-javadoc Plexus :: Javadoc Taglets 2007 maven-javadoc-plugin maven-jxr-plugin default-tools.jar java.vendor Sun Microsystems Inc. com.sun tools 1.4.2 system ${java.home}/../lib/tools.jar integration-tests maven.test.skip !true maven-invoker-plugin 1.3 true ${project.build.directory}/it setup verify ${project.build.directory}/local-repo src/it/settings.xml clean javadoc:javadoc integration-test install run plexus-containers-1.0~beta3.0.7/src/0000755000175000017500000000000011225200005017165 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/src/site/0000755000175000017500000000000011225200005020131 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/src/site/site.xml0000644000175000017500000000115710777725005021652 0ustar twernertwerner Plexus http://plexus.codehaus.org/ /images/plexus-logo.png org.codehaus.plexus plexus-stylus-skin 1.0-SNAPSHOT plexus-containers-1.0~beta3.0.7/plexus-component-annotations/0000755000175000017500000000000011225200005024251 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-component-annotations/src/0000755000175000017500000000000011225200005025040 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-component-annotations/src/main/0000755000175000017500000000000011225200005025764 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-component-annotations/src/main/java/0000755000175000017500000000000011225200005026705 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-component-annotations/src/main/java/org/0000755000175000017500000000000011225200005027474 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-component-annotations/src/main/java/org/codehaus/0000755000175000017500000000000011225200005031267 5ustar twernertwernerplexus-containers-1.0~beta3.0.7/plexus-component-annotations/src/main/java/org/codehaus/plexus/0000755000175000017500000000000011225200005032607 5ustar twernertwerner././@LongLink0000000000000000000000000000015200000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-component-annotations/src/main/java/org/codehaus/plexus/component/plexus-containers-1.0~beta3.0.7/plexus-component-annotations/src/main/java/org/codehaus/plexus/compo0000755000175000017500000000000011225200005033645 5ustar twernertwerner././@LongLink0000000000000000000000000000016600000000000011570 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-component-annotations/src/main/java/org/codehaus/plexus/component/annotations/plexus-containers-1.0~beta3.0.7/plexus-component-annotations/src/main/java/org/codehaus/plexus/compo0000755000175000017500000000000011225200005033645 5ustar twernertwerner././@LongLink0000000000000000000000000000021000000000000011556 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-component-annotations/src/main/java/org/codehaus/plexus/component/annotations/Configuration.javaplexus-containers-1.0~beta3.0.7/plexus-component-annotations/src/main/java/org/codehaus/plexus/compo0000644000175000017500000000232610677766643033715 0ustar twernertwerner/* * Copyright (C) 2007 the original author or authors. * * Licensed 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.codehaus.plexus.component.annotations; import java.lang.annotation.Documented; import static java.lang.annotation.ElementType.FIELD; import java.lang.annotation.Inherited; import java.lang.annotation.Retention; import static java.lang.annotation.RetentionPolicy.RUNTIME; import java.lang.annotation.Target; /** * Marks a field as a configuration element with a default falue. * * @version $Id: Configuration.java 6916 2007-09-30 18:40:35Z user57 $ */ @Documented @Retention(RUNTIME) @Target(FIELD) @Inherited public @interface Configuration { String name() default ""; String value(); } ././@LongLink0000000000000000000000000000020600000000000011563 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-component-annotations/src/main/java/org/codehaus/plexus/component/annotations/Requirement.javaplexus-containers-1.0~beta3.0.7/plexus-component-annotations/src/main/java/org/codehaus/plexus/compo0000644000175000017500000000263010677766643033713 0ustar twernertwerner/* * Copyright (C) 2007 the original author or authors. * * Licensed 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.codehaus.plexus.component.annotations; import java.lang.annotation.Documented; import static java.lang.annotation.ElementType.FIELD; import static java.lang.annotation.ElementType.METHOD; import java.lang.annotation.Inherited; import java.lang.annotation.Retention; import static java.lang.annotation.RetentionPolicy.RUNTIME; import java.lang.annotation.Target; /** * Configures a requirement. * * @version $Id: Requirement.java 6916 2007-09-30 18:40:35Z user57 $ */ @Documented @Retention(RUNTIME) @Target({ FIELD, METHOD }) @Inherited public @interface Requirement { Class role() default Object.class; String hint() default ""; // // HACK: This is here to support component requirement lists, which can take a list of hints // String[] hints() default {}; } ././@LongLink0000000000000000000000000000020400000000000011561 Lustar rootrootplexus-containers-1.0~beta3.0.7/plexus-component-annotations/src/main/java/org/codehaus/plexus/component/annotations/Component.javaplexus-containers-1.0~beta3.0.7/plexus-component-annotations/src/main/java/org/codehaus/plexus/compo0000644000175000017500000000311710700072150033656 0ustar twernertwerner/* * Copyright (C) 2007 the original author or authors. * * Licensed 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.codehaus.plexus.component.annotations; import java.lang.annotation.Documented; import static java.lang.annotation.ElementType.TYPE; import java.lang.annotation.Inherited; import java.lang.annotation.Retention; import static java.lang.annotation.RetentionPolicy.RUNTIME; import java.lang.annotation.Target; /** * Marks a class as a Plexus component. * * @version $Id: Component.java 6920 2007-10-01 04:15:36Z user57 $ */ @Documented @Retention(RUNTIME) @Target(TYPE) @Inherited public @interface Component { Class role(); String hint() default ""; String version() default ""; String alias() default ""; String description() default ""; String lifecycleHandler() default ""; String instantiationStrategy() default ""; String factory() default ""; String type() default ""; String profile() default ""; String composer() default ""; String configurator() default ""; boolean isolatedRealm() default false; } plexus-containers-1.0~beta3.0.7/plexus-component-annotations/pom.xml0000644000175000017500000000113211202563456025604 0ustar twernertwerner 4.0.0 org.codehaus.plexus plexus-containers 1.0-beta-3.0.7 plexus-component-annotations Plexus :: Component Annotations plexus-containers-1.0~beta3.0.7/pom.xml0000644000175000017500000001002011202563456017725 0ustar twernertwerner 4.0.0 org.codehaus.plexus plexus 2.0.2 plexus-containers 1.0-beta-3.0.7 1.4 1.4.5 3.4 UTF-8 pom Parent :: Plexus Containers plexus-component-annotations plexus-component-metadata plexus-component-javadoc plexus-container-default scm:svn:http://svn.codehaus.org/plexus/plexus-containers/tags/plexus-containers-1.0-beta-3.0.7 scm:svn:https://svn.codehaus.org/plexus/plexus-containers/tags/plexus-containers-1.0-beta-3.0.7 http://fisheye.codehaus.org/browse/plexus/plexus-containers/tags/plexus-containers-1.0-beta-3.0.7 junit junit 3.8.2 org.codehaus.plexus plexus-container-default ${project.version} org.codehaus.plexus plexus-component-annotations ${project.version} org.codehaus.plexus plexus-component-metadata ${project.version} org.codehaus.plexus plexus-classworlds ${classWorldsVersion} org.codehaus.plexus plexus-utils ${plexusUtilsVersion} org.apache.xbean xbean-reflect ${xbeanReflectVersion} com.thoughtworks.qdox qdox 1.6.3 jdom jdom 1.0 org.apache.maven maven-plugin-api 2.0.9 org.apache.maven maven-model 2.0.9 org.apache.maven maven-project 2.0.9 com.google.code.google-collections google-collect snapshot-20080530 maven-compiler-plugin 1.5 1.5 ${project.build.sourceEncoding}