diff --git a/.classpath b/.classpath index 1fca90e..6dfaf81 100644 --- a/.classpath +++ b/.classpath @@ -21,11 +21,14 @@ + + + diff --git a/.github/workflows/maven-publish.yml b/.github/workflows/maven-publish.yml new file mode 100644 index 0000000..4b1f8a9 --- /dev/null +++ b/.github/workflows/maven-publish.yml @@ -0,0 +1,76 @@ +# This workflow will build a package using Maven and then publish it to GitHub packages when a release is created +# For more information see: https://github.com/actions/setup-java#apache-maven-with-a-settings-path + +name: Maven Package + +on: + push: + # Sequence of patterns matched against refs/tags + tags: + - 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10 + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: Use Cache for Maven packages + uses: actions/cache@v2 + with: + path: ~/.m2 + key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} + restore-keys: ${{ runner.os }}-m2 + + - name: Import GPG keys + run: 'echo -e "$GPG_FILE" | gpg2 --import --no-tty --batch --yes' + shell: bash + env: + GPG_FILE: ${{secrets.GPG_FILE}} + + - name: Set up Java for Apache Maven Central + uses: actions/setup-java@v1 + with: + java-version: 11 + server-id: ossrh # Value of the distributionManagement/repository/id field of the pom.xml + server-username: OSSRH_USERNAME # env variable for username in deploy + server-password: OSSRH_PASSWORD # env variable for token in deploy + gpg-passphrase: GPG_PASSPHRASE # env variable for GPG private key passphrase + + - name: Build and Verify with Maven + run: mvn --batch-mode --update-snapshots clean compile verify + + - name: Publish to Apache Maven Central + # run: mvn deploy --batch-mode --update-snapshots -P sign,!build-extras -Dmaven.test.skip=true + run: mvn deploy --batch-mode --update-snapshots -P sign,!build-extras,deploy-ossrh -Dmaven.test.skip=true + env: + OSSRH_USERNAME: ${{ secrets.OSSRH_JIRA_USERNAME }} + OSSRH_PASSWORD: ${{ secrets.OSSRH_JIRA_PASSWORD }} + GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} + + - name: Set up Java for publishing to GitHub Packages + uses: actions/setup-java@v1 + with: + java-version: 11 + + - name: Publish to GitHub Packages + # -DaltDeploymentRepository=github::default::https://maven.pkg.github.com/csowada/ebus + run: mvn deploy --batch-mode --update-snapshots -P !sign,!build-extras,!deploy-ossrh,deploy-github -Dmaven.test.skip=true + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Create GitGub Release + id: create_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token + with: + tag_name: ${{ github.ref }} + release_name: Release ${{ github.ref }} + body: | + Changes in this Release + + draft: true + prerelease: false \ No newline at end of file diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml new file mode 100644 index 0000000..e7d65c0 --- /dev/null +++ b/.github/workflows/maven.yml @@ -0,0 +1,54 @@ +# This workflow will build a Java project with Maven +# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven + +name: Java CI with Maven + +on: + push: + branches: [ master, develop ] + pull_request: + types: [opened, synchronize, reopened] + +jobs: + + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis + + - name: Cache Maven packages + uses: actions/cache@v2 + with: + path: ~/.m2 + key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} + restore-keys: ${{ runner.os }}-m2 + + - name: Cache SonarCloud packages + uses: actions/cache@v2 + with: + path: ~/.sonar/cache + key: ${{ runner.os }}-sonar + restore-keys: ${{ runner.os }}-sonar + + - name: Set up Java + uses: actions/setup-java@v1 + with: + java-version: 11 + + - name: Build and analyze + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + run: mvn -B verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar + + - run: mkdir staging && cp target/*.jar staging + + - name: Upload Maven build artifact + uses: actions/upload-artifact@v1 + with: + name: artifact + path: staging \ No newline at end of file diff --git a/.travis.settings.xml b/.travis.settings.xml deleted file mode 100644 index f33a952..0000000 --- a/.travis.settings.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - bintray-csowada-mvn - csowada - ${env.BINTRAY_TOKEN} - - - - - - bintray - - - ${env.PASSPHRASE} - - - - - - false - - bintray-csowada-mvn - bintray - https://dl.bintray.com/csowada/mvn - - - - - - - false - - bintray-csowada-mvn - bintray-plugins - https://dl.bintray.com/csowada/mvn - - - - - - - bintray - - \ No newline at end of file diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index a6b35dc..0000000 --- a/.travis.yml +++ /dev/null @@ -1,34 +0,0 @@ -language: java -env: - global: - - secure: "CN/hDQ5CIsJ0+mx99PHYqDjMsdA/w0C+EnyYq2boa3om950hx7VJAyJWm/LJcwty1JL9xcd3QjgoPuswmYZIswRYx9DTwlAnwa5SKlbhiIJN/0/8ZdCYDiAg/FNo86GNb2tkcKfrJLUnbUP8zb6Qb2bR04A4DuLWpv0kqXSN9ATmydeyRwgnBOk6u6Vm6az7beWi96t3dCBKvjSvEUZe7pQTYAjnG4o3kBdKUSL6DtyCNb59O4dD30NoXJvRjsYjjUQTmQW94Vm5SyLDY98L9P5+N1yqInN5PJXWoTB8rId5qdYrEghABx1iA/jCaUQGIBDFu3auokjNAXiG0IEIA3QC5l3NeDo3cWm7/Mtz2H2MCiVNymXcHRVqMinSG5P0++m+NzrPYMW81FK8nTOTFfXYchGlyYufXuBbfxNm2ll8WysdeBq6i1iVPUPTVtJ11rqYPtsBCBqPsaao+5LHq0nJUvDrJ/Z32cVDn6v/TgqE2Tou8YwYe5tKLDGqzrFuj9jqw6LEMYaG0DDuVytT58yXWBQTaHUUXaOdZhwkVs/6VCP+yRSKLngu5jKJK4bvYBUbNq2VVvXBrXDOVpsXEX71gltkEdD+abgofl2SjtrPht5IlNnDPHsiyaDn5SXqQFMFoR0hl92dNlA61Q8SAafDU1uZPSmMMnjhTkOXHRQ=" - - # ^^ OSSRH_JIRA_USERNAME - - secure: "a8G9vKgaArdpTPTyOmyRPBJAFeGj1yiEdIXg83EcNZjuzPwZ9wnpWeuqraFVktpnb6cIv2JKvazwRXFc1KWBlwNOTDZwNTWlry+jeOHvu6M/goWrLPPnYOeXnHgZvZ4apHUWwsoBoPCrqggqKqP9fqsycS/eGZR/VJXxE8d4VMhXJ0eSIlBryujnGwllisu2b+HrKJr5J/Gk6ezYbnRfetemMjukfPFPg1jwHCEIJ1KnGNYy+hcdeJSclNoeQHNUAtJNuOUB2j/ZyycQUcSi3xO+M44DyQn23pzbjQPuJBn+0hEeg1q4nPp2CL8CLB5ZjcRhfyUhMi1TdzvL3cg+rgBbGkWbsuOV1Znh+Fa5iSWHSmxdnAksr/VCFdooI8k+3blb05DHA+ipXE+gmPMovKLDrP7rbXbchIAIa6XjM4wqC7KsLiiPZcQKsS4lOa6dw35Np0teAb8W6qUqaTKkZfKYCjU0cJQOrnFZce9FUgAiiYqF2SPq7YIk2xJ/7PP5Vbz/0cIzYSIfvoiVUUOn3L5IlSBVQf+o0Hi7UtYXDMm2ZCY2jrnLAsoNbTFHXpYQT5JAVTySa/Ir1fJg7cV3vAv3gMnKu4mhLJ5+oxNccEjW3Fq/+DTkpRvJlo36SNZMA8wVq90pWYOtVHffrsrP2njzAJptMGX+EQhcLInaems=" - - # ^^ OSSRH_JIRA_PASSWORD - - secure: "jGlsSjgIGb2oQsjFz4CNdAnGY8v5ERzaP79iU4G0Yyy+ypBI5KObuhSA7KMOvgQLXpBFe1Kye7kftKtpH5Ishf3iKlPPu6+TkKuxZW2cGZ5AUZRpvblps0oqDpG9VNJe6cwP0z4zpqjJe2yV9HRaaWw6X+m0W7UxHPH2cltzjmQ2mJ5xwjRUPKIDIwHJeqobYTNLY/iBc9/O+5X90QEiQqbeCwGrKDPzrOIHiVx3LyhAislaIrvnbl0XnRGCrJWmD4aM8kOEIeWyglH4EOFn7Rbs2fUKcu9Zgdquof8soABLKcFoGjwR1rzA4zuudKx5qlAnMxBTQppG6zoB0I6llk7W7rueHWMG3Uu0ubUrO4yQCxqYuCPSMdK8gAHz9CQ6T3eZ+7kYQ/bRTLYFpEpUtum3s93Dyuh/AoKI69V0lDo4lTebVtshHMqPAQlr1XAAvmxDGT8Bd5jU2QMgGpGzPwR7Xz6/2pViDvHlk1uEQnTSk3iS37e8fZAJYKtS4UlLyfyNb2b+bcVnO6z70qxfuKaUXXq1SH1S5vD6YFPIb/L/bqnyDlbgpXuPIbZdVBTIEsD8UZCT5KclPFHrmxXRNDCHWxIybyqT09fr8kPf9BXHGK4hL6+3fSlUYB1QGNSFZGqjuM2zbXEn40YD6kG83n7lg61/zE/Nza7vea5MERQ=" - - # ^^ GPG_PASSPHRASE - - secure: "KwkDsVZoDMxwCoW1yzMNOoPM0dI/Ow2vEugp/uKNZpEWyTxXr+ZawmiQZSpL0uRy087QJWUPxrKYEmtxaoC0Sksj9sYURjqVGuElOl40JceL2bQrjk2Xa1pnGtGAuMFhuOEU/gRozYk+Wvpt74sCgSSp00y7m2k8CRgfMOdB9/rxbPZm5EfhgGn3/k2dEhkjfo/yEcSX3qBQ1FM9XziKNbX76hNZ3sLT29S9y8zZGOkNHVFIrwbdAUaxf1cPoUfk/sL7jhu+/XVmG2KZs2Uo25M0uZkP5D8QNnG/j4e2Fr3gQt1EJ9Xt0XMQYwXTPXpk+Rb8Y3hFEg7a+UyXuY0AzvGv1nZtUtngg7949gSKK5KLRDP/0MXYBlsQ4DwgLksXFrP7yYyvnwi8Gj4CNdrqOAV45v3elHRmZKiNVnkAZFjZqnNghenQn42uJmOQbQyPq+ceR6JUlQnxTYpb9MyDEP+yD05oxJ8FUeqMY50zcHoVIgv3fDgGGD5jSeHuO21fwNh2xikfjfmoQTSATE/AZhZBDGRTo7fvY1xWmhogMOBu8JU8YlX+NJ0zMs2SrXC1FvefaFc7uIwYZAX5lkBBMsjT4wW4gyUH67rIotCcVh7u7sD/wetZSOnt7wbgLx3Y043tplBQeqG5sCoWNgljkHu73bA58rn/4uUsi6sOd6I=" - - # ^^ GPG_KEY_NAME - -before_script: - - chmod +x ./cd/before-deploy.sh - - chmod +x ./cd/deploy.sh - -install: mvn install -P !build-extras -DskipTests=true -Dmaven.javadoc.skip=true -B -V - -script: mvn test -P !build-extras -B - -cache: - directories: - - ~/.m2/repository - -after_success: - - ./cd/before-deploy.sh - - ./cd/deploy.sh - -notifications: - email: - recipients: - - opensource@cs-dev.de - on_success: change - on_failure: always diff --git a/annotations/java/util/Collections.eea b/annotations/java/util/Collections.eea new file mode 100644 index 0000000..44e1364 --- /dev/null +++ b/annotations/java/util/Collections.eea @@ -0,0 +1,4 @@ +class java/util/Collections +emptyList + ()Ljava/util/List; + ()L1java/util/List; diff --git a/annotations/org/slf4j/LoggerFactory.eea b/annotations/org/slf4j/LoggerFactory.eea new file mode 100644 index 0000000..5676819 --- /dev/null +++ b/annotations/org/slf4j/LoggerFactory.eea @@ -0,0 +1,4 @@ +class org/slf4j/LoggerFactory +getLogger + (Ljava/lang/Class<*>;)Lorg/slf4j/Logger; + (Ljava/lang/Class<*>;)L1org/slf4j/Logger; diff --git a/cd/before-deploy.sh b/cd/before-deploy.sh deleted file mode 100644 index d858b1e..0000000 --- a/cd/before-deploy.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env bash -set -ev - -if [ "$TRAVIS_PULL_REQUEST" == 'false' ]; then - openssl aes-256-cbc -K $encrypted_12c8071d2874_key -iv $encrypted_12c8071d2874_iv -in cd/codesigning.asc.enc -out cd/codesigning.asc -d - gpg --fast-import cd/codesigning.asc -fi \ No newline at end of file diff --git a/cd/codesigning.asc.enc b/cd/codesigning.asc.enc deleted file mode 100644 index 5420563..0000000 Binary files a/cd/codesigning.asc.enc and /dev/null differ diff --git a/cd/deploy.sh b/cd/deploy.sh deleted file mode 100644 index 4fe75ae..0000000 --- a/cd/deploy.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env bash -set -ev - -if [ "$TRAVIS_PULL_REQUEST" == 'false' ]; then - mvn deploy -P sign,build-extras --settings cd/mvnsettings.xml -fi \ No newline at end of file diff --git a/cd/mvnsettings.xml b/cd/mvnsettings.xml deleted file mode 100644 index f1a17c7..0000000 --- a/cd/mvnsettings.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - ossrh - ${env.OSSRH_JIRA_USERNAME} - ${env.OSSRH_JIRA_PASSWORD} - - - - - - ossrh - - true - - - gpg - ${env.GPG_KEY_NAME} - ${env.GPG_PASSPHRASE} - - - - - \ No newline at end of file diff --git a/pom.xml b/pom.xml index 34a7058..9627f15 100644 --- a/pom.xml +++ b/pom.xml @@ -7,19 +7,22 @@ eBUS library configuration de.cs-dev.ebus ebus-configuration - 1.0.9 + 1.1.2 https://github.com/csowada/ebus-configuration bundle - - yyyyMMddHHmm - UTF-8 - 1.8 - 1.8 - 8 - 2020 - 1.0.9.${maven.build.timestamp} - + + yyyyMMddHHmm + UTF-8 + 1.8 + 1.8 + 8 + 2020 + + csowada_ebus-configuration + csowada + https://sonarcloud.io + Christian Sowada @@ -55,29 +58,45 @@ - - org.codehaus.mojo - buildnumber-maven-plugin - 1.4 - - - - create - - - - - - true - - false - - false - - 7 - - - + + com.amashchenko.maven.plugin + gitflow-maven-plugin + 1.15.0 + + + master + develop + v + origin + + false + false + + + + + org.codehaus.mojo + buildnumber-maven-plugin + 1.4 + + + + create + + + + + + true + + false + + false + + 7 + + + org.apache.felix maven-bundle-plugin @@ -88,12 +107,11 @@ ${project.groupId}.${project.artifactId} ${project.name} ${bundle.version} - de.csdev.ebus.configuration.* - + de.csdev.ebus.configuration.* ${maven.build.timestamp} - ${buildNumber} - ${scmBranch} - ${env.BUILD_NUMBER} + ${buildNumber} + ${scmBranch} + ${env.BUILD_NUMBER} @@ -216,23 +234,92 @@ - + + deploy-ossrh + + true + - + + + + org.sonatype.plugins + nexus-staging-maven-plugin + 1.6.8 + true + + ossrh + https://oss.sonatype.org/ + false + + + + - - org.apache.felix - org.osgi.core - 1.4.0 - provided - + + + ossrh + https://oss.sonatype.org/content/repositories/snapshots + + + ossrh + https://oss.sonatype.org/service/local/staging/deploy/maven2/ + + + + + deploy-github + + false + + + + + github + GitHub Packages + https://maven.pkg.github.com/csowada/ebus-configuration + + + + + + + junit junit 4.12 test + + + com.google.code.gson + gson + 2.5 + test + + + + commons-lang + commons-lang + 2.6 + test + + + + de.cs-dev.ebus + ebus-core + 1.1.2 + compile + + + + org.apache.felix + org.osgi.core + 1.4.0 + provided + ch.qos.logback @@ -245,28 +332,18 @@ org.slf4j slf4j-api 1.7.25 + provided - de.cs-dev.ebus - ebus-core - 1.0.9 - compile + org.eclipse.jdt + org.eclipse.jdt.annotation + 2.2.100 + provided - + - - - - ossrh - https://oss.sonatype.org/content/repositories/snapshots - - - - ossrh - https://oss.sonatype.org/service/local/staging/deploy/maven2/ - - - + + \ No newline at end of file diff --git a/src/main/java/de/csdev/ebus/configuration/EBusConfigurationReaderExt.java b/src/main/java/de/csdev/ebus/configuration/EBusConfigurationReaderExt.java index 4041dc9..612072f 100644 --- a/src/main/java/de/csdev/ebus/configuration/EBusConfigurationReaderExt.java +++ b/src/main/java/de/csdev/ebus/configuration/EBusConfigurationReaderExt.java @@ -8,27 +8,34 @@ */ package de.csdev.ebus.configuration; +import java.net.URL; +import java.util.Collections; import java.util.List; +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.jdt.annotation.NonNullByDefault; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import de.csdev.ebus.cfg.std.EBusConfigurationReader; import de.csdev.ebus.command.IEBusCommandCollection; +@NonNullByDefault public class EBusConfigurationReaderExt extends EBusConfigurationReader { private static final Logger logger = LoggerFactory.getLogger(EBusConfigurationReaderExt.class); @Override - public List loadBuildInConfigurationCollections() { + public @NonNull List<@NonNull IEBusCommandCollection> loadBuildInConfigurationCollections() { try { - return loadConfigurationCollectionBundle( - EBusConfigurationReaderExt.class.getResource("/index-configuration.json")); + URL url = EBusConfigurationReaderExt.class.getResource("/index-configuration.json"); + if (url != null) { + return loadConfigurationCollectionBundle(url); + } } catch (Exception e) { logger.error("error!", e); } - return null; + return Collections.emptyList(); } } diff --git a/src/test/java/de/csdev/ebus/TestUtils.java b/src/test/java/de/csdev/ebus/TestUtils.java index 3c9b29d..a9a9e57 100644 --- a/src/test/java/de/csdev/ebus/TestUtils.java +++ b/src/test/java/de/csdev/ebus/TestUtils.java @@ -11,6 +11,7 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; +import java.util.Objects; import org.junit.Assert; import org.slf4j.Logger; @@ -28,6 +29,8 @@ public class TestUtils { public static boolean canResolve(EBusCommandRegistry commandRegistry, byte[] data) { + Objects.requireNonNull(data, "data"); + List list = commandRegistry.find(data); if (list.isEmpty()) { diff --git a/src/test/java/de/csdev/ebus/cfg/EBusCommonTelegramTest.java b/src/test/java/de/csdev/ebus/cfg/EBusCommonTelegramTest.java index 464f757..188749a 100644 --- a/src/test/java/de/csdev/ebus/cfg/EBusCommonTelegramTest.java +++ b/src/test/java/de/csdev/ebus/cfg/EBusCommonTelegramTest.java @@ -19,6 +19,7 @@ import org.slf4j.LoggerFactory; import de.csdev.ebus.TestUtils; +import de.csdev.ebus.command.EBusCommandException; import de.csdev.ebus.command.EBusCommandRegistry; import de.csdev.ebus.command.EBusCommandUtils; import de.csdev.ebus.command.IEBusCommandMethod; @@ -57,6 +58,8 @@ public void testIdentification() { } catch (EBusTypeException e) { logger.error("error!", e); + } catch (EBusCommandException e) { + logger.error("error!", e); } } @@ -74,6 +77,8 @@ public void testAutoStroker() { } catch (EBusTypeException e) { logger.error("error!", e); + } catch (EBusCommandException e) { + logger.error("error!", e); } } diff --git a/src/test/java/de/csdev/ebus/cfg/EBusVaillantTelegramTest.java b/src/test/java/de/csdev/ebus/cfg/EBusVaillantTelegramTest.java index c0f3812..c12f5f6 100644 --- a/src/test/java/de/csdev/ebus/cfg/EBusVaillantTelegramTest.java +++ b/src/test/java/de/csdev/ebus/cfg/EBusVaillantTelegramTest.java @@ -23,6 +23,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import de.csdev.ebus.command.EBusCommandException; import de.csdev.ebus.command.EBusCommandRegistry; import de.csdev.ebus.command.EBusCommandUtils; import de.csdev.ebus.command.IEBusCommandMethod; @@ -58,13 +59,19 @@ private void checkResolveTelegram(String data) { List find = commandRegistry.find(byteArray); assertFalse(find.isEmpty()); - logger.debug("Successful resolved: {}", EBusCommandUtils.getFullId(find.get(0))); + + IEBusCommandMethod method = find.get(0); + + assertNotNull(method); + + logger.debug("Successful resolved: {}", EBusCommandUtils.getFullId(method)); } @Test public void testSetVaillantMasterSlave() { IEBusCommandMethod method = commandRegistry.getCommandMethodById("vrc700_general", "gen.operation_mode", Method.SET); + assertNotNull(method); assertEquals(IEBusCommandMethod.Type.MASTER_SLAVE, method.getType()); } @@ -112,6 +119,9 @@ public void testVaillantSetOperationMode() { } catch (EBusTypeException e) { e.printStackTrace(); assumeNoException(e); + } catch (EBusCommandException e) { + e.printStackTrace(); + assumeNoException(e); } } } diff --git a/src/test/java/de/csdev/ebus/cfg/EBusVaillantVRC430TelegramTest.java b/src/test/java/de/csdev/ebus/cfg/EBusVaillantVRC430TelegramTest.java index 40be243..ac1d59f 100644 --- a/src/test/java/de/csdev/ebus/cfg/EBusVaillantVRC430TelegramTest.java +++ b/src/test/java/de/csdev/ebus/cfg/EBusVaillantVRC430TelegramTest.java @@ -50,6 +50,8 @@ public void testDateTimeBroadcast() { for (IEBusCommandMethod method : find) { + assertNotNull(method); + try { Map map = EBusCommandUtils.decodeTelegram(method, byteArray); Object object = map.get("datetime"); @@ -89,6 +91,8 @@ public void testDateTimeBroadcastWithNoDate() { for (IEBusCommandMethod method : find) { + assertNotNull(method); + try { Map map = EBusCommandUtils.decodeTelegram(method, byteArray); Object object = map.get("datetime"); diff --git a/src/test/java/de/csdev/ebus/cfg/EBusWolfBM2Test.java b/src/test/java/de/csdev/ebus/cfg/EBusWolfBM2Test.java index cbb53e8..2cb1fb7 100644 --- a/src/test/java/de/csdev/ebus/cfg/EBusWolfBM2Test.java +++ b/src/test/java/de/csdev/ebus/cfg/EBusWolfBM2Test.java @@ -20,6 +20,7 @@ import org.junit.BeforeClass; import org.junit.Test; +import de.csdev.ebus.command.EBusCommandException; import de.csdev.ebus.command.EBusCommandRegistry; import de.csdev.ebus.command.EBusCommandUtils; import de.csdev.ebus.command.IEBusCommand; @@ -46,6 +47,9 @@ public static void before() throws IOException, EBusConfigurationReaderException public void testSetWolfMasterMaster() { IEBusCommandMethod method = commandRegistry.getCommandMethodById("bm2", "heating.program_heating_circuit", Method.SET); + + assertNotNull(method); + assertEquals(IEBusCommandMethod.Type.MASTER_MASTER, method.getType()); } @@ -57,6 +61,8 @@ public void testGetDHWProgram() { IEBusCommandMethod commandMethod = command.getCommandMethod(Method.GET); + assertNotNull(commandMethod); + HashMap params = new HashMap<>(); params.put("program", 1); @@ -67,6 +73,9 @@ public void testGetDHWProgram() { } catch (EBusTypeException e) { e.printStackTrace(); fail(); + } catch (EBusCommandException e) { + e.printStackTrace(); + fail(); } } @@ -78,6 +87,8 @@ public void testSetDHWProgram() { IEBusCommandMethod commandMethod = command.getCommandMethod(Method.SET); + assertNotNull(commandMethod); + HashMap params = new HashMap<>(); params.put("program", 1); @@ -88,6 +99,9 @@ public void testSetDHWProgram() { } catch (EBusTypeException e) { e.printStackTrace(); fail(); + } catch (EBusCommandException e) { + e.printStackTrace(); + fail(); } } @@ -101,6 +115,9 @@ public void testDecodeDHWProgram() { for (IEBusCommandMethod method : find) { try { + + assertNotNull(method); + Map map = EBusCommandUtils.decodeTelegram(method, byteArray); assertNotNull(map.get("program")); @@ -121,6 +138,8 @@ public void testSetDHWProgramWithInvalidTargetAddr() { IEBusCommandMethod commandMethod = command.getCommandMethod(Method.SET); + assertNotNull(commandMethod); + HashMap params = new HashMap<>(); params.put("program", 0); @@ -135,6 +154,9 @@ public void testSetDHWProgramWithInvalidTargetAddr() { } catch (EBusTypeException e) { e.printStackTrace(); fail(); + } catch (EBusCommandException e) { + e.printStackTrace(); + fail(); } } diff --git a/src/test/java/de/csdev/ebus/cfg/EBusWolfCWLTest.java b/src/test/java/de/csdev/ebus/cfg/EBusWolfCWLTest.java index 83f39cf..2fd1760 100644 --- a/src/test/java/de/csdev/ebus/cfg/EBusWolfCWLTest.java +++ b/src/test/java/de/csdev/ebus/cfg/EBusWolfCWLTest.java @@ -64,6 +64,9 @@ public Map check(String byteString) { List find = commandRegistry.find(byteArray); for (IEBusCommandMethod method : find) { + + assertNotNull(method); + try { Map map = EBusCommandUtils.decodeTelegram(method, byteArray); return map; diff --git a/src/test/java/de/csdev/ebus/cfg/KW_CRC_Test.java b/src/test/java/de/csdev/ebus/cfg/KW_CRC_Test.java index 5ff0738..ac6c30f 100644 --- a/src/test/java/de/csdev/ebus/cfg/KW_CRC_Test.java +++ b/src/test/java/de/csdev/ebus/cfg/KW_CRC_Test.java @@ -16,6 +16,7 @@ import org.junit.Before; import org.junit.Test; +import de.csdev.ebus.command.EBusCommandException; import de.csdev.ebus.command.EBusCommandRegistry; import de.csdev.ebus.command.EBusCommandUtils; import de.csdev.ebus.command.IEBusCommandMethod; @@ -36,7 +37,7 @@ public void before() throws IOException, EBusConfigurationReaderException { } @Test - public void testKWCrc() throws EBusTypeException { + public void testKWCrc() throws EBusTypeException, EBusCommandException { IEBusCommandMethod commandMethod = commandRegistry.getCommandMethodById("cgb2", "boiler.pressure", IEBusCommandMethod.Method.GET); diff --git a/src/test/java/de/csdev/ebus/wip/EBusCommonTelegramTest2.java b/src/test/java/de/csdev/ebus/wip/EBusCommonTelegramTest2.java index 6e6b5f3..2ab8302 100644 --- a/src/test/java/de/csdev/ebus/wip/EBusCommonTelegramTest2.java +++ b/src/test/java/de/csdev/ebus/wip/EBusCommonTelegramTest2.java @@ -8,6 +8,8 @@ */ package de.csdev.ebus.wip; +import static org.junit.Assert.assertNotNull; + import java.io.IOException; import java.nio.ByteBuffer; import java.util.List; @@ -67,7 +69,13 @@ public void testResolveCommonTelegrams() { data = EBusUtils.toByteArray("03 FE 05 03 08 01 00 40 FF 2D 17 30 0E C8 AA"); IEBusCommand command = commandRegistry.getCommandById("std", "auto_stroker.op_data_bc2tc_b1"); - ByteBuffer masterTelegramMask = EBusCommandUtils.getMasterTelegramMask(command.getCommandMethod(Method.GET)); + assertNotNull(command); + + IEBusCommandMethod commandMethod = command.getCommandMethod(Method.GET); + + assertNotNull(commandMethod); + + ByteBuffer masterTelegramMask = EBusCommandUtils.getMasterTelegramMask(commandMethod); // ByteBuffer masterTelegramMask2 = // EBusCommandUtils.getMasterTelegramMask(command.getCommandMethod(Method.SET)); @@ -79,6 +87,7 @@ public void testResolveCommonTelegrams() { // logger.debug("TELE {}", EBusUtils.toHexDumpString(data)); // logger.debug("MASK {}", EBusUtils.toHexDumpString(masterTelegramMask)); + @SuppressWarnings("unused") List find = commandRegistry.find(data); TestUtils.canResolve(commandRegistry, data); diff --git a/src/test/java/de/csdev/ebus/wip/EBusdControllerTest.java b/src/test/java/de/csdev/ebus/wip/EBusdControllerTest.java index 0fdcbb5..858131b 100644 --- a/src/test/java/de/csdev/ebus/wip/EBusdControllerTest.java +++ b/src/test/java/de/csdev/ebus/wip/EBusdControllerTest.java @@ -8,7 +8,7 @@ */ package de.csdev.ebus.wip; -import static org.junit.Assert.assertEquals; +import static org.junit.Assert.*; import java.io.IOException; @@ -34,15 +34,16 @@ public class EBusdControllerTest { // @Before public void before() throws IOException, EBusConfigurationReaderException { - commandRegistry = new EBusCommandRegistry(EBusConfigurationReaderExt.class, true); } // @Test public void testIdentification() throws InterruptedException { - EBusClient client = new EBusClient(commandRegistry); EBusEbusdController controller = new EBusEbusdController("openhab", 8888); + assertNotNull(commandRegistry); + + EBusClient client = new EBusClient(commandRegistry); client.connect(controller, (byte) 0x00);