xmlrpc-scala-client

XML-RPC Scala client

License

License

Categories

Categories

Scala Languages CLI User Interface
GroupId

GroupId

com.github.adenza
ArtifactId

ArtifactId

xmlrpc-scala-client_2.12
Last Version

Last Version

0.1.1
Release Date

Release Date

Type

Type

jar
Description

Description

xmlrpc-scala-client
XML-RPC Scala client
Project URL

Project URL

https://github.com/adenza/xmlrpc-scala-client/
Project Organization

Project Organization

com.github.adenza
Source Code Management

Source Code Management

https://github.com/adenza/xmlrpc-scala-client/

Download xmlrpc-scala-client_2.12

How to add to project

<!-- https://jarcasting.com/artifacts/com.github.adenza/xmlrpc-scala-client_2.12/ -->
<dependency>
    <groupId>com.github.adenza</groupId>
    <artifactId>xmlrpc-scala-client_2.12</artifactId>
    <version>0.1.1</version>
</dependency>
// https://jarcasting.com/artifacts/com.github.adenza/xmlrpc-scala-client_2.12/
implementation 'com.github.adenza:xmlrpc-scala-client_2.12:0.1.1'
// https://jarcasting.com/artifacts/com.github.adenza/xmlrpc-scala-client_2.12/
implementation ("com.github.adenza:xmlrpc-scala-client_2.12:0.1.1")
'com.github.adenza:xmlrpc-scala-client_2.12:jar:0.1.1'
<dependency org="com.github.adenza" name="xmlrpc-scala-client_2.12" rev="0.1.1">
  <artifact name="xmlrpc-scala-client_2.12" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.github.adenza', module='xmlrpc-scala-client_2.12', version='0.1.1')
)
libraryDependencies += "com.github.adenza" % "xmlrpc-scala-client_2.12" % "0.1.1"
[com.github.adenza/xmlrpc-scala-client_2.12 "0.1.1"]

Dependencies

compile (3)

Group / Artifact Type Version
org.scala-lang : scala-library jar 2.12.11
org.apache.xmlrpc : xmlrpc-client jar 3.1.3
org.scala-lang : scala-reflect jar 2.12.11

test (2)

Group / Artifact Type Version
org.scalatest : scalatest_2.12 jar 3.1.1
org.mockito : mockito-scala-scalatest_2.12 jar 1.13.10

Project Modules

There are no modules declared in this project.

xmlrpc-scala-client

Scala CI codecov mvn

Scala XML-RPC wrapper for apache java library https://ws.apache.org/xmlrpc/

It allows to work with input and output object with familar case classes.

Installation

libraryDependencies += "com.github.adenza" %% "xmlrpc-scala-client" % "0.1.1"

or

resovers += Resolver.sonatypeReso("snashots")
libraryDependencies += "com.github.adenza" %% "xmlrpc-scala-client" % "0.1.0-SNAPSHOT"

Usage

First define input parameters and expected result:

case class InputParams(currency: String, amount: Int)

case class Result(status: String)

Now it possible to instantiate client and make a call:

import com.github.adenza.xmlrpc.client._

val config = XmlRpcScalaConfig(
            serverUrl = new java.net.URL("http://localhost:8080"),
            basicUserName = "user" ,
            basicPassword = "password",
            enabledForExceptions = true,
            enabledForExtensions = false
)

val xmlRpcClient = new XmlRpcScalaClient(config)

val params = InputParams("USD", 1000)

val result: Future[Result] = xmlRpcClient.call[Result]("AddValue", params)

Error handling

import com.github.adenza.xmlrpc.exceptions._

val handledResult = result.recoverWith { 
  case ex: XmlRpcScalaClientException => throw new Exception("Xml Rpc server return code " + ex.getCode)
  case ex => throw new Exception("Unexpected exception", ex)
}
com.github.adenza

Adenza technologies

Versions

Version
0.1.1