Is there a specific problem that requires a dedicated ThreadSafe annotation instead of a simple attribute in the Mojo annotation?
BTW, Goal annotation instead of Mojo? Regards, Hervé Le samedi 28 avril 2012 21:23:11 ol...@apache.org a écrit : > Author: olamy > Date: Sat Apr 28 21:23:10 2012 > New Revision: 1331837 > > URL: http://svn.apache.org/viewvc?rev=1331837&view=rev > Log: > [MPLUGIN-189] add java 5 annotations support to mark Mojo sources > > Added: > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/ > > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/pom. > xml (with props) > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > main/ > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > main/java/ > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > main/java/org/ > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > main/java/org/apache/ > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > main/java/org/apache/maven/ > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > main/java/org/apache/maven/tools/ > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > main/java/org/apache/maven/tools/plugin/ > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > main/java/org/apache/maven/tools/plugin/annotations/ > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > main/java/org/apache/maven/tools/plugin/annotations/Component.java (with > props) > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > main/java/org/apache/maven/tools/plugin/annotations/Execute.java (with > props) > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > main/java/org/apache/maven/tools/plugin/annotations/Goal.java (with props) > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > main/java/org/apache/maven/tools/plugin/annotations/LifecyclePhase.java > (with props) > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > main/java/org/apache/maven/tools/plugin/annotations/Parameter.java (with > props) > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > main/java/org/apache/maven/tools/plugin/annotations/ThreadSafe.java (with > props) Modified: > maven/plugin-tools/branches/MPLUGIN-189/pom.xml > > Added: > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/pom. > xml URL: > http://svn.apache.org/viewvc/maven/plugin-tools/branches/MPLUGIN-189/maven- > plugin-tools-annotations/pom.xml?rev=1331837&view=auto > =========================================================================== > === --- > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/pom. > xml (added) +++ > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/pom. > xml Sat Apr 28 21:23:10 2012 @@ -0,0 +1,14 @@ > +<?xml version="1.0" encoding="UTF-8"?> > +<project xmlns="http://maven.apache.org/POM/4.0.0" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 > http://maven.apache.org/xsd/maven-4.0.0.xsd"> + > <modelVersion>4.0.0</modelVersion> > + <parent> > + <groupId>org.apache.maven.plugin-tools</groupId> > + <artifactId>maven-plugin-tools</artifactId> > + <version>3.0-SNAPSHOT</version> > + </parent> > + > + <artifactId>maven-plugin-tools-annotations</artifactId> > + > + <name>Maven Plugin Tools Annotations</name> > + > +</project> > > Propchange: > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/pom. > xml > --------------------------------------------------------------------------- > --- svn:eol-style = native > > Propchange: > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/pom. > xml > --------------------------------------------------------------------------- > --- svn:keywords = Author Date Id Revision > > Added: > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > main/java/org/apache/maven/tools/plugin/annotations/Component.java URL: > http://svn.apache.org/viewvc/maven/plugin-tools/branches/MPLUGIN-189/maven- > plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/annotat > ions/Component.java?rev=1331837&view=auto > =========================================================================== > === --- > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > main/java/org/apache/maven/tools/plugin/annotations/Component.java (added) > +++ > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > main/java/org/apache/maven/tools/plugin/annotations/Component.java Sat Apr > 28 21:23:10 2012 @@ -0,0 +1,40 @@ > +package org.apache.maven.tools.plugin.annotations; > +/* > + * Licensed to the Apache Software Foundation (ASF) under one > + * or more contributor license agreements. See the NOTICE file > + * distributed with this work for additional information > + * regarding copyright ownership. The ASF licenses this file > + * to you under the Apache License, Version 2.0 (the > + * "License"); you may not use this file except in compliance > + * with the License. You may obtain a copy of the License at > + * > + * http://www.apache.org/licenses/LICENSE-2.0 > + * > + * Unless required by applicable law or agreed to in writing, > + * software distributed under the License is distributed on an > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY > + * KIND, either express or implied. See the License for the > + * specific language governing permissions and limitations > + * under the License. > + */ > + > +import java.lang.annotation.Documented; > +import java.lang.annotation.ElementType; > +import java.lang.annotation.Inherited; > +import java.lang.annotation.Retention; > +import java.lang.annotation.RetentionPolicy; > +import java.lang.annotation.Target; > + > +/** > + * @author Olivier Lamy > + */ > +@Documented > +@Retention( RetentionPolicy.RUNTIME ) > +@Target( { ElementType.FIELD, ElementType.METHOD } ) > +@Inherited > +public @interface Component > +{ > + String role() default ""; > + > + String roleHint() default ""; > +} > > Propchange: > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > main/java/org/apache/maven/tools/plugin/annotations/Component.java > --------------------------------------------------------------------------- > --- svn:eol-style = native > > Propchange: > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > main/java/org/apache/maven/tools/plugin/annotations/Component.java > --------------------------------------------------------------------------- > --- svn:keywords = Author Date Id Revision > > Added: > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > main/java/org/apache/maven/tools/plugin/annotations/Execute.java URL: > http://svn.apache.org/viewvc/maven/plugin-tools/branches/MPLUGIN-189/maven- > plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/annotat > ions/Execute.java?rev=1331837&view=auto > =========================================================================== > === --- > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > main/java/org/apache/maven/tools/plugin/annotations/Execute.java (added) +++ > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > main/java/org/apache/maven/tools/plugin/annotations/Execute.java Sat Apr 28 > 21:23:10 2012 @@ -0,0 +1,31 @@ > +package org.apache.maven.tools.plugin.annotations; > +/* > + * Licensed to the Apache Software Foundation (ASF) under one > + * or more contributor license agreements. See the NOTICE file > + * distributed with this work for additional information > + * regarding copyright ownership. The ASF licenses this file > + * to you under the Apache License, Version 2.0 (the > + * "License"); you may not use this file except in compliance > + * with the License. You may obtain a copy of the License at > + * > + * http://www.apache.org/licenses/LICENSE-2.0 > + * > + * Unless required by applicable law or agreed to in writing, > + * software distributed under the License is distributed on an > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY > + * KIND, either express or implied. See the License for the > + * specific language governing permissions and limitations > + * under the License. > + */ > + > +/** > + * @author Olivier Lamy > + */ > +public @interface Execute > +{ > + LifecyclePhase phase() default LifecyclePhase.NONE; > + > + String goal() default ""; > + > + String lifecycle() default ""; > +} > > Propchange: > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > main/java/org/apache/maven/tools/plugin/annotations/Execute.java > --------------------------------------------------------------------------- > --- svn:eol-style = native > > Propchange: > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > main/java/org/apache/maven/tools/plugin/annotations/Execute.java > --------------------------------------------------------------------------- > --- svn:keywords = Author Date Id Revision > > Added: > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > main/java/org/apache/maven/tools/plugin/annotations/Goal.java URL: > http://svn.apache.org/viewvc/maven/plugin-tools/branches/MPLUGIN-189/maven- > plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/annotat > ions/Goal.java?rev=1331837&view=auto > =========================================================================== > === --- > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > main/java/org/apache/maven/tools/plugin/annotations/Goal.java (added) +++ > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > main/java/org/apache/maven/tools/plugin/annotations/Goal.java Sat Apr 28 > 21:23:10 2012 @@ -0,0 +1,63 @@ > +package org.apache.maven.tools.plugin.annotations; > +/* > + * Licensed to the Apache Software Foundation (ASF) under one > + * or more contributor license agreements. See the NOTICE file > + * distributed with this work for additional information > + * regarding copyright ownership. The ASF licenses this file > + * to you under the Apache License, Version 2.0 (the > + * "License"); you may not use this file except in compliance > + * with the License. You may obtain a copy of the License at > + * > + * http://www.apache.org/licenses/LICENSE-2.0 > + * > + * Unless required by applicable law or agreed to in writing, > + * software distributed under the License is distributed on an > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY > + * KIND, either express or implied. See the License for the > + * specific language governing permissions and limitations > + * under the License. > + */ > + > + > +import java.lang.annotation.Documented; > +import java.lang.annotation.ElementType; > +import java.lang.annotation.Inherited; > +import java.lang.annotation.Retention; > +import java.lang.annotation.RetentionPolicy; > +import java.lang.annotation.Target; > + > +/** > + * @author Olivier Lamy > + */ > +@Documented > +@Retention( RetentionPolicy.RUNTIME ) > +@Target( ElementType.TYPE ) > +@Inherited > +public @interface Goal > +{ > + String name(); > + > + LifecyclePhase defaultPhase() default LifecyclePhase.NONE; > + > + String requiresDependencyResolution() default "runtime"; > + > + String requiresDependencyCollection() default "runtime"; > + > + String instantiationStrategy() default "per-lookup"; > + > + String executionStrategy() default "once-per-session"; > + > + boolean requiresProject() default true; > + > + boolean requiresReports() default false; > + > + boolean aggregator() default false; > + > + boolean requiresDirectInvocation() default false; > + > + boolean requiresOnline() default false; > + > + boolean inheritByDefault() default true; > + > + String configurator() default ""; > +} > > Propchange: > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > main/java/org/apache/maven/tools/plugin/annotations/Goal.java > --------------------------------------------------------------------------- > --- svn:eol-style = native > > Propchange: > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > main/java/org/apache/maven/tools/plugin/annotations/Goal.java > --------------------------------------------------------------------------- > --- svn:keywords = Author Date Id Revision > > Added: > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > main/java/org/apache/maven/tools/plugin/annotations/LifecyclePhase.java URL: > http://svn.apache.org/viewvc/maven/plugin-tools/branches/MPLUGIN-189/maven- > plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/annotat > ions/LifecyclePhase.java?rev=1331837&view=auto > =========================================================================== > === --- > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > main/java/org/apache/maven/tools/plugin/annotations/LifecyclePhase.java > (added) +++ > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > main/java/org/apache/maven/tools/plugin/annotations/LifecyclePhase.java Sat > Apr 28 21:23:10 2012 @@ -0,0 +1,74 @@ > +package org.apache.maven.tools.plugin.annotations; > +/* > + * Licensed to the Apache Software Foundation (ASF) under one > + * or more contributor license agreements. See the NOTICE file > + * distributed with this work for additional information > + * regarding copyright ownership. The ASF licenses this file > + * to you under the Apache License, Version 2.0 (the > + * "License"); you may not use this file except in compliance > + * with the License. You may obtain a copy of the License at > + * > + * http://www.apache.org/licenses/LICENSE-2.0 > + * > + * Unless required by applicable law or agreed to in writing, > + * software distributed under the License is distributed on an > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY > + * KIND, either express or implied. See the License for the > + * specific language governing permissions and limitations > + * under the License. > + */ > + > +/** > + * @author Olivier Lamy > + */ > +public enum LifecyclePhase > +{ > + > + VALIDATE( "validate" ), > + INITIALIZE( "initialize" ), > + GENERATE_SOURCES( "generate-sources" ), > + PROCESS_SOURCES( "process-sources" ), > + GENERATE_RESOURCES( "generate-resources" ), > + PROCESS_RESOURCES( "process-resources" ), > + COMPILE( "compile" ), > + PROCESS_CLASSES( "process-classes" ), > + GENERATE_TEST_SOURCES( "generate-test-sources" ), > + PROCESS_TEST_SOURCES( "process-test-sources" ), > + GENERATE_TEST_RESOURCES( "generate-test-resources" ), > + PROCESS_TEST_RESOURCES( "process-test-resources" ), > + TEST_COMPILE( "test-compile" ), > + PROCESS_TEST_CLASSES( "process-test-classes" ), > + TEST( "test" ), > + PREPARE_PACKAGE( "prepare-package" ), > + PACKAGE( "package" ), > + PRE_INTEGRATION_TEST( "pre-integration-test" ), > + INTEGRATION_TEST( "integration-test" ), > + POST_INTEGRATION_TEST( "post-integration-test" ), > + VERIFY( "verify" ), > + INSTALL( "install" ), > + DEPLOY( "deploy" ), > + > + PRE_CLEAN( "pre-clean" ), > + CLEAN( "clean" ), > + POST_CLEAN( "post-clean" ), > + > + PRE_SITE( "pre-site" ), > + SITE( "site" ), > + POST_SITE( "post-site" ), > + SITE_DEPLOY( "site-deploy" ), > + > + NONE( "" ); > + > + private final String id; > + > + LifecyclePhase( String id ) > + { > + this.id = id; > + } > + > + public String id() > + { > + return this.id; > + } > + > +} > > Propchange: > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > main/java/org/apache/maven/tools/plugin/annotations/LifecyclePhase.java > --------------------------------------------------------------------------- > --- svn:eol-style = native > > Propchange: > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > main/java/org/apache/maven/tools/plugin/annotations/LifecyclePhase.java > --------------------------------------------------------------------------- > --- svn:keywords = Author Date Id Revision > > Added: > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > main/java/org/apache/maven/tools/plugin/annotations/Parameter.java URL: > http://svn.apache.org/viewvc/maven/plugin-tools/branches/MPLUGIN-189/maven- > plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/annotat > ions/Parameter.java?rev=1331837&view=auto > =========================================================================== > === --- > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > main/java/org/apache/maven/tools/plugin/annotations/Parameter.java (added) > +++ > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > main/java/org/apache/maven/tools/plugin/annotations/Parameter.java Sat Apr > 28 21:23:10 2012 @@ -0,0 +1,35 @@ > +package org.apache.maven.tools.plugin.annotations; > +/* > + * Licensed to the Apache Software Foundation (ASF) under one > + * or more contributor license agreements. See the NOTICE file > + * distributed with this work for additional information > + * regarding copyright ownership. The ASF licenses this file > + * to you under the Apache License, Version 2.0 (the > + * "License"); you may not use this file except in compliance > + * with the License. You may obtain a copy of the License at > + * > + * http://www.apache.org/licenses/LICENSE-2.0 > + * > + * Unless required by applicable law or agreed to in writing, > + * software distributed under the License is distributed on an > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY > + * KIND, either express or implied. See the License for the > + * specific language governing permissions and limitations > + * under the License. > + */ > + > +/** > + * @author Olivier Lamy > + */ > +public @interface Parameter > +{ > + String alias() default ""; > + > + String expression() default ""; > + > + String defaultValue() default ""; > + > + boolean required() default false; > + > + boolean readonly() default false; > +} > > Propchange: > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > main/java/org/apache/maven/tools/plugin/annotations/Parameter.java > --------------------------------------------------------------------------- > --- svn:eol-style = native > > Propchange: > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > main/java/org/apache/maven/tools/plugin/annotations/Parameter.java > --------------------------------------------------------------------------- > --- svn:keywords = Author Date Id Revision > > Added: > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > main/java/org/apache/maven/tools/plugin/annotations/ThreadSafe.java URL: > http://svn.apache.org/viewvc/maven/plugin-tools/branches/MPLUGIN-189/maven- > plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/annotat > ions/ThreadSafe.java?rev=1331837&view=auto > =========================================================================== > === --- > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > main/java/org/apache/maven/tools/plugin/annotations/ThreadSafe.java (added) > +++ > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > main/java/org/apache/maven/tools/plugin/annotations/ThreadSafe.java Sat Apr > 28 21:23:10 2012 @@ -0,0 +1,18 @@ > +package org.apache.maven.tools.plugin.annotations; > + > +import java.lang.annotation.Documented; > +import java.lang.annotation.Inherited; > +import java.lang.annotation.Retention; > +import java.lang.annotation.Target; > + > +import static java.lang.annotation.ElementType.TYPE; > +import static java.lang.annotation.RetentionPolicy.RUNTIME; > + > +@Documented > +@Inherited > +@Retention( RUNTIME ) > +@Target( { TYPE } ) > +public @interface ThreadSafe > +{ > + boolean value() default true; > +} > > Propchange: > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > main/java/org/apache/maven/tools/plugin/annotations/ThreadSafe.java > --------------------------------------------------------------------------- > --- svn:eol-style = native > > Propchange: > maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/ > main/java/org/apache/maven/tools/plugin/annotations/ThreadSafe.java > --------------------------------------------------------------------------- > --- svn:keywords = Author Date Id Revision > > Modified: maven/plugin-tools/branches/MPLUGIN-189/pom.xml > URL: > http://svn.apache.org/viewvc/maven/plugin-tools/branches/MPLUGIN-189/pom.xm > l?rev=1331837&r1=1331836&r2=1331837&view=diff > =========================================================================== > === --- maven/plugin-tools/branches/MPLUGIN-189/pom.xml (original) > +++ maven/plugin-tools/branches/MPLUGIN-189/pom.xml Sat Apr 28 21:23:10 2012 > @@ -1,5 +1,4 @@ > -<?xml version='1.0' encoding='UTF-8'?> > - > +<?xml version="1.0" encoding="UTF-8"?> > <!-- > ~ Licensed to the Apache Software Foundation (ASF) under one > ~ or more contributor license agreements. See the NOTICE file > @@ -18,7 +17,6 @@ > ~ specific language governing permissions and limitations > ~ under the License. > --> > - > <project xmlns="http://maven.apache.org/POM/4.0.0" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 > http://maven.apache.org/xsd/maven-4.0.0.xsd"> > <modelVersion>4.0.0</modelVersion> > > @@ -132,6 +130,7 @@ > <module>maven-plugin-plugin</module> > <module>maven-plugin-tools-model</module> > <module>maven-plugin-tools-javadoc</module> > + <module>maven-plugin-tools-annotations</module> > </modules> > > <scm> > @@ -178,6 +177,11 @@ > </dependency> > <dependency> > <groupId>org.apache.maven.plugin-tools</groupId> > + <artifactId>maven-plugin-tools-annotations</artifactId> > + <version>${project.version}</version> > + </dependency> > + <dependency> > + <groupId>org.apache.maven.plugin-tools</groupId> > <artifactId>maven-plugin-tools-beanshell</artifactId> > <version>${project.version}</version> > </dependency> > @@ -309,4 +313,4 @@ > </reporting> > </profile> > </profiles> > -</project> > +</project> > \ No newline at end of file --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org For additional commands, e-mail: dev-h...@maven.apache.org