diff --git a/CHANGELOG.md b/CHANGELOG.md index 918c3eb..9ec418d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,28 @@ Changelog === +Version 23.1.0 +--- +* Added new annotation: `@ApiStatus.Obsolete`. + +Version 23.0.0 +--- +* Added new annotations: `@BlockingExecutor` and `@NonBlockingExecutor`. + +Version 22.0.0 +--- +* Added new annotations: `@Blocking` and `@NonBlocking`. + +Version 21.0.1 +--- +* Multi-Release Jar: Manifest fixed + +Version 21.0.0 +--- +* Added new annotation: `@UnknownNullability`. +* Proper JPMS module. +* `JdkConstants` deprecated. + Version 20.1.0 --- * Added `TYPE_USE` target for `PropertyKey` annotation. diff --git a/KEYS b/KEYS new file mode 100644 index 0000000..dc78d6d --- /dev/null +++ b/KEYS @@ -0,0 +1,102 @@ +pub rsa3072/0x1F7A8F87B9D8F501 2021-03-15 [C] [expires: 2026-03-15] + Key fingerprint = B46D C71E 03FE EB7F 89D1 F249 1F7A 8F87 B9D8 F501 +uid [ full ] Download +sub rsa3072/0x7D1BE4480B61E2A7 2021-03-15 [E] [expires: 2023-03-15] +sub rsa3072/0xC2148900BCD3C2AF 2021-03-15 [S] [expires: 2023-03-15] +sub rsa3072/0xCFF46EE3C17E53E9 2021-03-15 [A] [expires: 2023-03-15] + +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +2ony +=N9Af +-----END PGP PUBLIC KEY BLOCK----- diff --git a/README.md b/README.md index 87fef86..fdc6e28 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,22 @@ # Annotations for JVM-based languages -[![official JetBrains project](https://jb.gg/badges/official.svg)](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.jetbrains/annotations/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.jetbrains/annotations) +[![official JetBrains project](https://jb.gg/badges/official.svg)](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.jetbrains/annotations/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.jetbrains/annotations) [![javadoc](https://javadoc.io/badge2/org.jetbrains/annotations/javadoc.svg)](https://javadoc.io/doc/org.jetbrains/annotations) A set of Java annotations which can be used in JVM-based languages. They serve as an additional documentation and can be interpreted by IDEs and static analysis tools to improve code analysis. [Change Log](CHANGELOG.md) | [Contributing](CONTRIBUTING.md) | [Code of Conduct](CODE_OF_CONDUCT.md) +## Documentation + +- [JavaDoc](https://javadoc.io/doc/org.jetbrains/annotations) +- [JavaDoc](https://javadoc.io/doc/org.jetbrains/annotations-java5) for legacy Java 5.0 compatible package + ## Using the annotations -The annotations are published on [Maven Central](https://repo1.maven.org/maven2/org/jetbrains/annotations/) and [JCenter](https://jcenter.bintray.com/org/jetbrains/annotations/). To add a dependency +The annotations are published on [Maven Central](https://repo1.maven.org/maven2/org/jetbrains/annotations/). To add a dependency using gradle write the following in the `build.gradle` file: ``` dependencies { - compileOnly 'org.jetbrains:annotations:20.1.0' + compileOnly 'org.jetbrains:annotations:23.1.0' } ``` @@ -20,7 +25,8 @@ To add a dependency using Maven, write the following in `pom.xml`: org.jetbrains annotations - 20.1.0 + 23.1.0 + provided ``` diff --git a/build.gradle b/build.gradle index 1742bd8..94aaab4 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,7 @@ +import jetbrains.sign.GpgSignSignatoryProvider + /* - * Copyright 2000-2020 JetBrains s.r.o. + * Copyright 2000-2021 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,15 +18,21 @@ buildscript { repositories { - jcenter() + maven { url "https://packages.jetbrains.team/maven/p/jcs/maven" } } dependencies { - classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3' + classpath 'com.jetbrains:jet-sign:38' } } +plugins { + id "io.github.gradle-nexus.publish-plugin" version "1.1.0" +} + ext.projectVersion = projectVersion -if (System.getenv('BINTRAY_USER') == null) { +ext.publishingUser = System.getenv('PUBLISHING_USER') +ext.publishingPassword = System.getenv('PUBLISHING_PASSWORD') +if (ext.publishingPassword == null) { ext.projectVersion = ext.projectVersion + '-SNAPSHOT' } println "##teamcity[setParameter name='java.annotations.version' value='$projectVersion']" @@ -34,10 +42,19 @@ allprojects { version rootProject.ext.projectVersion } +nexusPublishing { + repositories { + sonatype { + username = rootProject.ext.publishingUser + password = rootProject.ext.publishingPassword + } + } +} + subprojects { apply plugin: 'java' apply plugin: 'maven-publish' - apply plugin: 'com.jfrog.bintray' + apply plugin: 'signing' repositories { mavenCentral() @@ -48,17 +65,31 @@ project(':java5').archivesBaseName = 'annotations-java5' project(':java8').archivesBaseName = 'annotations' configure([project(':java5'), project(':java8')]) { + dependencies { + compile project(':module-info') + } + task mainJar(type: Jar) { - manifest { - attributes('Automatic-Module-Name': 'org.jetbrains.' + archivesBaseName.replace('-', '_')) - } + into ("META-INF/versions/9", { + from (project(':module-info').sourceSets.main.output, { + // Skip extra files from common sources compiled with Java 9 target + include("module-info.class") + }) + }) + manifest.attributes("Multi-Release": true) + duplicatesStrategy = DuplicatesStrategy.FAIL } task sourceJar(type: Jar) { + into ("META-INF/versions/9", { + from project(':module-info').sourceSets.main.java + }) + duplicatesStrategy = DuplicatesStrategy.FAIL baseName = archivesBaseName + '-sources' } task javadocJar(type: Jar) { + duplicatesStrategy = DuplicatesStrategy.FAIL from javadoc } @@ -69,6 +100,8 @@ configure([project(':java5'), project(':java8')]) { publishing { publications { mavenJava(MavenPublication) { + group rootProject.group + version rootProject.ext.projectVersion artifactId archivesBaseName artifact mainJar artifact sourceJar { @@ -109,76 +142,9 @@ configure([project(':java5'), project(':java8')]) { } } } - if (System.getenv('BINTRAY_USER') != null) { - bintray { - user = System.getenv('BINTRAY_USER') - key = System.getenv('BINTRAY_KEY') - publish = true - publications = ['mavenJava'] - pkg { - userOrg = 'jetbrains' - repo = 'intellij-redist' - name = 'org.jetbrains:' + archivesBaseName - version { - name = rootProject.ext.projectVersion - } - } - } - } - -} - -configure(project(':java5')) { - def generatedSourcesDir = "${buildDir}/generated/" - - sourceSets { - generated { - java.srcDir generatedSourcesDir - } - } - - task generateSrc(type: Copy) { - from project(':common').sourceSets.main.java - into generatedSourcesDir - filter { line -> line.replaceAll(", ElementType.TYPE_USE", "")} - } - - compileJava { - dependsOn(generateSrc) - source sourceSets.generated.java - } - - mainJar { - from sourceSets.main.output - } - - sourceJar { - dependsOn(generateSrc) - from sourceSets.generated.java - } - - javadoc { - source = [sourceSets.generated.java] - } -} - -configure(project(':java8')) { - dependencies { - compile project(':common') - } - mainJar { - from sourceSets.main.output - from project(':common').sourceSets.main.output - } - - sourceJar { - from sourceSets.main.java - from project(':common').sourceSets.main.java - } - - javadoc { - source = [sourceSets.main.java, project(':common').sourceSets.main.java] + signing { + sign publishing.publications + signatories = new GpgSignSignatoryProvider() } } - diff --git a/common/build.gradle b/common/build.gradle index b995a55..cf34d15 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -1,5 +1,5 @@ /* - * Copyright 2000-2020 JetBrains s.r.o. + * Copyright 2000-2021 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,3 +15,4 @@ */ sourceCompatibility = 1.8 +javadoc.enabled = false diff --git a/common/src/main/java/org/intellij/lang/annotations/Flow.java b/common/src/main/java/org/intellij/lang/annotations/Flow.java index 713a1fc..ee73870 100644 --- a/common/src/main/java/org/intellij/lang/annotations/Flow.java +++ b/common/src/main/java/org/intellij/lang/annotations/Flow.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2020 JetBrains s.r.o. + * Copyright 2000-2021 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -67,7 +67,7 @@ /** * true if the data source is container and we should track not the expression but its contents.
* E.g. the java.util.ArrayList constructor takes the collection and stores its contents:
- * ArrayList(
{@code @Flow(sourceIsContainer=true, targetIsContainer=true) Collection collection }
)
+ * ArrayList(
{@code @Flow(sourceIsContainer=true, targetIsContainer=true) Collection collection }
)
* By default it's false. */ boolean sourceIsContainer() default false; diff --git a/common/src/main/java/org/intellij/lang/annotations/Identifier.java b/common/src/main/java/org/intellij/lang/annotations/Identifier.java index b37b766..a3e517b 100644 --- a/common/src/main/java/org/intellij/lang/annotations/Identifier.java +++ b/common/src/main/java/org/intellij/lang/annotations/Identifier.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2020 JetBrains s.r.o. + * Copyright 2000-2021 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/common/src/main/java/org/intellij/lang/annotations/JdkConstants.java b/common/src/main/java/org/intellij/lang/annotations/JdkConstants.java index 262bad4..7326e97 100644 --- a/common/src/main/java/org/intellij/lang/annotations/JdkConstants.java +++ b/common/src/main/java/org/intellij/lang/annotations/JdkConstants.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2020 JetBrains s.r.o. + * Copyright 2000-2021 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,8 +23,22 @@ import java.util.Calendar; import java.util.regex.Pattern; -@SuppressWarnings("EmptyClass") -public class JdkConstants { +/** + * @deprecated this class will be removed in future versions to avoid Swing dependency, + * which is unnecessary for most of the clients. No IDE or static analysis tool should know + * about this class directly, as it creates new annotations using meta-annotations. + * If it's used in your project, please create similar annotations in your project directly. + */ +@Deprecated +public final class JdkConstants { + + /** + * Prohibited default constructor. + */ + private JdkConstants() { + throw new AssertionError("JdkConstants should not be instantiated"); + } + @MagicConstant(intValues = {SwingConstants.LEFT, SwingConstants.CENTER, SwingConstants.RIGHT, SwingConstants.LEADING, SwingConstants.TRAILING}) public @interface HorizontalAlignment {} diff --git a/common/src/main/java/org/intellij/lang/annotations/Language.java b/common/src/main/java/org/intellij/lang/annotations/Language.java index befa561..e71e0bb 100644 --- a/common/src/main/java/org/intellij/lang/annotations/Language.java +++ b/common/src/main/java/org/intellij/lang/annotations/Language.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2020 JetBrains s.r.o. + * Copyright 2000-2021 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -30,22 +30,22 @@ * inside the literals that assigned to the annotated variables, passed as arguments to the annotated parameters, * or returned from the annotated methods. *

- * This annotation also could be used as a meta-annotation, to define derived annotations for convenience. + * This annotation also could be used as a meta-annotation, to define derived annotations for convenience. * E.g. the following annotation could be defined to annotate the strings that represent Java methods: - * + * *

  *   @Language(value = "JAVA", prefix = "class X{", suffix = "}")
  *   @interface JavaMethod {}
  * 
*

- * Note that using the derived annotation as meta-annotation is not supported. + * Note that using the derived annotation as meta-annotation is not supported. * Meta-annotation works only one level deep. */ @Retention(RetentionPolicy.CLASS) @Target({ METHOD, FIELD, PARAMETER, LOCAL_VARIABLE, ANNOTATION_TYPE }) public @interface Language { /** - * Language name like "JAVA", "HTML", "XML", "RegExp", etc. + * Language name like "JAVA", "HTML", "XML", "RegExp", etc. * The complete list of supported languages is not specified. However, at least the following languages should be * recognized: *