Skip to content

Commit

Permalink
Merge branch 'readperformancedata' of https://github.com/heeseon/java…
Browse files Browse the repository at this point in the history
…-client into readperformancedata

* 'readperformancedata' of https://github.com/heeseon/java-client: (156 commits)
  build error
  Do not hardcode
  Do not hardcode
  Update README.md
  Update README.md
  Code style issues which were found by reviewer were fixed
  Code style issues which were found by reviewer were fixed
  The addition to appium#738 - following dependencies were updated:   `org.seleniumhq.selenium:selenium-java` to 3.6.0   `com.google.code.gson:gson` to 2.8.2   `org.springframework:spring-context` to 5.0.0.RELEASE   `org.aspectj:aspectjweaver` to 1.8.11
  do not zero out implicit wait during location call
  rename DEFAULT_IMPLICITLY_WAIT_TIMEOUT to DEFAULT_TIMEOUT
  Update README.md
  some minor things that were found by reviewers were improved
  code style issues were got fixed
  appium#732 FIX
  ServerBuilderTest: ip calculation was improved
  ServerBuilderTest: the path resolving
  ServerBuilderTest: magic strings were turned into final values
  ServerBuilderTest: magic strings were turned into final values
  ServerBuilderTest: code improvement.
  Tests of local appium DriverService were re-designed.
  ...
  • Loading branch information
heeseon committed Oct 15, 2017
2 parents b163ac5 + 9fb37db commit 1d32d0b
Show file tree
Hide file tree
Showing 267 changed files with 6,303 additions and 20,495 deletions.
2 changes: 1 addition & 1 deletion NOTICE
Original file line number Diff line number Diff line change
@@ -1 +1 @@
Copyright 2014-2016 Appium Contributors
Copyright 2014-2017 Appium Contributors
118 changes: 113 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#java-client
# java-client

[![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.appium/java-client/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.appium/java-client)
[![Javadoc](https://javadoc-emblem.rhcloud.com/doc/io.appium/java-client/badge.svg)](http://www.javadoc.io/doc/io.appium/java-client)
Expand All @@ -9,17 +9,123 @@ This is the Java language binding for writing Appium Tests, conforms to [Mobile

[API docs](http://appium.github.io/java-client/)

###Features and other interesting information###
### Features and other interesting information

[Tech stack](https://github.com/appium/java-client/blob/master/docs/Tech-stack.md)

[How to install the project](https://github.com/appium/java-client/blob/master/docs/Installing-the-project.md)

[WIKI](https://github.com/appium/java-client/wiki)

##Changelog##
*5.0.0 (under construction yet)*

## Changelog

*5.1.0 (under construction yet)*

*5.0.4*
- **[BUG FIX]**. Client was crashing when user was testing iOS with server 1.7.0. Report: [#732](https://github.com/appium/java-client/issues/732). Fix: [#733](https://github.com/appium/java-client/pull/733).
- **[REFACTOR]** **[BREAKING CHANGE]** Excessive invocation of the implicit waiting timeout was removed. This is the breaking change because API of `AppiumElementLocator` and `AppiumElementLocatorFactory` was changed. Request: [#735](https://github.com/appium/java-client/issues/735), FIXES: [#738](https://github.com/appium/java-client/pull/738), [#741](https://github.com/appium/java-client/pull/741)
- **[DEPENDENCY UPDATES]**
- org.seleniumhq.selenium:selenium-java to 3.6.0
- com.google.code.gson:gson to 2.8.2
- org.springframework:spring-context to 5.0.0.RELEASE
- org.aspectj:aspectjweaver to 1.8.11

*5.0.3*
- **[BUG FIX]** Selenuim version was reverted from boundaries to the single number. Issue report: [#718](https://github.com/appium/java-client/issues/718). FIX: [#722](https://github.com/appium/java-client/pull/722)
- **[ENHANCEMENT]** The `pushFile` was added to IOSDriver. Feature request: [#720](https://github.com/appium/java-client/issues/720). Implementation: [#721](https://github.com/appium/java-client/pull/721). This feature requires appium node server v>=1.7.0

*5.0.2* **[BUG FIX RELEASE]**
- **[BUG FIX]** Dependency conflict resolving. The report: [#714](https://github.com/appium/java-client/issues/714). The fix: [#717](https://github.com/appium/java-client/pull/717). This change may affect users who use htmlunit-driver and/or phantomjsdriver. At this case it is necessary to add it to dependency list and to exclude old selenium versions.

*5.0.1* **[BUG FIX RELEASE]**
- **[BUG FIX]** The fix of the element genering on iOS was fixed. Issue report: [#704](https://github.com/appium/java-client/issues/704). Fix: [#705](https://github.com/appium/java-client/pull/705)

*5.0.0*
- **[REFACTOR]** **[BREAKING CHANGE]** 5.0.0 finalization. Removal of obsolete code. [#660](https://github.com/appium/java-client/pull/660)
- **[ENHANCEMENT]** Enable nativeWebTap setting for iOS. [#658](https://github.com/appium/java-client/pull/658)
- **[ENHANCEMENT]** The `getCurrentPackage` was added. [#657](https://github.com/appium/java-client/pull/657)
- **[ENHANCEMENT]** The `toggleTouchIDEnrollment` was added. [#659](https://github.com/appium/java-client/pull/659)
- **[BUG FIX]** The clearing of existing actions/parameters after perform is invoked. [#663](https://github.com/appium/java-client/pull/663)
- **[BUG FIX]** [#669](https://github.com/appium/java-client/pull/669) missed parameters of the `OverrideWidget` were added:
- `iOSXCUITAutomation`
- `windowsAutomation`
- **[BUG FIX]** ByAll was re-implemented. [#680](https://github.com/appium/java-client/pull/680)
- **[BUG FIX]** **[BREAKING CHANGE]** The issue of compliance with Selenium grid 3.x was fixed. This change is breaking because now java_client is compatible with appiun server v>=1.6.5. Issue report [#655](https://github.com/appium/java-client/issues/655). FIX [#682](https://github.com/appium/java-client/pull/682)
- **[BUG FIX]** issues related to latest Selenium changes were fixed. Issue report [#696](https://github.com/appium/java-client/issues/696). Fix: [#699](https://github.com/appium/java-client/pull/699).
- **[UPDATE]** Dependency update
- `selenium-java` was updated to 3.5.x
- `org.apache.commons-lang3` was updated to 3.6
- `org.springframework.spring-context` was updated to 4.3.10.RELEASE
- **[ENHANCEMENT]** Update of the touch ID enroll method. The older `PerformsTouchID#toggleTouchIDEnrollment` was marked `Deprecated`.
It is recoomended to use `PerformsTouchID#toggleTouchIDEnrollment(boolean)` instead. [#695](https://github.com/appium/java-client/pull/695)


*5.0.0-BETA9*
- **[ENHANCEMENT]** Page factory: Mixed locator strategies were implemented. Feature request:[#565](https://github.com/appium/java-client/issues/565) Implementation: [#646](https://github.com/appium/java-client/pull/646)
- **[DEPRECATED]** All the content of the `io.appium.java_client.youiengine` package was marked `Deprecated`. It is going to be removed. [#652](https://github.com/appium/java-client/pull/652)
- **[UPDATE]** Update of the `com.google.code.gson:gson` to v2.8.1.

*5.0.0-BETA8*
- **[ENHANCEMENT]** Page factory classes became which had package visibility are `public` now. [#630](https://github.com/appium/java-client/pull/630)
- `io.appium.java_client.pagefactory.AppiumElementLocatorFactory`
- `io.appium.java_client.pagefactory.DefaultElementByBuilder`
- `io.appium.java_client.pagefactory.WidgetByBuilder`

- **[ENHANCEMENT]** New capabilities were added [#626](https://github.com/appium/java-client/pull/626):
- `AndroidMobileCapabilityType#AUTO_GRANT_PERMISSIONS`
- `AndroidMobileCapabilityType#ANDROID_NATURAL_ORIENTATION`
- `IOSMobileCapabilityType#XCODE_ORG_ID`
- `IOSMobileCapabilityType#XCODE_SIGNING_ID`
- `IOSMobileCapabilityType#UPDATE_WDA_BUNDLEID`
- `IOSMobileCapabilityType#RESET_ON_SESSION_START_ONLY`
- `IOSMobileCapabilityType#COMMAND_TIMEOUTS`
- `IOSMobileCapabilityType#WDA_STARTUP_RETRIES`
- `IOSMobileCapabilityType#WDA_STARTUP_RETRY_INTERVAL`
- `IOSMobileCapabilityType#CONNECT_HARDWARE_KEYBOARD`
- `IOSMobileCapabilityType#MAX_TYPING_FREQUENCY`
- `IOSMobileCapabilityType#SIMPLE_ISVISIBLE_CHECK`
- `IOSMobileCapabilityType#USE_CARTHAGE_SSL`
- `IOSMobileCapabilityType#SHOULD_USE_SINGLETON_TESTMANAGER`
- `IOSMobileCapabilityType#START_IWDP`
- `IOSMobileCapabilityType#ALLOW_TOUCHID_ENROLL`
- `MobileCapabilityType#EVENT_TIMINGS`

- **[UPDATE]** Dependencies were updated:
- `org.seleniumhq.selenium:selenium-java` was updated to 3.4.0
- `cglib:cglib` was updated to 3.2.5
- `org.apache.httpcomponents:httpclient` was updated to 4.5.3
- `commons-validator:commons-validator` was updated to 1.6
- `org.springframework:spring-context` was updated to 4.3.8.RELEASE


*5.0.0-BETA7*
- **[ENHANCEMENT]** The ability to customize the polling strategy of the waiting was provided. [#612](https://github.com/appium/java-client/pull/612)
- **[ENHANCEMENT]** **[REFACTOR]** Methods which were representing time deltas instead of elementary types became `Deprecated`. Methods which use `java.time.Duration` are suugested to be used. [#611](https://github.com/appium/java-client/pull/611)
- **[ENHANCEMENT]** The ability to calculate screenshots overlap was included. [#595](https://github.com/appium/java-client/pull/595).


*5.0.0-BETA6*
- **[UPDATE]** Update to Selenium 3.3.1
- **[ENHANCEMENT]** iOS XCUIT mode automation: API to run application in background was added. [#593](https://github.com/appium/java-client/pull/593)
- **[BUG FIX]** Issue report: [#594](https://github.com/appium/java-client/issues/594). FIX: [#597](https://github.com/appium/java-client/pull/597)
- **[ENHANCEMENT]** The class chain locator was added. [#599](https://github.com/appium/java-client/pull/599)


*5.0.0-BETA5*
- **[UPDATE]** Update to Selenium 3.2.0
- **[BUG FIX]** Excessive dependency on `guava` was removed. It causes errors. Issue report: [#588](https://github.com/appium/java-client/issues/588). FIX: [#589](https://github.com/appium/java-client/pull/589).
- **[ENHANCEMENT]**. The capability `io.appium.java_client.remote.AndroidMobileCapabilityType#SYSTEM_PORT` was added. [#591](https://github.com/appium/java-client/pull/591)

*5.0.0-BETA4*
- **[ENHANCEMENT]** Android. API to read the performance data was added. [#562](https://github.com/appium/java-client/pull/562)
- **[REFACTOR]** Android. Simplified the activity starting by reducing the number of parameters through POJO clas. Old methods which start activities were marked `@Deprecated`. [#579](https://github.com/appium/java-client/pull/579) [#585](https://github.com/appium/java-client/pull/585)
- **[BUG FIX]** Issue report:[#574](https://github.com/appium/java-client/issues/574). Fix:[#582](https://github.com/appium/java-client/pull/582)

*5.0.0-BETA3*
[BUG FIX]
- **[BUG FIX]**:Issue report: [#567](https://github.com/appium/java-client/issues/567). Fix: [#568](https://github.com/appium/java-client/pull/568)

*5.0.0-BETA2*
- **[BUG FIX]**:Issue report: [#549](https://github.com/appium/java-client/issues/549). Fix: [#551](https://github.com/appium/java-client/pull/551)
- New capabilities were added [#533](https://github.com/appium/java-client/pull/553):
- `IOSMobileCapabilityType#USE_NEW_WDA`
Expand All @@ -35,6 +141,8 @@ The capability `IOSMobileCapabilityType#REAL_DEVICE_LOGGER` was removed. [#533](
- `boolean isBrowser()`
- `io.appium.java_client.HasSessionDetails` is used by the ` io.appium.java_client.internal.JsonToMobileElementConverter ` to define which instance of the `org.openqa.selenium.WebElement` subclass should be created.

- **[ENHANCEMENT]**: The additional event firing feature. PR: [#559](https://github.com/appium/java-client/pull/559). The [WIKI chapter about the event firing](https://github.com/appium/java-client/blob/master/docs/The-event_firing.md) was updated.

*5.0.0-BETA1*
- **[MAJOR ENHANCEMENT]**: Migration to Java 8. Epic: [#399](https://github.com/appium/java-client/issues/399)
- API with default implementation. PR [#470](https://github.com/appium/java-client/pull/470)
Expand Down
4 changes: 2 additions & 2 deletions archive/docs/How-to-propose-a-PR.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#A good pull-request should contain
# A good pull-request should contain

### Change list

Expand All @@ -19,6 +19,6 @@ There should be provided more details about changes if it is necessary. If there
can provide code samples which show the way they work and possible use cases. Also you can create [gists](https://gist.github.com)
with pasted java code samples or put them at a PR description using markdown. About markdown please read [Mastering markdown](https://guides.github.com/features/mastering-markdown/) and [Writing on GitHub](https://help.github.com/categories/writing-on-github/)

#Pull-request template
# Pull-request template

There is [PULL_REQUEST_TEMPLATE.md)](https://github.com/appium/java-client/blob/master/PULL_REQUEST_TEMPLATE.md) which should help you to make a good pull request.
8 changes: 4 additions & 4 deletions archive/docs/How-to-report-an-issue.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
#Be sure that it is not a server-side problem if you are facing something that looks like a bug
# Be sure that it is not a server-side problem if you are facing something that looks like a bug

The Appium Java client is the thin client which just sends requests and receives responces generally.
Be sure that this bug is not reported [here](https://github.com/appium/appium/issues) and/or there is
no progress on this issue.

#The good issue report should contain
# The good issue report should contain

### Description

Expand Down Expand Up @@ -42,9 +42,9 @@ There should be created a [gist](https://gist.github.com) which is a paste of yo
If you are reporting a bug, _always_ include Appium logs as linked gists! It helps to define the problem correctly and clearly.


#Issue template
# Issue template
There is [ISSUE_TEMPLATE.md](https://github.com/appium/java-client/blob/master/ISSUE_TEMPLATE.md) which should help you to make a good issue report.

#... And don't say that you weren't warned.
# ... And don't say that you weren't warned.

If a report is not readable and/or there is no response from a reporter and some important details are needed then the issue will be closed after some time.
41 changes: 30 additions & 11 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
apply plugin: 'java'
apply plugin: 'idea'
apply plugin: 'maven'
apply plugin: 'eclipse'
apply plugin: 'jacoco'
Expand All @@ -7,7 +8,7 @@ apply plugin: 'signing'
apply plugin: 'maven-publish'

group 'io.appium'
version '5.0.0-BETA1'
version '5.0.4'

repositories {
jcenter()
Expand All @@ -18,23 +19,26 @@ repositories {

buildscript {
repositories {
jcenter()
maven {
url "http://repo.maven.apache.org/maven2"
}
}
dependencies {
classpath "org.owasp:dependency-check-gradle:1.4.0"
classpath 'com.github.jengelman.gradle.plugins:shadow:1.2.4'
}
}

apply plugin: "org.owasp.dependencycheck"
apply plugin: 'com.github.johnrengelman.shadow'

configurations {
ecj
}

dependencies {
ecj 'org.eclipse.jdt.core.compiler:ecj:4.5.1'
ecj 'org.eclipse.jdt.core.compiler:ecj:4.6.1'
}

compileJava {
Expand All @@ -50,22 +54,37 @@ compileJava {
]
}

ext.seleniumVersion = '3.6.0'

dependencies {
compile('org.seleniumhq.selenium:selenium-java:3.0.1'){
compile ("org.seleniumhq.selenium:selenium-java:${seleniumVersion}") {
force = true

exclude module: 'cglib'
exclude group: 'com.google.code.gson'
exclude module: 'phantomjsdriver'
exclude module: 'htmlunit-driver'
exclude group: 'net.sourceforge.htmlunit'

}
compile ("org.seleniumhq.selenium:selenium-support:${seleniumVersion}") {
force = true
}
compile ("org.seleniumhq.selenium:selenium-api:${seleniumVersion}") {
force = true
}
compile 'com.google.code.gson:gson:2.8.0'
compile 'org.apache.httpcomponents:httpclient:4.5.2'
compile 'com.google.guava:guava:20.0'
compile 'cglib:cglib:3.2.4'
compile 'commons-validator:commons-validator:1.5.1'
compile 'org.apache.commons:commons-lang3:3.5'
compile 'com.google.code.gson:gson:2.8.2'
compile 'org.apache.httpcomponents:httpclient:4.5.3'
compile 'cglib:cglib:3.2.5'
compile 'commons-validator:commons-validator:1.6'
compile 'org.apache.commons:commons-lang3:3.6'
compile 'commons-io:commons-io:2.5'
compile 'org.springframework:spring-context:4.3.5.RELEASE'
compile 'org.aspectj:aspectjweaver:1.8.10'
compile 'org.springframework:spring-context:5.0.0.RELEASE'
compile 'org.aspectj:aspectjweaver:1.8.11'
compile 'org.openpnp:opencv:3.2.0-1'

testCompile 'junit:junit:4.12'
testCompile 'org.hamcrest:hamcrest-all:1.3'
}

ext {
Expand Down
10 changes: 5 additions & 5 deletions docs/Functions.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Appium java client has some features based on [Java 8 Functional interfaces](https://www.oreilly.com/learning/java-8-functional-interfaces).

#Conditions
# Conditions

```java
io.appium.java_client.functions.AppiumFunction
Expand Down Expand Up @@ -58,7 +58,7 @@ private final AppiumFunction<Pattern, WebDriver> contextFunction = input -> {
};
```

##using one function as pre-condition
## using one function as pre-condition

```java
@Test public void tezt() {
Expand All @@ -70,7 +70,7 @@ private final AppiumFunction<Pattern, WebDriver> contextFunction = input -> {
}
```

##using one function as post-condition
## using one function as post-condition

```java
import org.openqa.selenium.support.ui.FluentWait;
Expand All @@ -85,7 +85,7 @@ import org.openqa.selenium.support.ui.Wait;
}
```

#Touch action supplier
# Touch action supplier

[About touch actions](https://github.com/appium/java-client/blob/master/docs/Touch-actions.md)

Expand All @@ -96,7 +96,7 @@ create gesture libraries/utils using suppliers. Appium java client provides this
io.appium.java_client.functions.ActionSupplier
```

##Samples
## Samples

```java
private final ActionSupplier<TouchAction> horizontalSwipe = () -> {
Expand Down
4 changes: 2 additions & 2 deletions docs/How-to-propose-a-PR.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#A good pull-request should contain
# A good pull-request should contain

### Change list

Expand All @@ -19,6 +19,6 @@ There should be provided more details about changes if it is necessary. If there
can provide code samples which show the way they work and possible use cases. Also you can create [gists](https://gist.github.com)
with pasted java code samples or put them at a PR description using markdown. About markdown please read [Mastering markdown](https://guides.github.com/features/mastering-markdown/) and [Writing on GitHub](https://help.github.com/categories/writing-on-github/)

#Pull-request template
# Pull-request template

There is [PULL_REQUEST_TEMPLATE.md)](https://github.com/appium/java-client/blob/master/PULL_REQUEST_TEMPLATE.md) which should help you to make a good pull request.
8 changes: 4 additions & 4 deletions docs/How-to-report-an-issue.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
#Be sure that it is not a server-side problem if you are facing something that looks like a bug
# Be sure that it is not a server-side problem if you are facing something that looks like a bug

The Appium Java client is the thin client which just sends requests and receives responces generally.
Be sure that this bug is not reported [here](https://github.com/appium/appium/issues) and/or there is
no progress on this issue.

#The good issue report should contain
# The good issue report should contain

### Description

Expand Down Expand Up @@ -42,9 +42,9 @@ There should be created a [gist](https://gist.github.com) which is a paste of yo
If you are reporting a bug, _always_ include Appium logs as linked gists! It helps to define the problem correctly and clearly.


#Issue template
# Issue template
There is [ISSUE_TEMPLATE.md](https://github.com/appium/java-client/blob/master/ISSUE_TEMPLATE.md) which should help you to make a good issue report.

#... And don't say that you weren't warned.
# ... And don't say that you weren't warned.

If a report is not readable and/or there is no response from a reporter and some important details are needed then the issue will be closed after some time.
6 changes: 3 additions & 3 deletions docs/Installing-the-project.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
#Requirements
# Requirements

Firstly you should install appium server. [Appium getting started](http://appium.io/getting-started.html). The version 1.6.3 or greater is recommended.

Since version 5.x there many features based on Java 8. So we recommend to install JDK SE 8 and provide that source compatibility.

#Maven
# Maven

Add the following to pom.xml:

Expand Down Expand Up @@ -40,7 +40,7 @@ If it is necessary to change the version of Selenium then you can configure pom.
</dependency>
```

#Gradle
# Gradle

Add the following to build.gradle:

Expand Down
Loading

0 comments on commit 1d32d0b

Please sign in to comment.