Skip to content

Commit

Permalink
Add NamedParam support for gradle-2.5 with backport to 2.4 (spockfram…
Browse files Browse the repository at this point in the history
  • Loading branch information
leonard84 authored Oct 7, 2018
1 parent 0886296 commit 9afec6f
Show file tree
Hide file tree
Showing 6 changed files with 303 additions and 24 deletions.
1 change: 1 addition & 0 deletions internal-backport/internal-backport.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
// WARNING: This is Module is only present here so that we can build with 2.4 as well, the code will not be shipped.
42 changes: 42 additions & 0 deletions internal-backport/src/main/java/groovy/transform/NamedParam.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package groovy.transform;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;


/**
* WARNING: This is only present here so that we can build with 2.4 as well, the code will not be shipped.
*
* Marker interface used to indicate that the name of the annotated parameter
* (or specified optional name) is a valid key name when using named arguments
* and that the parameter type is applicable for type checking purposes.
*
* @since 2.5.0
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.PARAMETER)
public @interface NamedParam {
String value() default Undefined.STRING;
Class type() default Object.class;
boolean required() default false;
}
37 changes: 37 additions & 0 deletions internal-backport/src/main/java/groovy/transform/NamedParams.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package groovy.transform;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
* WARNING: This is only present here so that we can build with 2.4 as well, the code will not be shipped.
*
* Collector annotation for {@link NamedParam}.
*
* @since 2.5.0
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.PARAMETER)
public @interface NamedParams {
NamedParam[] value();
}
4 changes: 4 additions & 0 deletions settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ include "spock-spring:spring2-test"
include "spock-spring:spring3-test"
include "spock-guice"

if ((System.getProperty("variant") as BigDecimal ?: 2.4) == 2.4) {
include "internal-backport"
}

// https://issues.apache.org/jira/projects/TAP5/issues/TAP5-2588
if (JavaVersion.current().isJava7() || JavaVersion.current().isJava8()) {
include "spock-tapestry"
Expand Down
3 changes: 3 additions & 0 deletions spock-core/core.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@ dependencies {
compile libs.bytebuddy, optional
compile libs.cglib, optional
compile libs.objenesis, optional
if (variant == 2.4) {
compileOnly project(':internal-backport')
}

coreConsoleRuntime groovyConsoleExtraDependency
}
Expand Down
Loading

0 comments on commit 9afec6f

Please sign in to comment.