Skip to content

Commit

Permalink
Gateway Java library
Browse files Browse the repository at this point in the history
  • Loading branch information
pmarschik committed May 3, 2017
0 parents commit a4d06dc
Show file tree
Hide file tree
Showing 78 changed files with 11,411 additions and 0 deletions.
184 changes: 184 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,184 @@
# Created by .ignore support plugin (hsz.mobi)
### Eclipse template

.metadata
bin/
tmp/
*.tmp
*.bak
*.swp
*~.nib
local.properties
.settings/
.loadpath
.recommenders

# Eclipse Core
.project

# External tool builders
.externalToolBuilders/

# Locally stored "Eclipse launch configurations"
*.launch

# PyDev specific (Python IDE for Eclipse)
*.pydevproject

# CDT-specific (C/C++ Development Tooling)
.cproject

# JDT-specific (Eclipse Java Development Tools)
.classpath

# Java annotation processor (APT)
.factorypath

# PDT-specific (PHP Development Tools)
.buildpath

# sbteclipse plugin
.target

# Tern plugin
.tern-project

# TeXlipse plugin
.texlipse

# STS (Spring Tool Suite)
.springBeans

# Code Recommenders
.recommenders/

# Scala IDE specific (Scala & Java development for Eclipse)
.cache-main
.scala_dependencies
.worksheet
### macOS template
*.DS_Store
.AppleDouble
.LSOverride

# Icon must end with two \r
Icon


# Thumbnails
._*

# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent

# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
### Windows template
# Windows thumbnail cache files
Thumbs.db
ehthumbs.db
ehthumbs_vista.db

# Folder config file
Desktop.ini

# Recycle Bin used on file shares
$RECYCLE.BIN/

# Windows Installer files
*.cab
*.msi
*.msm
*.msp

# Windows shortcuts
*.lnk
### JetBrains template
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839

.idea/

## File-based project format:
*.iws

## Plugin-specific files:

# IntelliJ
/out/

# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
### Linux template
*~

# temporary files which can be created if a process still has a handle open of a deleted file
.fuse_hidden*

# KDE directory preferences
.directory

# Linux trash folder which might appear on any partition or disk
.Trash-*

# .nfs files are created when an open file is removed but is still being accessed
.nfs*
### Java template
# Compiled class file
*.class

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/

classes/

# Package Files #
*.jar
*.war
*.ear
*.zip
*.tar.gz
*.rar

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
### Gradle template
.gradle
/build/

# Ignore Gradle GUI config
gradle-app.setting

# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
!gradle-wrapper.jar

# Cache of project
.gradletasknamecache

# # Work around https://youtrack.jetbrains.com/issue/IDEA-116898
# gradle/wrapper/gradle-wrapper.properties
9 changes: 9 additions & 0 deletions BUILD.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@

# Building a new version

## Updating the schema and generating new java library files

* Copy up-to-date xsd's to src/main/resource/schemas
* run `./gradlew xjc`
* results are in `src/main/java`

55 changes: 55 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@

# README

## Using the library

See [`src/example/java`](src/example/java) for examples on how to integrate the library.

There is no HTTP client library included to keep the library small and you can use any Java HTTP client of your choosing.

The library consists of two parts.
First `com.ixopay.client.model` which contains JAXB models for all payment gateway operations.
Second `com.ixopay.client.signing` which contains helpers to correctly sign an HTTP request and to hash transmitted passwords.

### Gradle

Add the [jitpack.io](https://jitpack.io) repository:
```gradle
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
```

Add the dependency (replace `VERSION` with the [GitHub release name](https://github.com/ixolit/java-ixopay/releases)):
```gradle
dependencies {
...
compile 'com.github.ixolit:java-ixopay:VERSION'
...
}
```

### Maven

Add the [jitpack.io](https://jitpack.io) repository:

```maven
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
```

Add the dependency (replace `VERSION` with the [GitHub release name](https://github.com/ixolit/java-ixopay/releases)):
```maven
<dependency>
<groupId>com.github.ixolit</groupId>
<artifactId>java-ixopay</artifactId>
<version>VERSION</version>
</dependency>
```
77 changes: 77 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
buildscript {
repositories {
jcenter()
mavenCentral()
}

dependencies {
classpath "com.github.jacobono:gradle-jaxb-plugin:1.3.6"
}
}

apply plugin: "java"
apply plugin: "maven"
apply plugin: "com.github.jacobono.jaxb"

group = "com.github.ixolit"

sourceCompatibility = 1.8
targetCompatibility = 1.8

repositories {
mavenCentral()
// maven { url "https://jitpack.io" } only needed for unused xjc plugin
}

def xjcVersion = "2.2.7"

sourceSets {
example {
java {
compileClasspath += main.output
runtimeClasspath += main.output
}
}
}

dependencies {
jaxb("org.jvnet.jaxb2_commons:jaxb2-basics-ant:0.6.5")
jaxb("org.jvnet.jaxb2_commons:jaxb2-basics:0.6.4")
jaxb("org.jvnet.jaxb2_commons:jaxb2-basics-annotate:0.6.4")

jaxb("com.sun.xml.bind:jaxb-xjc:$xjcVersion")
jaxb("com.sun.xml.bind:jaxb-impl:$xjcVersion")
jaxb("javax.xml.bind:jaxb-api:$xjcVersion")

jaxb("org.jvnet.jaxb2_commons:jaxb2-value-constructor:3.0")

compile("javax.xml.bind:jaxb-api:$xjcVersion")
}

jaxb {
System.setProperty('javax.xml.accessExternalSchema', 'all')

xsdDir = "src/main/resources/schemas/"
episodesDir = "src/main/resources/episodes"
bindingsDir = "src/main/resources/bindings"
bindings = ["ixopay.xjb"]

xjc {
taskClassname = "org.jvnet.jaxb2_commons.xjc.XJC2Task"
args = ["-Xannotate", "-Xinheritance", "-Xvalue-constructor"]
}
}

configurations {
exampleCompile.extendsFrom compile
exampleRuntime.extendsFrom runtime
}

task sourcesJar(type: Jar, dependsOn: classes) {
classifier = 'sources'
from sourceSets.main.allSource
}

artifacts {
archives sourcesJar
}
Binary file added gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
6 changes: 6 additions & 0 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#Wed Apr 26 15:10:56 CEST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-3.5-all.zip
Loading

0 comments on commit a4d06dc

Please sign in to comment.