# Kotlin 1.0.6 EAP

**URL:** <https://discuss.kotlinlang.org/t/kotlin-1-0-6-eap/2117>\
**Category:** EAP\
**Created:** [November 25, 2016, 5:40pm UTC](https://discuss.kotlinlang.org/t/kotlin-1-0-6-eap/2117 "2016-11-25T17:40:04Z")\
**Posts on this page:** 1\
**Showing post:** 11

<div class="post-metadata">

**Author:** ![yanex](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/yanex/32/1489_2.png) [@yanex](https://discuss.kotlinlang.org/u/yanex)\
**Post date:** [December 16, 2016, 4:06pm UTC](https://discuss.kotlinlang.org/t/kotlin-1-0-6-eap/2117/11 "2016-12-16T16:06:30Z")

</div>

## Kotlin 1.0.6 RC

Kotlin 1.0.6 RC is out!

### What’s new

- IDE and Gradle plugins are now compatible with Android Studio 2.3;
- Fix incorrect inner class modifier for `sealed` inner classes;
- All-open compiler plugin to make classes and its members open (useful for mocking).
- No-arg compiler plugin that generates the default (zero-argument) class constructor (useful for JPA).
- “Convert function type parameter to receiver” (and back), “Add names to call arguments” intentions;
- Numerous fixes in the IDE plugin in inspections, intentions and Android Lint;
- Performance issue fixes in the debugger;
- Fixes in the experimental kapt.

The full changelog is avilable [here](https://github.com/JetBrains/kotlin/blob/be63e9b7543881af83d842093543336c54bea37b/ChangeLog.md#106).

### All-open compiler plugin

All-open plugin makes classes and its members open without the explicit `open` keyword, so it becomes easier to use frameworks/libraries such as Spring AOP or Mockito. You can read the detailed information about all-open in the corresponding [KEEP proposal](https://github.com/Kotlin/KEEP/pull/40).

We provide `all-open` plugin support for Gradle and Maven.

#### How to use all-open with Gradle

```gradle
buildscript {
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-allopen:$kotlin_version"
    }
}

apply plugin: "kotlin-allopen"

allOpen {
    annotation("com.your.Annotation")
}

```

If the class (or any of its superclasses) is annotated with `com.your.Annotation`, the class itself and all its properties and functions will become all-open.

It even works with meta-annotations:

```kotlin
@com.your.Annotation
annotation class MyFrameworkAnnotation

@MyFrameworkAnnotation
class MyClass // will be all-open

```

We also provide the plugin for Spring:

```gradle
buildscript {
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-allopen:$kotlin_version"
    }
}

apply plugin: "kotlin-spring"

```

Of course, you can use both `kotlin-allopen` and `kotlin-spring` in the same project.

#### How to use all-open with Maven

```xml
<plugin>
    <artifactId>kotlin-maven-plugin</artifactId>
    <groupId>org.jetbrains.kotlin</groupId>
    <version>${kotlin.version}</version>

    <configuration>
        <compilerPlugins>
            <!-- Or "spring" for the Spring support -->
            <plugin>all-open</plugin>
        </compilerPlugins>

        <pluginOptions>
            <option>all-open:annotation=com.your.Annotation</option>
        </pluginOptions>
    </configuration>

    <dependencies>
        <dependency>
            <groupId>org.jetbrains.kotlin</groupId>
            <artifactId>kotlin-maven-allopen</artifactId>
            <version>${kotlin.version}</version>
        </dependency>
    </dependencies>
</plugin>

```

### No-arg compiler plugin

No-arg plugin generates an additional zero-argument constructor for annotated classes. The relevant proposal is available [here](https://discuss.kotlinlang.org/t/feature-request-a-modifier-annotation-for-data-classes-to-provide-a-non-arg-constructor-on-jvm/1549/4). Note that the generated constructor is synthetic so it can’t be directly called both from Java and Kotlin; the only way to call it is by using reflection.

#### How to use no-arg in Gradle

The usage is similar with all-open.

```gradle
buildscript {
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-noarg:$kotlin_version"
    }
}

// Or "kotlin-jpa" for Java Persistence API support
apply plugin: "kotlin-noarg"

noArg {
    annotation("com.your.Annotation")
}

```

#### How to use no-arg in Maven

```xml
<plugin>
    <artifactId>kotlin-maven-plugin</artifactId>
    <groupId>org.jetbrains.kotlin</groupId>
    <version>${kotlin.version}</version>

    <configuration>
        <compilerPlugins>
            <!-- Or "jpa" for the Java Persistence API support -->
            <plugin>no-arg</plugin>
        </compilerPlugins>

        <pluginOptions>
            <option>no-arg:annotation=com.your.Annotation</option>
        </pluginOptions>
    </configuration>

    <dependencies>
        <dependency>
            <groupId>org.jetbrains.kotlin</groupId>
            <artifactId>kotlin-maven-noarg</artifactId>
            <version>${kotlin.version}</version>
        </dependency>
    </dependencies>
</plugin>

```

### How to get EAP build

#### For IntelliJ IDEA:

You can configure Early Access Preview channel in **Tools** → **Kotlin** → **Configure Kotlin Plugin Updates**. Change the update channel and press **Check for updates now**.

#### For Gradle or Maven:

Add [https://dl.bintray.com/kotlin/kotlin-eap](https://dl.bintray.com/kotlin/kotlin-eap) to your repositories.  
Change the version of Kotlin dependencies (compiler and stdlib) to `1.0.6-eap-112`.

Please do provide feedback and report any issues to [our issue tracker](https://youtrack.jetbrains.com/issues/KT#newissue) (please specify your plugin version and IDE version).

---

_[View the full topic](https://discuss.kotlinlang.org/t/kotlin-1-0-6-eap/2117)._
