Victor Kazakov

Gateway Developer Plugin 0.5.00 Released

Blog Post created by Victor Kazakov Employee on May 25, 2018

The 0.5.00 version of the Gateway Developer Plugin and the Gateway Export Plugin were just released! This adds two new features and includes a few bug fixes.

Try it Out

Try out the plugins cloning the Gateway Developer Example repository.

git clone https://github.com/ca-api-gateway-examples/gateway-developer-example.git
cd gateway-developer-example
./gradlew build
docker-compose up

 

New Features in 0.5.00

Dependencies on Other Bundles

You can now declare dependencies on other bundle. For example, see the following gradle build file snippet

dependencies {
    bundle group: 'com.example', name: 'common-policies', version: '1.0.00', ext: 'bundle'
}

Adding the above dependency allows you to refer to policies and encapsulated assertions that are available in the common-policies bundle. For example, if the common-policies bundle contains a policy with path common-policies/utilities/lookup-user. You could add it as a policy include:

<wsp:Policy xmlns:wsp="http://schemas.xmlsoap.org/ws/2002/12/policy" xmlns:L7p="http://www.layer7tech.com/ws/policy">
    <wsp:All wsp:Usage="Required">
        ...
        <L7p:Include>
            <L7p:PolicyGuid policyPath="common-policies/utilities/lookup-user.xml"/>
        </L7p:Include>
        ...
    </wsp:All>
</wsp:Policy>

Adding support for policy backed services

Policy Backed Services will now be exported and can be managed by the two plugins. If the folder that your solution is located in contains a policy backed service, the associated policy backed service metadata will be exported along with your policy. The policy backed services are listed in src/main/gateway/config/policy-backed-services.yml. An example of two policy backed services:

background-task-service:
  interfaceName: "com.l7tech.objectmodel.polback.BackgroundTask"
  operations:
  - policy: "gateway-solution/policy-backed-services/policy-backed-service-1.xml"
    operationName: "run"
another-background-task-service:
  interfaceName: "com.l7tech.objectmodel.polback.BackgroundTask"
  operations:
  - policy: "gateway-solution/policy-backed-services/policy-backed-service-2.xml"
    operationName: "run"

Bug Fixes

Exporting only the specified folder

There was an issue where if your policies referred to something outside of the solution folder those would also be exported. This is no longer the case.

Not overriding the build target

The plugin was overriding the gradle build target. This made it so that it could not be used with other gradle plugins. This has been fixed and the build target is no longer overridden.

Remove timestamp from global.properties file on export

On every export a timestamp was being updated in the global.properties file. This timestamp has been removed.

Build using Java 8

The plugins are now built using Java 8. This means that Java 9 or higher is no longer required to run these plugins. However, sometime in the future this will be updated once again.

Other changes

Add Gradle Wrapper

In order to make it simpler and more consistent across environments when building the plugins the gradle wrapper was added to the plugin repositories.

Integration into TravisCI and SonarCloud

Continuous integration workflow was added by integrating into TravisCI for building the plugins and SonarCloud for checking the code.

Outcomes