Skip to content

Commit

Permalink
Re-implemented in Kotlin
Browse files Browse the repository at this point in the history
  • Loading branch information
bastianeicher committed Jun 9, 2024
1 parent f98d178 commit 58147a6
Show file tree
Hide file tree
Showing 228 changed files with 3,532 additions and 8,271 deletions.
124 changes: 124 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
root = true

[*]
charset = utf-8
end_of_line = lf
indent_style = space
indent_size = 4
trim_trailing_whitespace = true
insert_final_newline = true
keep_existing_linebreaks = true
max_line_length = off

[*.{json,xml,yml,yaml,htm,html,js,ts,css,scss,less}]
indent_size = 2

[*.{*proj,resx,config,ruleset,cd,props,targets,nuspec}]
end_of_line = crlf
indent_size = 2

[*.{txt,cs,ps1,psd1,manifest}]
end_of_line = crlf

[*.{bat,cmd}]
charset = latin1
end_of_line = crlf

[*.sln]
end_of_line = crlf
indent_style = tab

[*.{md,resx,Designer.*}]
trim_trailing_whitespace = false

[*.cs]
# Indentation
csharp_indent_block_contents = true
csharp_indent_braces = false
csharp_indent_case_contents = true
csharp_indent_switch_labels = true
csharp_outdent_binary_ops = true
csharp_outdent_dots = true
csharp_align_linq_query = true
csharp_align_multiline_parameter = true
csharp_align_multiline_calls_chain = true
csharp_align_multiline_binary_expressions_chain = true
csharp_align_multiline_array_and_object_initializer = false

# Line breaks
csharp_new_line_before_catch = true
csharp_new_line_before_else = true
csharp_new_line_before_finally = true
csharp_new_line_before_members_in_object_initializers = false
csharp_new_line_before_open_brace = all
csharp_blank_lines_around_single_line_field = 0
csharp_blank_lines_inside_region = 0
csharp_blank_lines_around_region = 0
csharp_blank_lines_after_block_statements = 0
csharp_empty_block_style = together
csharp_place_simple_blocks_on_single_line = true
csharp_place_simple_initializer_on_single_line = true
csharp_place_attribute_on_same_line = if_owner_is_single_line
csharp_place_expr_method_on_single_line = true
csharp_place_constructor_initializer_on_same_line = false
csharp_wrap_object_and_collection_initializer_style = chop_if_long
csharp_wrap_array_initializer_style = chop_if_long
csharp_wrap_parameters_style = chop_if_long
csharp_preserve_single_line_blocks = true
csharp_keep_existing_arrangement = true

# Spacing
csharp_space_after_cast = false
csharp_space_after_colon_in_inheritance_clause = true
csharp_space_after_comma = true
csharp_space_after_dot = false
csharp_space_after_keywords_in_control_flow_statements = true
csharp_space_after_semicolon_in_for_statement = true
csharp_space_around_binary_operators = before_and_after
csharp_space_before_colon_in_inheritance_clause = true
csharp_space_before_comma = false
csharp_space_before_dot = false
csharp_space_before_semicolon_in_for_statement = false
csharp_space_before_open_square_brackets = false
csharp_space_between_empty_square_brackets = false
csharp_space_between_method_declaration_name_and_open_parenthesis = false
csharp_space_between_method_declaration_parameter_list_parentheses = false
csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
csharp_space_between_method_call_name_and_opening_parenthesis = false
csharp_space_between_method_call_parameter_list_parentheses = false
csharp_space_between_method_call_empty_parameter_list_parentheses = false
csharp_space_between_square_brackets = false
csharp_space_within_empty_braces = false

# Style
csharp_parentheses_redundancy_style = remove_if_not_clarifies_precedence
csharp_allow_comment_after_lbrace = true
csharp_braces_for_ifelse = required_for_multiline
csharp_braces_for_for = required_for_multiline
csharp_braces_for_foreach = required_for_multiline
csharp_braces_for_while = required_for_multiline
csharp_braces_for_using = required_for_multiline
csharp_braces_for_lock = required_for_multiline
csharp_braces_for_fixed = required_for_multiline
csharp_style_var_for_built_in_types = false
csharp_style_var_when_type_is_apparent = true
csharp_style_expression_bodied_constructors = false
csharp_style_expression_bodied_accessors = true
csharp_style_expression_bodied_methods = true
csharp_style_expression_bodied_properties = true
csharp_local_function_body = expression_body
csharp_style_qualification_for_event = false
csharp_style_qualification_for_field = false
csharp_style_qualification_for_method = false
csharp_style_qualification_for_property = false
csharp_style_pattern_matching_over_as_with_null_check = true
csharp_style_pattern_matching_over_is_with_cast_check = true
csharp_style_object_initializer = true
csharp_style_collection_initializer = true
csharp_style_explicit_tuple_names = true
csharp_style_null_propagation = true
csharp_style_coalesce_expression = true
csharp_style_conditional_delegate_call = true
csharp_style_throw_expression = true
csharp_style_predefined_type_for_locals_parameters_members = true
csharp_style_predefined_type_for_member_access = true
4 changes: 2 additions & 2 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
# Normalize linebreaks
* text=auto
# Disable linebreak normalization
* -text
62 changes: 62 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
name: Build
on: [push, pull_request]

jobs:
build:
runs-on: ubuntu-latest
steps:
# Prepare
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: gittools/actions/gitversion/[email protected]
with:
versionSpec: '5.12.x'
- uses: gittools/actions/gitversion/[email protected]
id: gitversion
- name: Set version (release)
if: github.ref_type == 'tag'
run: echo "VERSION=${{steps.gitversion.outputs.semVer}}" >> $GITHUB_ENV
- name: Set version (pre-release)
if: github.ref_type != 'tag'
run: echo "VERSION=${{steps.gitversion.outputs.semVer}}-${{steps.gitversion.outputs.shortSha}}" >> $GITHUB_ENV

# Build
- run: gradle build
- run: gradle dokkaHtml
- run: gradle test
- name: Report test results
if: always()
uses: dorny/test-reporter@v1
with:
name: Test Report
reporter: java-junit
path: '*/build/test-results/test/TEST-*.xml'

# Release
- name: Create GitHub Release
if: github.ref_type == 'tag'
uses: softprops/action-gh-release@v1

# Publish
# - name: Publish packages (GitHub)
# if: github.event_name == 'push' && !startsWith(github.ref_name, 'renovate/')
# run: gradle publishMavenPublicationToGitHubRepository
# env:
# GITHUB_TOKEN: ${{github.token}}
# - name: Publish packages (Maven Central)
# if: github.ref_type == 'tag'
# run: gradle publishToSonatype closeAndReleaseSonatypeStagingRepository
# env:
# SIGNING_KEY: ${{secrets.SIGNING_KEY}}
# SIGNING_PASSWORD: ${{secrets.SIGNING_PASSWORD}}
# SONATYPE_USERNAME: ${{secrets.SONATYPE_USERNAME}}
# SONATYPE_PASSWORD: ${{secrets.SONATYPE_PASSWORD}}
- name: Publish documentation
if: github.ref_type == 'tag'
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{github.token}}
force_orphan: true
publish_dir: build/dokka/html
cname: java.typedrest.net
27 changes: 0 additions & 27 deletions .github/workflows/doc.yml

This file was deleted.

18 changes: 5 additions & 13 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,13 +1,5 @@
#Maven
target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties

#JetBrains IntelliJ IDEA
.idea/
*.iml
*/build/
/.gradle/
/.idea/
/.kotlin

15 changes: 15 additions & 0 deletions GitVersion.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
mode: ContinuousDeployment

branches:
# Mainline branches
develop:
tag: alpha
increment: patch
master:
tag: beta

# Stabilization branches
release:
tag: rc
hotfix:
tag: rc
4 changes: 2 additions & 2 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
The MIT License (MIT)

Copyright (c) 2015-2016 1&1 Internet SE
Copyright (c) 2021 Bastian Eicher

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand All @@ -18,4 +18,4 @@ 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.
THE SOFTWARE.
43 changes: 32 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# ![TypedRest](logo.svg) for Java
# ![TypedRest](logo.svg) for Java/Kotlin

TypedRest for Java helps you build type-safe, fluent-style REST API clients. Common REST patterns such as collections are represented as classes, allowing you to write more idiomatic code.
TypedRest for Java/Kotlin helps you build type-safe, fluent-style REST API clients. Common REST patterns such as collections are represented as classes, allowing you to write more idiomatic code.

**Java**

```java
MyClient client = new MyClient(URI.create("http://example.com/"));
Expand All @@ -25,22 +27,41 @@ Note note = smith.getNote().read();
smith.delete();
```

**Kotlin**

```kotlin
val client = MyClient(URI("http://example.com/"))

// GET /contacts
val contactList: List<Contact> = client.contacts.readAll()

// POST /contacts -> Location: /contacts/1337
val smith: ContactEndpoint = client.contacts.create(Contact("Smith"))
//val smith: ContactEndpoint = client.contacts["1337"]

// GET /contacts/1337
val contact: Contact = smith.read()

// PUT /contacts/1337/note
smith.note.set(Note("some note"))

// GET /contacts/1337/note
val note: Note = smith.note.read()

// DELETE /contacts/1337
smith.delete()
```

Read an **[Introduction](https://typedrest.net/introduction/)** to TypedRest or jump right in with the **[Getting started](https://typedrest.net/getting-started/java/)** guide.

For information about specific Java classes or interfaces you can read the **[API Documentation](https://java.typedrest.net/)**.

## Maven artifacts

Artifact group: `com.oneandone`
Artifact group: `net.typedrest`

[![typedrest-core](https://img.shields.io/maven-central/v/com.oneandone/typedrest-core.svg?label=typedrest-core)](https://mvnrepository.com/artifact/com.oneandone/typedrest-core)
[![typedrest-core](https://img.shields.io/maven-central/v/net.typedrest/typedrest.svg?label=typedrest)](https://mvnrepository.com/artifact/net.typedrest/typedrest)
The main TypedRest library.

[![typedrest-annotations](https://img.shields.io/maven-central/v/com.oneandone/typedrest-annotations.svg?label=typedrest-annotations)](https://mvnrepository.com/artifact/com.oneandone/typedrest-annotations)
[![typedrest-annotations](https://img.shields.io/maven-central/v/net.typedrest/typedrest-annotations.svg?label=typedrest-annotations)](https://mvnrepository.com/artifact/net.typedrest/typedrest-annotations)
Annotations for data models to be used with TypedRest.

[![typedrest-vaadin](https://img.shields.io/maven-central/v/com.oneandone/typedrest-vaadin.svg?label=typedrest-vaadin)](https://mvnrepository.com/artifact/com.oneandone/typedrest-vaadin)
Build [Vaadin](https://vaadin.com/) GUIs for TypedRest clients.

[![typedrest-archetype](https://img.shields.io/maven-central/v/com.oneandone/typedrest-archetype.svg?label=typedrest-archetype)](https://mvnrepository.com/artifact/com.oneandone/typedrest-archetype)
[Maven archetype](https://maven.apache.org/guides/introduction/introduction-to-archetypes.html) (template) for creating TypedRest projects.
24 changes: 0 additions & 24 deletions annotations/pom.xml

This file was deleted.

14 changes: 0 additions & 14 deletions annotations/src/main/java/net/typedrest/Description.java

This file was deleted.

12 changes: 0 additions & 12 deletions annotations/src/main/java/net/typedrest/EditorHidden.java

This file was deleted.

12 changes: 0 additions & 12 deletions annotations/src/main/java/net/typedrest/Id.java

This file was deleted.

Loading

0 comments on commit 58147a6

Please sign in to comment.