Registration for the OpenEdge 11.4 Early Access Program is n

Posted by Kris Murphy on 25-Nov-2013 14:16

The OpenEdge Early Software Access Program provides OpenEdge customers with an exciting opportunity to get ahead of the game by providing very early access to OpenEdge features and documentation. As a participant in the OpenEdge Early Software Access Program you will be among the first users to test-drive new features as soon as the development is complete. The Early Software Access Program features exclusive access to software that is almost right from the developer's desktop.


The first early release of OpenEdge 11.4 will be available in the next several weeks. To participate, please send email to early-software-admin@progress.com.

All Replies

Posted by Masternoob on 02-Dec-2013 04:22

so....what's new in 11.4?

What new features/enhancements can we expect?

Posted by Thomas Mercer-Hursh on 02-Dec-2013 08:57

The one biggy I have heard about is the next-gen AppServer.

Posted by Peter Mellow on 02-Dec-2013 12:25

OpenEdge Development is working in an Agile methodology now. With that comes new functionality that when it is ready, we would like to get feedback on so that if we are way off base, we can adjust.

As we get ready to put up the new functionality, we will provide the details on what will be available. The specifics of what will be in this first ESAP will be coming shortly. Right now we want to get you ready and get the names of people interested in participating so we can understand how many are interested.

Stay tuned!

Posted by Thomas Mercer-Hursh on 02-Dec-2013 13:34

The one problem, of course, is not knowing what is in the release means that one doesn't know if one is interested.  A DBA guy could be uninterested in OOABL stuff, for example, but very anxious to try horizontal partitioning.

Posted by Kris Murphy on 20-Dec-2013 10:39

Progress OpenEdge is pleased to announce the first early release of OpenEdge 11.4!

Language (ABL)

• Support for type name syntax

o Several customers have observed that the GetClass method takes as an input parameter a CHARACTER expression representing an object-type-name. This has the limitation that this object-type-name is not validated by the compiler as being a valid object type name nor does the USING statement impact the type name. These limitations have impacted their development productivity. The proposal is to introduce a new built-in function GET-CLASS which will take as a parameter a type-name using the existing type-name syntax.

• Throwing OOABL objects from an AppServer to an ABL client

o In prior releases, if an application tries to throw an OOABL object out of an invoked AppServer procedure, a warning is written to the AppServer log saying that this is not supported. Though an error gets raised on the client (on the RUN statement), no object instance is returned to the client. If an application tries to pass an object reference as a parameter to a procedure on the AppServer, this raises a runtime error. In Release 11.4, the AVM will provide the ability to throw an error object from the AppServer to ABL clients (and not any other client type). In addition the AVM will no longer raise a runtime error when passing OOABL objects or temp-tables with Progress.Lang.Object fields as parameters between an ABL client and an AppServer (both input and output). This set of functionality has not been validated yet and in a subsequent ESAP this functionality will be validated by OpenEdge QA.

• ProDataSet JSON before-image support

o The ABL provides language constructs for reading and writing a ProDataSet and Temp-table to JSON through READ-JSON, WRITE-JSON and the ABL JSON API. In 11.4 we will support JSON serialization of a ProDataSet with before-image information.

Progress Developer Studio for OpenEdge

• Organize Usings

o PDSOE helps users to develop different kinds of OpenEdge applications, which further enable them to write ABL programs using both procedural and object oriented programming model. Object-Oriented ABL further extends the language to provide a cohesive and standard object-oriented programming model within ABL.  This feature 'Organize USING Statements' will further enhance the capabilities of PDSOE by providing simple yet efficient way to organize the USING statements in ABL sources.  Without the support of the new organizing USING statements feature, it is very cumbersome and painful for users to identify and organize these statements manually.

• ABL Unit -

o A unit test is a small piece of code written by the developer that can execute a specific functionality in the code, which can be tested. A unit test targets a small unit of code, e.g. a method, a procedure or a class, etc., and ensures that code works as intended. Unit tests are also very helpful to ensure that the code still works as intended in case code modifications for fixing a bug or extending the functionality.  ABLUnit is a simple yet powerful unit testing framework for testing ABL programs. PDSOE provides support for ABLUnit testing to unit test ABL programs through a set of wizards, menu items, and views.

Sever Technologies

• Client ASK

o AppServer Keepalive (ASK) protocol was added into the OpenEdge AppServer architecture to recognize network failures between the client and server. This protocol was intended to address the following use cases:

 serverASK protocol: to improve the AppServer’s ability to recognize the failure of a remote client

 clientASK protocol: to improve the client’s ability to recognize the failure of a remote AppServer

While the serverASK was implemented in previous OpenEdge releases, clientASK was not. In 11.4, the clientASK protocol will give the client the ability to recognize the failure of a remote AppServer. The client may be an ABL client, Java or .NET OpenClient, WebServices adapter (WSA), ESB or REST Adapter.

• Client Connection Timeout

o In OpenEdge 11.4, a property called connectionTimeout has been added to AppServer clients so that the client program can choose to come out of a long executing connection request. The client connection timeout is supported only for Stateless and State-free operating modes and is supported for an ABL client, Java or .NET OpenClient, WebServices adapter (WSA), or REST Adapter.

• REST Adapter enhancements

o Enhanced WADL output: In previous versions of OpenEdge, hitting the URL http://<host>:<port>/rest from a browser gave a _wadl output however the _wadl output was insufficient to debug missing/incorrect parameters in the HTTP request. In OpenEdge 11.4 hitting the URL http://<host>:<port>/rest from a browser will give a JSON output that will contain all information that is required to invoke an OpenEdge REST service.

o HTTP Message dumpers in REST Adapter: In OpenEdge 11.4, the REST Adapter is capable of dumping HTTP request and response message into a log file. The REST Adapter has extended Tomcat’s Request Dumper Filter and added additional support to dump request and response body and other information for debugging purposes.

Providing Feedback

We want your feedback! Customer support is not involved in this program and should not be called for issues or feedback from these early releases. All feedback for engineering should be posted to the Early Software Access forum on community.progress.com.

Program Duration

All early releases of OpenEdge 11.4 expire August 1, 2014.

Apply Today!

To register for this program please send email to: early-software-admin@progress.com.

Posted by mihai.pintea on 28-Mar-2014 09:01

I have installed the Alpha version of 11.4. I want to see how ABLUnit is work by trying to run the next example:

MyClass:

USING Progress.Lang.*.

CLASS MyClass:

 METHOD PUBLIC CHARACTER M1( ):

   DEFINE VARIABLE result AS CHARACTER NO-UNDO.

   result = "M1".

   RETURN result.

 END METHOD.

 METHOD PUBLIC INTEGER M2( ):

   DEFINE VARIABLE result AS INTEGER NO-UNDO.

   result = 10.

   RETURN result.

 END METHOD.

END CLASS.

MyTestClass:

USING Progress.Lang.*.

ROUTINE-LEVEL ON ERROR UNDO, THROW.

USING ABLUnit.Assertions.Assert.

CLASS MyTestClass:

   @Test.

  METHOD PUBLIC VOID TestM1( ):

     DEFINE VARIABLE obj AS MyClass NO-UNDO.

     DEFINE VARIABLE returned AS CHARACTER NO-UNDO.

     obj = new MyClass().

     returned = obj:M1().

     Assert:AssertEquals(returned,"M1").

  END METHOD.

  @Test.

  METHOD PUBLIC VOID TestM2( ):

     DEFINE VARIABLE obj AS MyClass NO-UNDO.

     DEFINE VARIABLE i AS INTEGER NO-UNDO.

  obj = new MyClass().

     i = obj:M2().

     Assert:AssertEquals(i,0).

  END METHOD.

END CLASS.

I had created an ABLUnit project.

But here 'USING ABLUnit.Assertions.Assert.' i get the next error: Multiple markers at this line - ** C:\work\test2\tests\MyTestClass.cls Could not understand line 15. (196) - Could not find class or interface ABLUnit.Assertions.Assert. (12886).

Could anyone help me to solve this problem?

Posted by Marian Edu on 28-Mar-2014 09:07

that might have something to do with the using grouping thingy... try to have those either before or after routine-level error handling and see if it helps :)

Posted by Peter Judge on 28-Mar-2014 09:13

What date is the version you're working with?  The assertions have moved into another namespace (OpenEdge.Core)  in more recent bits.
 
-- peter
 
[collapse]
From: mihai.pintea [mailto:bounce-mihaipintea@community.progress.com]
Sent: Friday, 28 March, 2014 10:02
To: TU.OE.Development@community.progress.com
Subject: RE: Registration for the OpenEdge 11.4 Early Access Program is now open!
 
Reply by mihai.pintea

I have installed the Alpha version of 11.4. I want to see how ABLUnit is work by trying to run the next example:

MyClass:

USING Progress.Lang.*.

CLASS MyClass:

 METHOD PUBLIC CHARACTER M1( ):

   DEFINE VARIABLE result AS CHARACTER NO-UNDO.

   result = "M1".

   RETURN result.

 END METHOD.

 METHOD PUBLIC INTEGER M2( ):

   DEFINE VARIABLE result AS INTEGER NO-UNDO.

   result = 10.

   RETURN result.

 END METHOD.

END CLASS.

MyTestClass:

USING Progress.Lang.*.

ROUTINE-LEVEL ON ERROR UNDO, THROW.

USING ABLUnit.Assertions.Assert.

CLASS MyTestClass:

   @Test.

  METHOD PUBLIC VOID TestM1( ):

     DEFINE VARIABLE obj AS MyClass NO-UNDO.

     DEFINE VARIABLE returned AS CHARACTER NO-UNDO.

     obj = new MyClass().

     returned = obj:M1().

     Assert:AssertEquals(returned,"M1").

  END METHOD.

  @Test.

  METHOD PUBLIC VOID TestM2( ):

     DEFINE VARIABLE obj AS MyClass NO-UNDO.

     DEFINE VARIABLE i AS INTEGER NO-UNDO.

  obj = new MyClass().

     i = obj:M2().

     Assert:AssertEquals(i,0).

  END METHOD.

END CLASS.

I had created an ABLUnit project.

But here 'USING ABLUnit.Assertions.Assert.' i get the next error: Multiple markers at this line - ** C:\work\test2\tests\MyTestClass.cls Could not understand line 15. (196) - Could not find class or interface ABLUnit.Assertions.Assert. (12886).

Could anyone help me to solve this problem?

Stop receiving emails on this subject.

Flag this post as spam/abuse.

[/collapse]

Posted by Thomas Mercer-Hursh on 28-Mar-2014 09:23

Shouldn't you be discussing this on the ESAP forum?

Posted by Sanjeva Manchala on 28-Mar-2014 09:29

Hi mihai,

Assert class is moved from ABLUnit.Assertions.Assert package to OpenEdge.core.Assert and assert:assertequals() method signature is changed to assert:equals(). Can you change your code such that they use proper using statement and proper method declarations.

Hope this helps,
Sanjeev.

sent from mobile

On Mar 28, 2014 7:31 PM, "mihai.pintea" <bounce-mihaipintea@community.progress.com> wrote:
Reply by mihai.pintea

I have installed the Alpha version of 11.4. I want to see how ABLUnit is work by trying to run the next example:

MyClass:

USING Progress.Lang.*.

CLASS MyClass:

 METHOD PUBLIC CHARACTER M1( ):

   DEFINE VARIABLE result AS CHARACTER NO-UNDO.

   result = "M1".

   RETURN result.

 END METHOD.

 METHOD PUBLIC INTEGER M2( ):

   DEFINE VARIABLE result AS INTEGER NO-UNDO.

   result = 10.

   RETURN result.

 END METHOD.

END CLASS.

MyTestClass:

USING Progress.Lang.*.

ROUTINE-LEVEL ON ERROR UNDO, THROW.

USING ABLUnit.Assertions.Assert.

CLASS MyTestClass:

   @Test.

  METHOD PUBLIC VOID TestM1( ):

     DEFINE VARIABLE obj AS MyClass NO-UNDO.

     DEFINE VARIABLE returned AS CHARACTER NO-UNDO.

     obj = new MyClass().

     returned = obj:M1().

     Assert:AssertEquals(returned,"M1").

  END METHOD.

  @Test.

  METHOD PUBLIC VOID TestM2( ):

     DEFINE VARIABLE obj AS MyClass NO-UNDO.

     DEFINE VARIABLE i AS INTEGER NO-UNDO.

  obj = new MyClass().

     i = obj:M2().

     Assert:AssertEquals(i,0).

  END METHOD.

END CLASS.

I had created an ABLUnit project.

But here 'USING ABLUnit.Assertions.Assert.' i get the next error: Multiple markers at this line - ** C:\work\test2\tests\MyTestClass.cls Could not understand line 15. (196) - Could not find class or interface ABLUnit.Assertions.Assert. (12886).

Could anyone help me to solve this problem?

Stop receiving emails on this subject.

Flag this post as spam/abuse.

Posted by mihai.pintea on 28-Mar-2014 09:33

Thank you Peter, I change into USING OpenEdge.Core.Assert. and change the   Assert:AssertEquals(i,0). into  Assert:equals(i,0)..

This thread is closed