Skip to content

Releases: andrea-magni/MARS

MARS-Curiosity v.1.5

11 Nov 17:51
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v1.4...v1.5

MARS-Curiosity v.1.4

27 May 14:44
Compare
Choose a tag to compare
  • TXMLReader and TXMLWriter implementation (MBR and MBW mechanism for IXMLDocument and IXMLNode)

  • DataSetToXML now has a root node

  • Added shortcut class methods WriteDataSet for TDataSetWriterJSON and TDataSetWriterXML classes

  • IMPORTANT: Changes in the MessageBodyWriter selection mechanism.

Affinity now comes with higher priority than QualityFactor. In other words, this means server side type matching comes before client side accept statement.
Improved TMediaTypeList.Intersect (now properly considering WILDCARD also).
Improved TMediaTypeList.GetQualityFactor (now properly considering WILDCARD also).
TFDDataSetWriter is now decorated with Produces attributes only for APPLICATION_JSON_FIREDAC, APPLICATION_XML_FIREDAC and APPLICATION_OCTET_STREAM (removed APPLICATION_XML). This will let TDataSetWriterXML to jump in if registered.
Added WriteDataSet shortcut method to TArrayFDDataSetWriter class.
Refactoring.

  • TMARSFireDAC.LoadConnectionDefs now checks if a Connection Definition is already available before defining it. This means you can have a connection definition on your development machine (configured through FireDAC standard mechanisms such as FireDAC Explorer or ini files) and at the same time include a definition for deployment or for development machines where design time experience is not required.
    BEWARE: no exception is thrown so keep in mind a local definition (FireDAC Explorer / ini files) actually overrides what's defined in MARS Engine parameters/ini files.

  • Bugfix: TMARSFireDAC.InjectMacroValues and InjectParamValues assumed ACommand always assigned (but for example a TFDMemTable has Command = nil). Thanks Stuart Clennet for pointing this out.

  • Added FindWriter overload for specific Accept lookup, new TMARSMessageBodyWriter class (utility functions container for MBW)

  • Bugfix: TMARSNetClient implementations for LastCmdSuccess, ResponseStatusCode and ResponseText raised an exception if the FLastResponse object was not assigned. This can happen when connection troubles occur (thanks Stuart Clennet for pointing this out in this thread https://en.delphipraxis.net/topic/436-error-when-accessing-tmarsnetclient-responsestatuscode-when-endpoint-is-blacklisted/ )

  • Bugifx #53: packages for 10.3 Rio are now correct

  • Bugfix #54: fixed TStringReader, added Encoding support (initial) for MBR and refactoring.

  • Bugfix #57: TJSONObjectHelper.ReadDateTimeValue ignores ADefault argument

  • Introduction of IMARSRequest and IMARSResponse
    Wrappers for TWebRequest and TWebResponse

    • resolving conflicts to merge Brov84-develop
  • Added x-www-form-urlencoded support for MARS Resources (#56)

  • Added x-www-form-urlencoded for MARS Client Resources

  • Refactoring MARS URLEncoded form support
    Register new resource component
    Packages 10.3 Rio for URLEncoded form support
    MARS.Core.RequestAndResponse.Interfaces now added to MARS Utils package

  • TMARSWebRequest and TMARSWebResponse wrap for Server.WebModule.pas

  • Removed hint for missing inline expansion

    • MARS.DCS package
  • updated packages for 10.3

  • BugFix: missing FireBeforeExecute in TMARSCustomClient (preventing anonyms added with RegisterBeforeExecute to fire when using regular component based calls, it was working for non-component based approach).
    Thanks @Davide675 for spotting this bug.

  • BugFix: missing FireBeforeExecute in TMARSCustomClient (preventing anonyms added with RegisterBeforeExecute to fire when using regular component based calls, it was working for non-component based approach).
    Thanks @Davide675 for spotting this bug.

  • BugFix: wrong default for configuration file name when deployed as Apache module. Fixes #67, thanks @acarlomagno

  • Add Linux Server Delphi 10.2, 10.3 (#68)

Great thanks!

Thanks @tino-t :-)

  • MARS.mORMot Its not suported for Linux64 (#71)

MARS.FireDAC suported for Linux64
MARS.JOSE suported for Linux64

  • Updated Mustache demo to use IMARSResponse and IMARSRequest. Enabled CORS and added StatusCode for swagger endpoint. (#70)

  • JOSE JWT upgrade to latest version

  • Upgrade Delphi-Cross-Socket to the latest version

  • Fix JOSE packages
    Compilation issue with JOSEJWT
    JWT tests are now using a 32 char length dummy secret

  • Upgrade mORMot-JWT to the latest version

  • Authorization demo fixes:

  • dproj upgrade

  • compilation issues with BeforeHandleRequest handler

  • Set FDManager.SilentMode to True to avoid including Wait providers for FireDAC everywhere.

  • Added GetQueryParamCount and GetCookieParamCount to IMARSRequest

  • GitHub Social template for MARS

  • TFDDataSetWriter now defaults to JSON serializer when the match is with the Wildcard media type (before the first entry in TFDDataSetWriter.WriteTo method would apply, that was the XML serializer).

  • Develop (#75)

  • Updated Mustache demo to use IMARSResponse and IMARSRequest. Enabled CORS and added StatusCode for swagger endpoint.

  • Added last file needed to be independent of a separate DMustache library.

  • UniDAC support (initial commit): many thanks to ErtanK for the implementation.
    Added MARS.UniDAC package
    Added "UniDAC Basic" demo

  • WIP UniDAC support

  • UniDAC: connection definition handling (WIP)

  • UniDAC support: better handling of connection definitions (caching at startup), optimized by-name access;
    Added SQLite example in UniDAC Basic demo
    UniDAC dataset serialization up to TMemDataSet (and TVirtualTable)
    Fixed macro injection

  • UniDAC support: a SQLite connection has been added to UniDAC Basic/bin/UniDACBasicServerApplication.ini and some equivalent code using FireDAC has been added in Server.Resources.pas

    • Missing MARSClient.CoreResource.rc for 103Rio package
  • Added the ability to setup Windows Service Name and DisplayName using MARS parameters.
    Just add:
    ServiceName=YourServiceName
    ServiceDisplayName=Your Service Display Name
    to the ini file (or whatever parameter's storage system you are using).

  • dproj upgrade Delphi 10.3.3 Rio

  • Fix ApplyCustomHeaders restored after rebase of develop onto master branch

  • Fix visiblity (caused warning)

  • Removed MARS.UniDAC package from MARS.groupproj

  • Develop (#78)

  • Updated Mustache demo to use IMARSResponse and IMARSRequest. Enabled CORS and added StatusCode for swagger endpoint.

  • Added last file needed to be independent of a separate DMustache library.

  • Implemented support for gzip compression

  • Reverted modifications to MARS.Core.Activation.

  • Revert "Implemented support for gzip compression"

This reverts commit 57d5264.

  • Implementation for gzip compression.

  • Implementation for gzip compression.

Co-authored-by: Bjørn Larsen [email protected]

  • Changed GZip compression default to False in MARSTemplate

    • MARSTemplateDCS demo
  • MARSTemplateDCS compilation

  • WIP MARSTemplateDCS

  • Issue #80: thanks to @grzegorzdeyk for pointing this out: Default encoding should be last call in GetEncodingName

    • RemoteMic demo
  • Upgrade dproj 10.3.3

  • Upgrade 10.4 Sydney
    Added packages for Delphi 10.4 Sydney
    Removed hints and warnings compiling with 10.4 Sydney

  • Upgrade Delphi 10.4 Sydney: Demos/MARSTemplate dprojs

  • Upgrade Delphi 10.4 Sydney: Demos/MARSTemplateDCS dprojs

  • Include definitions updated for Delphi 10.4 Sydney

  • Output directory updated for Delphi 10.4 Sydney (270)

  • Correction SetArrayLength (#83)

Correction for Range check error on POST request on Linux
#81

MARS-Curiosity v.1.3.3

05 Jul 14:20
Compare
Choose a tag to compare

New feature:

  • MARS client: Added support for CustomHeaders at resource level (working with Indy and TNetHttpClient)

Fixes:

  • Wrong package version suffix for 10.1 Berlin packages

MARS-Curiosity v.1.3.2

29 May 08:26
Compare
Choose a tag to compare

Bugfixes:

  • #66 : LastResponse could be nil and cause AV in MARS Client Library
  • #67 : Wrong config file name default when deploying as Apache Module on Linux platform
  • Fixed multipart/form-adata issue (regression)(see https://en.delphipraxis.net/topic/243-handling-multipartformdata/ )
  • #68 : package configuration
  • #69 : IFDEF to check for TestInsight
  • #71 : Fixes in some demos (i.e. dMustache)
  • Fixes in the JWT handling (partially upgraded third-party libraries)

Thanks to all contributors / issue openers.

MARS-Curiosity v.1.3.1

12 Apr 00:15
Compare
Choose a tag to compare

Backported two bugfix from develop:

  1. TMARSClient BeforeExecute anonymous did not get called when using the component based approach of the client library;
  2. Error trying to compile MARS.JsonDataObjects.ReadersAndWriters (GetDesiredEncoding prototype changed meanwhile).

MARS-Curiosity v1.3

07 Dec 09:25
Compare
Choose a tag to compare
  • mORMotJWT alternative for JWT implementation on Windows platforms (no OpenSSL dependencies, better performances)
  • 10.2 Tokyo and 10.3 Rio support and packages
  • improvements on the MARS client library: authentication endorsement options, error handling, several shortcuts (ResponseAsXXX)
  • improvements on the primitive types support and record integration (wrt JSON and TDataSet)
  • added support for MessageBodyReader for request parameters (i.e. QueryParams, FormParams, ...)
  • support for multipart/form-data on server and client side
  • ConfigParam and related functionalities
  • improved overall addressing of encoding
  • TObject serialization
  • design/runtime package division for MARS Client library
  • Swagger specification emission
  • MARS Macros in FireDAC ConnectionAttributes
  • better timing of MARS activation invocation
  • Proxy support in MARS Client library
  • new demos (Token AutoRenew, EKON 22)
  • removal of subresources components (better focus on resources components)

  • made MBW mechanism more pervasive (TPrimitiveTypesWriter)

  • overall improvements and bugfixing

MARS-Curiosity v1.2

22 Oct 20:22
Compare
Choose a tag to compare
  • brand new FireDAC serialization/deserialization
  • CORS support
  • JSONP implementation
  • refactoring of MessageBodyWriters and MessageBodyReaders
  • IMARSActivation mechanism to easily adapt MARS to existing code or conventions
  • Standard MessageBodyWriter
  • bugfixes and enhancements

MARS-Curiosity v1.1

27 Feb 00:19
Compare
Choose a tag to compare
* JWT Issuer is now configurable through [AppName].JWT.Issuer param

MARS-Curiosity v1.0

22 Mar 07:37
Compare
Choose a tag to compare
Added files via upload