• Anonymous
  • Login
  • Register

Welcome to OpenNTF.org

The Mission of OpenNTF is to support the open source projects hosted at OpenNTF.Org. OpenNTF provides the framework to develop open source applications which may be freely distributed.

Browse the catalogs to find the latests releases you're looking for which have been made available under the Apache license or under the GPL license. Browse the project area to find the latest project updates before they have been cleared.


2016 OpenNTF Board Elections Update - Contributor Vote Required

Paul Withers | 5:58:13 AM Monday, September 19, 2016 | Full Story and Comments
The 2016 OpenNTF nominations are closed.  

Contributor Directors (elected for one year - 4 nominees for 3 positions):
Padraic Edwards
Patrick Kwinten
Fredrik Norling
Johnny Oldenburger


So - a ballot has been sent to all active registered Contributors. If you have not received an email and are a contributor, please send your votes anyway to ip-manager at openntf.org.

Member Directors - all elected for two years (by acclamation):
Serdar Basegmez, Developi Information Systems

Adam Foster, Oval

Jesse Gallagher, I Know Some Guys

Christian G├╝demann, Webgate

Douglas Robinson, Prominic

In addition, the following Member Directors still have one year remaining in their terms:

Oliver Busse -  We4IT
Martin Donnelly - IBM
Nathan Freeman - Red Pill Development
Paul Withers - Intec Systems Ltd

The Board would like to thank all those who have presented themselves as candidates this year.

OpenNTF Board of Directors - Nominations Still Open Through September 16

Paul Withers | 4:35:34 AM Wednesday, September 7, 2016 | Full Story and Comments
The call for nominations for OpenNTF's Board of Directors is still open until September 16. Anyone who would like to stand should submit their names, the type of post for which they wish to stand and a candidate statement to ip-manager at openntf.org. There are a number of initiatives already happening behind the scenes, so this is an exciting year to be involved with OpenNTF.

Employees of member organizations may stand as a Member Director – with a two-year term.  There are five such board positions open for election.


Contributors may stand as a Contributor Director – with a one year term.  There are three such board positions open for election.  

The terms of five Member Directors expire this October,  Members whose terms expire this year may, of course, run again for another two year term. They include:
Serdar Basegmez
Jesse Gallagher
Christian Guedemann
Martin Rolph
Justin Hill


The terms of the three Contributor Directors expire this year.  Again, they have the option of running again.  They include:  
Padraic Edwards
Adam Foster
Fredrik Norling


Election schedule:

Nominations open until September 16.
Circulation of Candidate Statements September 16
Voting online from September 16 to 23rd

The winners take office on Oct 13.

OpenNTF Board of Directors – Call for Nominations

Paul Withers | 2:39:17 AM Friday, August 19, 2016 | Full Story and Comments
We invite anyone interested in participating in OpenNTF's Board of Directors to submit their names to ip-manager at openntf.org.

Employees of member organizations may be nominated as a Member Director – with a two-year term.  There are five such board positions open for election.


Contributors may be nominated as a Contributor Director – with a one year term.  There are three such board positions open for election.  

The terms of five Member Directors expire this October,  Members whose terms expire this year may, of course, run again for another two year term. They include:
Serdar Basegmez
Jesse Gallagher
Christian Guedemann
Martin Rolph
Justin Hill


The terms of the three Contributor Directors expire this year.  Again, they have the option of running again.  They include:  
Padraic Edwards
Adam Foster
Fredrik Norling


Election schedule:

Nominations open until September 16.
Circulation of Candidate Statements September 16
Voting online from September 16 to 23rd

The winners take office on Oct 13.

Last Call for Passengers who want to attend the IBM ICS Developer Competition 2016

Christian Guedemann | 6:00:34 AM Friday, June 10, 2016 | Full Story and Comments
Dear Friends

Its so amazing to see that over 10 Teams have registered to this "long term" competition. This means that we have so far over 25 participant. This is very promising! I had also the chance to see the topics, each team has chosen, but my lips are sealed with a BIG SMILE!
But not only a BIG SMILE, also some tears: The WebGate Team can not attend, because we have a conflict of Interest. As Chairman of OpenNTF, Judge in the Contest and CTO of WebGate, this would be unfair. But anyway. If you not a part of one of this Teams, this day is the last day to register.

So please sign up today and participate in the IBM ICS Developer Competition 2016

Have fun
Christian

Project Spotlight: OpenLog, XPages OpenLog Logger, XLogBack

Paul Withers | 6:59:34 AM Wednesday, May 25, 2016 | Full Story and Comments
For this month's project spotlight, I wanted to highlight error logging. Firstly, it's worth making a clear distinction, that the projects on OpenNTF help with error logging. But error handling is a completely different topic and no framework, regardless of the language, can ensure errors are appropriately handled for custom applications. Error handling comes down to managing the process in which the error occurs in a way that best supports the user and application, to ensure quality and integrity of data. For example, proper validation on both server-side and client-side would fall under error handling, but if the developer doesn't apply validation correctly in the right places, errors won't be handled adequately. Error logging is designed to aid support, not improve data quality and integrity.

Domino has had logging in-built in its core API for some time via the NotesLog class in LotusScript, corresponding to the Log class in Java. This allows logging to a Domino database, an email, a file or each agent's internal log (accessible via Agent > Log) in Domino Designer. But like the core Java logging mechanism, many (and possibly most) developers have chosen a more extensive open source solution for Domino - Julian Robichaux's excellent OpenLog.

For anyone not familiar with it, OpenLog not only captures logging from LotusScript and Java, but also JavaScript. It captures considerable information, including client versions, user triggering the error, access levels and roles, source of the error and stack trace. This is invaluable for tracking down the actual cause of an issue and has, in the past, allowed me to quickly identify the cause of an issue was an upgrade to a user, when I wasn't even aware upgrades were planned. Logging also allows document links to be added, to help identify document-related causes. In addition, notification profiles can be set up and standard Domino archiving processes can be utilised to keep database sizes manageable.

When XPages came along, a server-side JavaScript version was created for TaskJam by Matt White, but the project was not Apache-licensed, causing a problem for other projects that wanted to utilise it. That is why XPages Help Application included a Java library based on Julian's original OpenLog Java Script Library.

But the opportunity for XPages-specific enhancements increased as XPages and knowledge of the framework matured. This caused its evolution into a separate project XPages OpenLog Logger, by the same author, Paul Withers. XPages OpenLog Logger supported easier use from SSJS, filtering of errors so the same error was not logged for multiple phases of the XPages lifecycle, capturing uncaught exceptions, greater configuration and flexibility using notes.ini or xsp.properties and much more. It also allowed the library to be deployed within each application or server-wide as an OSGi plugin. Full documentation has also more recently been migrated to OpenNTF's Confluence server, in a specific space. The database errors are logged to and form used have not been changed - it still uses the original OpenLog project. But it brings a greater flexibility to error logging.

For those utilising the OpenNTF Domino API ( a growing number of developers), XPages OpenLog Logger comes as part of that plugin, making it available to XPages, to other OSGi plugins and applications, or even beyond Domino, in CrossWorlds.

But beyond the Domino space, Java developers are used to a different standard error logging approach. Historically this has meant log4j, but that has evolved into and been replaced by LogBack. Serdar Basegmez has taken that library and integrated it as a separate OpenNTF project, XLogBack, for a more a more Java-ish way of logging. The documentation (available to browse in the readme file on the Stash repository) gives a nice table of comparison with XPages OpenLog Logger.

So whether you're still developing Notes Client applications or using XPages, DOTS and going beyond Domino, OpenNTF provides best practice options for developers from a variety of backgrounds.

If you're developing or have developed a project with just print statements or no error logging at all, consider working with either Serdar or Paul (or the other project chefs of XPages OpenLog Logger) to leverage proper error logging. XPages OpenLog Logger has already been integrated into projects like Resource Reservations Extended and we would be happy to help include more robust error logging in other OpenNTF projects. And if you are interested in the ICS Developer Contest, having XPages OpenLog Logger or XLogBack integrated by another person would constitute having multiple contributors, and therefore a team!

Build your Team for the IBM Collaboration Solutions Developer Competition 2016

Christian Guedemann | 10:49:39 AM Tuesday, May 24, 2016 | Full Story and Comments
Yes you should really think about participating the "IBM Collaboration Solution Developer Competition 2016". It will be fun and a real good experience.
Before I was the Chairman of OpenNTF, I had the chance to build myWebGate with our Development staff. We where a gang of 6 team members, but if you think 6 Developers... you would be wrong. My Friend Peter was our project manager and delegated from the management team to lead the financial aspects of this project like effort and deliverables. My role was more Enabler and Architect then developer. And to be honest behind the scene was Roman our CEO who had the role of the business sponsor. He was also in a way part of the team.

During my time of building XPages Toolkit and POI4XPages, I get a complete different view of what is my team, because I figured out that best request came from outside of our development team. To be honest for XPages Tookit and POI4XPages, the most important *team members* are the developers who use the framework and builds the applications. They are like the *Business Sponsors*. They know what they really want (If you are using one of this project and you are not part of the corresponding slack channel, join us today).

But now there is this absolute cool IBM Collaboration Developer Contest, which you have to attend as a team. Please rethink "Team". Because we are not talking about a "Team of Developer".... No we are talking about a Team. And I think your Team should contains the following type of members:
- Someone with a clever Idea or a real world need!
- The one who can develop the code for the clever idea
- A real good Tester
- Documentation? Yes documentation.... and there are People who loves to do documentation

So build your team,join the Competition!

Have fun
Christian

IBM and OpenNTF present: IBM Collaboration Solutions Developer Competition 2016

Christian Guedemann | 2:04:06 PM Monday, May 9, 2016 | Full Story and Comments

World IP Day

Paul Withers | 9:05:11 AM Tuesday, April 26, 2016 | Full Story and Comments
Earlier today I came across a tweet saying that today is World IP Day. Over the last year we've been looking at the role of OpenNTF, looking at what Apache and Eclipse offer and considering how the changes in personal websites and cloud source control repositories like GitHub and BitBucket offer. These days there are a host of ways open source projects can be made available to the public. But one of the key differentiators we identified that OpenNTF provides is IP clearance of projects. This means projects cleared for inclusion in the Apache catalog have been vetted to ensure there are no intellectual property right infringements and that all contributors are given due credit. Thanks to Peter Tanner for his tireless work over the years as our IP Manager!

Maintenance during the weekend

Christian Guedemann | 9:37:02 AM Friday, April 22, 2016 | Full Story and Comments
Dear Friends

We will do some maintenance on the OpenNTF Infrastructure, starting from Friday April 22. 12:00 EDT until Sunday April 24. 18:00 EDT. This will affect all the tools of the Atlassian Suite. Expect that this services could be down for a short period. We will inform you when all maintenance tasks has been done.

Have fun
Christian

Project Spotlight: JsonBeanX and Jackson4XPages

Paul Withers | 7:17:56 AM Monday, April 18, 2016 | Full Story and Comments
A search of OpenNTF projects for the term JSON will return a number of projects over a long period of time. JSON has long been a key data interchange format, being language independent and not requiring a fixed agreed schema. It is this reason in particular that has led to it overtaking SOAP as a data transfer mechanism, enabling microservices to be built and further developed without breaking existing interactions. Anything that delivers JSON data can of course be access via (Client-Side) JavaScript and, if client-side is your preferred approach and you're only interested in consuming and not delivering JSON data on request, there will be standard out-of-the-box approaches that you can leverage.

But for server-side approaches - whether for consuming or delivering on external request - the options available are various. When I initially developed XPages Help Application some years ago, the approach I used was to manually construct strings of JSON data. But the Domino platform has opened up tools for leveraging this, particularly in the 9.0.x timeframe with Domino Access Services and the com.ibm.commons.util.io.json package. Domino Access Services provide out-of-the-box basic CRUD APIs to access Domino databases, including Mail and Calendar. But DAS does not manage validation or manipulation of data types. The com.ibm.commons.util.io.json package provides low-level Java APIs to read to and write from JSON objects, and of course it is also via Server-Side JavaScript, since SSJS classes are actually Java classes under the hood. But every element of the JSON data needs reading or writing individually, which can be verbose.

Following on from his session with Kathy Brown at IBM Connect, Julian Robichaux has contributed a lightweight converter between JSON and Java, JsonBeanX. This is just a JAR file that can be imported into an individual NSF and avoids some of the security restrictions of other Java implementations, which would need amendments to the java.policy (or java.pol) file or would need the code adding to an OSGi plugin. Full details on how to implement it are in the JavaDoc documentation. This is designed to convert between JSON and Java objects, but it's an added incentive if needed to use Java instead of SSJS, to minimise the code you need to write and avoid some of the pitfalls you might otherwise need to (re-)address.

I've attached a simple example in the Java classes below. Within your XPages application, you would just go to Java\Code and import Julian's jar file, like this:
json_1.jpg

Then it's just a case of creating the Java code to use it. DavidJson is my Java class, which comprises a few properties - name, age, date of birth and characters. In the Utils class there is a method createBean() to create an instance of the class. (In reality, this would be loaded from a Notes Document , ViewEntry or multiple Documents/ViewEntries.)  The outputJson() method then uses just a handful of lines of code to return a String containing the JSON data:
json_2.jpg

When passed to a Computed Field component, the output is this:
json_3.jpg

Outside of XPages, the standard library for translating between Java and JSON is Jackson and Frank van der Linden is working on an OSGi plugin, already on OpenNTF's Stash, to wrap this for those who prefer something a bit meatier and can use OSGi plugins. The second output is the same DavidJson Java object outputted using Frank's plugin. Again, it's just a handful of lines of code.
json_4.jpg

The false parameter passed to the JacksonWrapper tells it to output date/times as date/times rather than converting them to timestamps. There are a variety of options for outputting to files, FileWriters, OutputStreams or just strings (which I use here). And beyond this there is a host of additional functionality from Jackson. Look out for a full release of this project on OpenNTF in the near future or download the source from Stash and get involved (developing, testing, adding feature requests or more).

For a walkthrough of the code, here is a YouTube video.


DavidJson.java
Utils.java


More News