Skip to content

Commit

Permalink
Merge branch 'release/1.0.2'
Browse files Browse the repository at this point in the history
  • Loading branch information
saden1 committed Jan 3, 2018
2 parents a7132dd + 99db099 commit b43974e
Show file tree
Hide file tree
Showing 898 changed files with 2,832 additions and 334 deletions.
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ language: java
jdk: oraclejdk8

notifications:
email: testifybot@gmail.com
email: testifyproject-devs@googlegroups.com
on-success: change
on-failure: always

Expand Down
28 changes: 21 additions & 7 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,20 @@ was added, changed, deprecated, removed, fix and security fixes.
- Security - Lists security fixes to security vulnerabilities

## [Unreleased]

## [1.0.2] - 2018-01-03
### Added
- Added support for various GRPC client types (BlockingStub, FutureStub and generic Stub)
- Added ability to use and make available `@Fake` instances using Guice DI
- Added the ability to get generic type to `Instance` contract

### Changed
- Removed framework BOMs from `testify-bom` module and added them to framework specific modules to minimize version conflicts
- Restructured project to make easy to update and build:
- Creating a `modules` module to encapsulate the primary code-base
- Copied external libraries from build tools module
- Copied tools module from the build tools module

## [1.0.1] - 2017-12-19
### Fixed
- Fixed issue with dependency oon virtual resource with invalid version property in `testify-bom`. The dependency was removed.
Expand All @@ -20,23 +34,23 @@ was added, changed, deprecated, removed, fix and security fixes.
## [1.0.0] - 2017-12-18
### Added
- Added Java Agent to enable the redefinition of classes to the core module
- Added InstrumentProvider and InstrumentInstance to enable the redefinition of classes
- Added `InstrumentProvider` and `InstrumentInstance` to enable the redefinition of classes
- Added support for rebasing and intercepting constructor invocations
- Introduced InstanceProvider extension contracts that enable the addition of arbitrary constants
- Introduced ProxyInstanceProvider and ProxyInstanceControler to enable the creation and addition of proxied constants
- Introduced `InstanceProvider` extension contracts that enable the addition of arbitrary constants
- Introduced `ProxyInstanceProvider` and `ProxyInstanceControler` to enable the creation and addition of proxied constants
- Added support for generic JUnit 4 system test runner
- Added a default generic server provider to enable direct management of application test lifecycle
- Added `start()` and `stop` attributes to `@Application` annotation
- Added ability to start a generic server using static void main functions
- Added ability to start a generic server using arbitrary start and stop functions
- Added Grizzly 2 server support
- Added RemoteResourcePreVerifier to verify remote resources
- Added `RemoteResourcePreVerifier` to verify remote resources
- Added GRPC Support

### Changed
- Renamed TestResourceProvider to ResourceController
- Added the ability to get client type and client provider type to ClientProvider contract
- Added the ability to get server type to the ServerProvider contract
- Added the ability to get client type and client provider type to `ClientProvider` contract
- Added the ability to get server type to the `ServerProvider` contract
- Moved reifier and verify extension classes to the extension package
- Moved @Discoverable from build-tools:service-generator to the API module
- Renamed PreiVerifier to Verifier
Expand All @@ -45,7 +59,7 @@ was added, changed, deprecated, removed, fix and security fixes.
- Removed dependency verification from the test runners to PreVerifier implementation

### Removed
- Removed the ability to use the @Fixture annotation on classes in favor of @Module#test attribute
- Removed the ability to use the `@Fixture` annotation on classes in favor of @Module#test attribute
- Removed framework specific GuiceIntegrationTest, HK2InegrationTest, JerseySystemTest, SpringBootSystemTest, SpringIntegrationTest, and SpringSystemTest test runners in favor of generic UnitTest, IntegrationTest, and SystemTest test runners.

## [0.9.9] - 2017-09-15
Expand Down
18 changes: 11 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,11 @@ Testify is an annotation driven Java Testing Framework that provides uniform and
- HK2 Integration Testing
- Jersey 2 RESTful Web Services Framework System Testing
- Google Guice Integration Testing
- gRPC System Testing

## Learning
- Testify documentation is available [here][docs].
- Examples code can be found [here][examples].
- Take a look at [Test Driven Development][tdd-presentation] presentation.
- Example code can be found [here][examples].
- Read [Java for Small Team][java-for-small-team] eBook.

## Issue Tracking
Expand All @@ -44,7 +44,9 @@ Please consider submitting a reproduction project via the a new [Github Issue][g
[Pull requests](http://help.github.com/send-pull-requests) are welcome.

## Staying in Touch
Hit us up on [Gitter][gitter].
- [Gitter][gitter].
- [Users Mailing List][users-groups] ([testifyproject-users@googlegroups.com][users-email])
- [Developers Mailing List][devs-groups] ([testifyproject-devs@googlegroups.com][devs-email])

## Show Some Love
Testify Project does not have a revenue source and depends on support from the open source community. If you believe in our mission please consider donating:
Expand All @@ -60,11 +62,13 @@ The Testify is released under [Apache Software License, Version 2.0](LICENSE).
Enjoy and keep on Testifying!


[docs]: http://fitburio.github.io/testify
[examples]: https://github.com/testify-project/examples/tree/develop/examples
[docs]: https://testifyproject.org
[examples]: https://github.com/testify-project/examples
[github-issues]: https://github.com/testify-project/testify/issues
[github-issues-new]: https://github.com/testify-project/testify/issues/new
[gitter]: https://gitter.im/testify-project/Lobby
[users-email]: mailto:testifyproject-users@googlegroups.com
[users-groups]: https://groups.google.com/forum/#!forum/testifyproject-users
[devs-email]: mailto:testifyproject-devs@googlegroups.com
[devs-groups]: https://groups.google.com/forum/#!forum/testifyproject-devs
[java-for-small-team]: https://www.gitbook.com/book/ncrcoe/java-for-small-teams/details
[tdd-presentation]: http://saden1.slides.com/saden1/tdd/embed?token=C82lw8_l

56 changes: 56 additions & 0 deletions external/external-asm/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2016-2018 Testify Project.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.testifyproject.external</groupId>
<artifactId>external</artifactId>
<version>1.0.2</version>
</parent>

<artifactId>external-asm</artifactId>

<properties>
<asm.version>5.2</asm.version>
</properties>

<build>
<plugins>
<plugin>
<artifactId>maven-shade-plugin</artifactId>
<configuration>
<relocations>
<relocation>
<pattern>org.objectweb.asm</pattern>
<shadedPattern>org.testifyproject.asm</shadedPattern>
</relocation>
</relocations>
</configuration>
</plugin>
</plugins>
</build>

<dependencies>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-all</artifactId>
<version>${asm.version}</version>
</dependency>
</dependencies>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
/*
* Copyright 2016-2017 Testify Project.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.testifyproject.asm;

/**
* This is a dummy class info to satisfy SonaType rules requiring artifacts to
* have javadoc/source attachment.
*
* @author saden
*/
public class Dummy {

}
19 changes: 19 additions & 0 deletions external/external-bytebuddy/DEVNOTE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Developer Notes

## Troubleshooting Ambiguity Issues
- There have been issues in the past with ambiguity resolution not working. To debug and report these issues to ByteBuddy team start the debugging process by looking at
- `MethodDelegationBinder$Processor#bind`
- `MethodDelegationBinder$Default#doResolve`
- Make sure you interceptor method signatures are correct:
- Methods that don't take parameters cant have a parameter annotated with `@AllArguments`
- Static methods can't have a parameter annotated with `@This` unless its optional attribute is set
- Catch all methods must have different parameter lengths than any other declared method.
- Catch-method should look like this:
```java
@RuntimeType
@BindingPriority(Integer.MAX_VALUE)
public Object anyMethod(@SuperCall Callable<?> zuper, @This(optional = true) Object object)
throws Exception {
return zuper.call();
}
```
72 changes: 72 additions & 0 deletions external/external-bytebuddy/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2016-2018 Testify Project.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.testifyproject.external</groupId>
<artifactId>external</artifactId>
<version>1.0.2</version>
</parent>

<artifactId>external-bytebuddy</artifactId>

<properties>
<bytebuddy.version>1.7.6</bytebuddy.version>
</properties>

<build>
<plugins>
<plugin>
<artifactId>maven-shade-plugin</artifactId>
<configuration>
<relocations>
<relocation>
<pattern>net.bytebuddy</pattern>
<shadedPattern>org.testifyproject.bytebuddy</shadedPattern>
</relocation>
</relocations>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<manifestEntries>
<Agent-Class>org.testifyproject.bytebuddy.agent.Installer</Agent-Class>
<Premain-Class>org.testifyproject.bytebuddy.agent.Installer</Premain-Class>
<Can-Redefine-Classes>true</Can-Redefine-Classes>
<Can-Retransform-Classes>true</Can-Retransform-Classes>
<Can-Set-Native-Method-Prefix>true</Can-Set-Native-Method-Prefix>
</manifestEntries>
</transformer>
</transformers>
</configuration>
</plugin>
</plugins>
</build>

<dependencies>
<dependency>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy</artifactId>
<version>${bytebuddy.version}</version>
</dependency>
<dependency>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy-agent</artifactId>
<version>${bytebuddy.version}</version>
</dependency>
</dependencies>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
/*
* Copyright 2016-2017 Testify Project.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.testifyproject.bytebuddy;

/**
* A contract that enables the substitution of parameters passed to super method using
* {@code net.bytebuddy.implementation.bind.annotation.Morph} annotation.
*
* @author saden
* @param <T> the super call return type
*/
public interface Morpher<T> {

/**
* Invoke the morph method using the given parameters.
*
* @param arguments the arguments passed to the super call
* @return the result returned from the super call.
*/
T morph(Object... arguments);
}
Loading

0 comments on commit b43974e

Please sign in to comment.