Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
85 commits
Select commit Hold shift + click to select a range
074ed8a
Updated some javadoc.
May 31, 2016
c07aa0d
Added "ResponseParameters customResponseParams" to most methods.
May 31, 2016
dbdc653
Initial submission.
May 31, 2016
6aa23a4
Added new custom default http header property management.
May 31, 2016
6ce2244
Fixed bug with re-newed security token for external security services.
May 31, 2016
4caa512
Various changes in response creation methods to include custom response
May 31, 2016
9c86ab9
Added new customResponseParam paraneter to various methods.
May 31, 2016
498e92c
Changed some minor things for testing.
May 31, 2016
8527518
adapter.custom.response.headers added to properties file.
May 31, 2016
bd20b98
Updated developer's guide with latest documentation of new
May 31, 2016
bbbe2bc
re-generated javadoc.
May 31, 2016
be34424
Replaced with new version of developer's guide.
May 31, 2016
2f3d881
Added release notes for v0.10.0.
May 31, 2016
c1baac2
set build number to v0.10.0-beta
May 31, 2016
860d130
Updated framework library to v0.10.0.
May 31, 2016
27b2a11
Fixed issue where negative page size was overridden without the caller
Jun 2, 2016
0abf65e
Report an error if page number is set to <=0.
Jun 2, 2016
a9f3989
Updated libraries.
Jun 2, 2016
f580943
Fixed a few typos.
Jun 16, 2016
20daf03
Fixed issue with Hibernate that was not initialised.
Jul 7, 2016
3bc484a
Added nwe constructor.
Aug 2, 2016
54c3211
Added example on how to connect to RICOne.
Aug 2, 2016
4d53806
Updated release notes and libraries for latest fixes.
Aug 11, 2016
02525bf
Made consumerID int rather than string to match the SIF Specification.
Aug 11, 2016
199c5cc
Use int for ConsumerID rather than string.
Aug 11, 2016
313258c
Added example of DLEAYED retrieve() call.
Aug 11, 2016
3fbc4dd
Updated README.txt to README.md.
Sep 1, 2016
5d18db0
Moved from systemic-framework.jar.
Nov 24, 2016
f193a3b
Removed warnings.
Nov 24, 2016
61158c2
Restructuring due to maven build.
Nov 24, 2016
fbefc65
Move from systemic-framework.jar.
Nov 24, 2016
9d4310f
Initial submission.
Nov 24, 2016
0df0cd0
Restructuring due to maven build.
Nov 24, 2016
b15f599
Initial submission.
Nov 24, 2016
f175aa1
Restructuring due to maven build.
Nov 24, 2016
6421911
Restructuring due to maven build.
Nov 24, 2016
ad3ce5c
Restructuring due to maven build.
Nov 24, 2016
7bb8dd8
Restructuring due to maven build.
Nov 24, 2016
4693dd8
Restructuring due to maven build.
Nov 24, 2016
f1b3135
Restructuring due to maven build.
Nov 24, 2016
a501e5e
Restructuring due to maven build.
Nov 24, 2016
139f4b2
Restructuring due to maven build.
Nov 24, 2016
85de225
Restructuring due to maven build.
Nov 24, 2016
b73c647
Initial submission.
Nov 24, 2016
48e50be
Restructuring due to maven build.
Nov 24, 2016
7236f83
Updated to latest version.
Nov 24, 2016
ce39d0b
Latest library build based on maven.
Nov 24, 2016
d8d6e60
Updated to indicate maven approach.
Nov 24, 2016
f8bbebb
Initial submission.
Nov 24, 2016
fc63b0e
Updated to latest namespace.
Nov 24, 2016
2098ffa
ignore resources.
Nov 24, 2016
dd22e09
Restructuring due to maven build.
Nov 24, 2016
6f74dc1
Restructuring due to maven build.
Nov 24, 2016
e6e52e8
Initial submission.
Nov 24, 2016
82460c2
Restructuring due to maven build.
Nov 24, 2016
bb8da2f
Initial submission.
Nov 24, 2016
2c2023f
Restructuring due to maven build.
Nov 24, 2016
b0b2ea8
Restructuring due to maven build.
Nov 24, 2016
a131684
Initial submission.
Nov 24, 2016
00d5cbc
Initial submission.
Nov 24, 2016
77ce708
Upadated settings
Nov 24, 2016
2ef74f3
Initial submission.
Nov 24, 2016
92e1d03
Restructuring due to maven build.
Nov 24, 2016
6fb7d8b
Initial submission.
Nov 24, 2016
b9b55ce
Minor changes to allow for Servlet 3.1 specification as well as Servlet
Nov 24, 2016
6567ede
removed.
Nov 24, 2016
c4319be
Initial submission.
Nov 24, 2016
7edc842
Removed unnecessary classpath entries.
Nov 28, 2016
40cc6e1
Fixed typo.
Nov 28, 2016
203ff76
Updated Classpath entries
Nov 28, 2016
2abe61b
Remove eclipse specific files from Git.
Dec 8, 2016
7c4e288
Remove eclipse specific files from Git.
Dec 8, 2016
a958d46
Remove eclipse specific files from Git.
Dec 8, 2016
d3b332e
Remove eclipse specific files from Git.
Dec 8, 2016
7e8e0e7
Remove eclipse specific files from Git.
Dec 8, 2016
74d774d
Remove eclipse specific files from Git.
Dec 8, 2016
2e6bf5c
Remove eclipse specific files from Git.
Dec 8, 2016
65411cd
Remove eclipse specific files from Git.
Dec 8, 2016
ea6a515
Remove eclipse specific files from Git.
Dec 8, 2016
8eea9e2
Remove eclipse specific files from Git.
Dec 8, 2016
508b34b
Updated with latest instructions on how to use eclipse.
Dec 8, 2016
bb74f4a
Updated docu.
Dec 20, 2016
76d933f
Updated release notes.
Dec 20, 2016
f8424d2
Create README.md
joerghuber Dec 20, 2016
748640f
Merge branch 'master' into master
bencart Dec 21, 2016
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 0 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,3 @@ See the [wiki associated with this repository](https://github.com/Access4Learnin
* contributing to this framework
* the Java coding style to be used and
* the structure of the SIF 3 Framework repositories



26 changes: 0 additions & 26 deletions SIF3InfraREST/.classpath

This file was deleted.

5 changes: 5 additions & 0 deletions SIF3InfraREST/.gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,6 @@
/backup
/.settings/
/.project
/.classpath
/bin/

36 changes: 0 additions & 36 deletions SIF3InfraREST/.project

This file was deleted.

12 changes: 0 additions & 12 deletions SIF3InfraREST/.settings/.jsdtscope

This file was deleted.

This file was deleted.

19 changes: 0 additions & 19 deletions SIF3InfraREST/.settings/org.eclipse.wst.common.component

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

2 changes: 2 additions & 0 deletions SIF3InfraREST/DB/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
/SIF3InfrastructureERM.mwb
/SIF3InfrastructureERM.mwb.bak
1 change: 1 addition & 0 deletions SIF3InfraREST/META-INF/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/MANIFEST.MF
160 changes: 160 additions & 0 deletions SIF3InfraREST/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
# License
> Copyright 2014 - 2016 Systemic Pty Ltd
>
> 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](http://www.apache.org/licenses/LICENSE-2.0 "Apache License, Version 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.

# Summary
The SIF3 Framework is a Java Framework that enables developers to efficiently implement SIF3 services (consumers and/or providers). It fully encapsulates the low level SIF3 infrastructure. It also provides a basic environment provider which is core to SIF3.

The framework has some basic demo classes that illustrate how to use the framework. It also has a developer's guide that can be found in the "documentation/UserGuide" directory.

There is a set of pre-built framework libraries in the "release" directory. Please refer to the developer's guide for more details an the libraries.

# Maven
As of version 0.10.0 the SIF3 Framework is a multi-module Maven project. It is important to note that the SIF3
Framework is not yet available in a global maven repository. For more details about the maven build and how it can
be used within other maven projects refer to the developer's guide section **"3.3.1. Framework Libraries Build"** and
**"3.3.2. Maven Coordinates"** and its sub-sections. Once you understand these sections and have performed appropriate
actions to have the SIF3 Framework in an accessible repository you can use the following dependency in your own SIF3
Project (note that the version number will change over time):
```xml
<dependency>
<groupId>sif3.framework</groupId>
<artifactId>sif3-infra-rest</artifactId>
<version>0.10.0</version>
</dependency>
```

# Version History and Update
## Version from 26/11/2013
If you have downloaded the framework before Nov 26, 2013 and get an updated version after this date you must perform a few steps to make the framework function correctly. There are NO code changes only configuration changes.

### Step 1:
Remove all environment XML files in the provider's and consumer's 'workstore' and all XML files in the provider's environment store under the 'any' directory. Please refer to the developer's guide section 5.3.1.1.2 (consumer) and 5.3.1.1.3 (provider) for details where the 'workstore' is located for both these components.

### Step 2:
Open all environment XML files in the provider's 'template' directory. Note if you have more than one provider configured then you must open the files in all provider's 'template' directories. Please refer to the developer's guide section 5.3.1.1.3 for details about the location of the 'template' directory. Each environment XML file has a section with the name `<infrastructureServices>`. Replace that entire section with the following XML:
```xml
<infrastructureServices>
<infrastructureService name="environment">environments</infrastructureService>
<infrastructureService name="requestsConnector">requests</infrastructureService>
<infrastructureService name="provisionRequests">provision</infrastructureService>
<infrastructureService name="queues">queues</infrastructureService>
<infrastructureService name="subscriptions">subscriptions</infrastructureService>
</infrastructureServices>
```
For details about that XML snipped please see section 5.3.1.1.3 in the developer's guide, paragraph with the title 'Infrastructure Service URIs'.

### Step 3:
Open the provider's properties file (i.e. StudentProvider.properties). For each environment the provider supports add the following new property:
```
env.connector.url=<baseURI>
```

`<baseURI>`: The base URI of the provider. This is the value that used to be in the `<infrastructureService>` node of each service. (i.e. http://localhost:9080/SIF3InfraREST/sif3). Also refer to section 8 and 9 of the developer's guide for details about this property.

## Version from 10/12/2013
If you have downloaded the framework before Nov 26, 2013 and get an updated version after this date you must perform all the steps listed in the "Version from 26/11/2013" first.

This latest version of the framework has the HTTPS (secured connections) capability added. It is recommended that you read section "5.10 Security - HTTPS Configuration" of the Developer's Guide first.

## Version from 03/01/2014
Modified some underlying classes to include all header fields as specified in the latest SIF3 specification. Also implemented the Bulk Delete which is now managed via a HTTP PUT and an appropriate header field.

Also added the functionality for more rigorous ACL checks before any REST calls are made. Before each REST call the consumer checks if access to the call is APPROVED (looking up ACLs in the environment XML). To disable or enable this ACL check please refer to the Developer's Guide and read up on the 'adapter.checkACL' property for the consumer and/or provider.

Please note that with this latest download the Provider Interface has an additional parameter for the two create operation. **Your code may break!** Add the parameter 'boolean useAdvisory' to your provider classes were you may get a compile error. Please refer to the latest SIF3 Specification for details what this value means.

## Version from 17/05/2014: MAJOR UPDATE
**NOTE: THIS IS A MAJOR UPDATE TO THE FRAMEWORK. THE JAR FILES IN THE RELEASE DIRECTORY SHOULD HAVE A VERSION OF v0.2-alpha.**

You should read through the installation instructions in the Developer's Guide in the directory documentation/UserGuide(SIF3Framework_DevelopersGuide_v0.6.2.docx). If you have developed some consumer and/or provider classes in the past and you want to use them you may have to change some of the method signatures to fix them up. Also neither the consumer nor the provider constructor take any arguments anymore. The management of environments and their templates has changed significantly and may need some re-configuring. Please refer to the Developer's Guide for details (section 5.3).

## Version from 12/08/2014: v0.3
This version updates the framework from version 0.2 to version 0.3. The latest jar files can be found in the "release" directory. Also upgrade instructions can be found in the directory "release/v0.3".
Major Changes in this version include:
- Bug Fixes (i.e. use header fields for paging information rather than query parameters)
- Ability for a DIRECT provider to deal with multiple environment templates. For details refer to section 5.3.1.3
in the Developer's Guide.
- Updated AU 1.3 SIF data model to cater for latest changes to time table objects.

## Version from 11/09/2014: v0.3.1 - Minor update to above
The provider interface class has changed which enforces an additional parameter on all methods. All object provider classes that extend the BaseProvider or BaseEventProvider must add the parameter "RequestMetadata metadata" to all methods. This new parameter allows the object provider to get access to some additional metadata relating to each request. For details about the new parameter as well Provider Interface class please refer to the javadoc.

Details about the changes and how to incorporate them into your code can be found in the directory "release/v0.3.1".

## Version from 14/10/2014: v0.3.2 - Minor Changes (Bug Fixes)
This minor version update includes a couple of minor bug fixes and a couple of improvements to the framework. The changes will not affect the developer's code base. Simply drop the new libraries into your project to get the changes and bug fixes.

Details of this release can be found in the directory "release/v0.3.2".

## Version from December 2, 2014: v0.4.0 - Various changes
This version update includes a few new bits of functionality, namely support for JSON as well as some restructuring of the data model generation. The AU 1.3 Datamodel is no longer part of this project but part of a new GitHub project called SIF3DMGenerator.

Details of this release can be found in the directory "release/v0.4.0".

## Version from March 03, 2015: v0.5.0 - Various changes
Version 0.5.0 has a couple important new features. They include support for SIF 3.x Service Path functionality and support for External Security Services (DIRECT Provider only). The later is not yet part of the SIF 3.0.1 specification and it should be used with care as it is experimental at this stage. The DB structure for the SIF3_SESSION table has changed and therefore a database update script must be run to upgrade the previous version of the framework to this version.

Details of this release including upgrade instructions can be found
in the directory "release/v0.5.0".

## Version from June 16, 2015: v0.6.0 - Various changes
Version 0.6.0 adds an auditing framework for providers to the SIF3 Framework. This is an optional feature. Further this new version requires all providers to be deployed in a web-/application container that supports
the servlet 3.0 specification. There are additional changes, additions, bug fixes etc. in the latest version of the SIF3 Framework.

Please refer to the release notes in the directory "release/v0.6.0" for details.

## Version from Dec 17, 2015: v0.7.0 - Various changes
Version 0.7.0 adds payload compression capabilities to all request/responses. This is an optional feature. Further the infrastructure data model is now in its own jar file rather than part of the infra-common jar file. It has also switched to infrastructure version 3.1. The major change relates to consumers. This framework version supports DELAYED request/responses. Finally support for external security services for consumers has been added as well.

Please refer to the release notes in the directory "release/v0.7.0" for additional details and upgrade instructions.

## Version from Mar 17, 2016: v0.8.0 - Various changes
Adding support for some SIF 3.2 Infrastructure functionality:
- HTTP HEAD supported for 'root' object service (i.e. .../StudentPersonals).
- "Changes Since" support for Object Providers.

Upgraded some core libraries to later versions.

Please refer to the release notes in the directory "release/v0.8.0" for additional details and upgrade instructions.

## Version from May 24, 2016: v0.9.0 - Various changes
___
**AS OF THIS VERSION ALL FRAMEWORK LIBRARIES ARE COMPILED WITH JAVA 7. THE FRAMEWORK MAY NO LONGER SUPPORT OR RUN ON JAVA 6 ENVIRONMENTS.**
___
- Made some method for "Changes Since" functionality more flexible.
- Allow hibernate properties to be "injected".

Please refer to the release notes in the directory "release/v0.9.0" for additional details and upgrade instructions.

## Version from Dec 20, 2016: v0.10.0 - Various changes
___
**AS OF THIS VERSION THE FRAMEWORK USES MAVEN AS THE BUILD MECHANISM INSTEAD OF ANT. THE DEVELOPER'S GUIDE HAS
BEEN UPDATED TO REFLECT THIS. PLEASE REFER TO THE RELEASE NOTES FOR ADDITIONAL INFORMATION ON HOW TO UPGRADE
THE FRAMEWORK YOU MAY HAVE DOWNLOADED AND IMPORTED TO YOUR IDE OF CHOICE.**
___

Additional changes to the framework include:
- Some small bug fixes in relation to external security services.
- Added new parameter called customResponseParams to **ALL** provider side interface methods. **_THIS WILL BREAK YOUR CODE_**. There is a
very easy change to your code to fix the compile errors. See Relaese_Notes_v0.10.0.txt in the release/v0.10.0 directory.
- Removed dependency on systemic-framework_<date>.jar. Applicable classes of that library are now part of the framework.

Please refer to the release notes in the directory "release/v0.10.0" for additional details and upgrade instructions.

# Download Instructions
How to download this project:

## Option 1 - As a Zip.
Click on the button marked "ZIP" available from the Code tab.

## Option 2 - Using a Git client.
From the command-line type: git clone https://github.com/Access4Learning/sif3-framework-java.git

Note that if you want to use this option but don't have the client installed, it can be
downloaded from http://git-scm.com/download.
Loading