Converting Tycho Projects to maven-bundle-plugin, Initial Phase  

By Jesse Gallagher | 8/23/19 1:02 AM | - | Added by John Oldenburger

To date, Tycho has been my tool of choice for developing Domino-targeted Maven projects. However, it's not without protest.. Unlike most Maven plugins, Tycho inserts itself at the very start of the build process and takes over dependency management. Purely in Maven, you can use normal Maven dependencies.

Developing Open Liberty Features, Part 2  

By Jesse Gallagher | 8/19/19 12:07 AM | - | Added by John Oldenburger

In my earlier post, I went over the tack I took when developing a couple extension features for Open Liberty, and specifically the way I came at it with Tycho. Shortly after I posted that, Alasdair Nottingham, the project lead for Open Liberty, dropped me a line to mention how programmatic service registration isn't preferred.

Anatomy of a Clean Open-Source Project  

By Jesse Gallagher | 3/18/19 7:06 PM | - | Added by Oliver Busse

Over the years, initially thanks to Peter Tanner's diligent work as the OpenNTF IP Manager and now my own occupation of that seat, I've learned to really appreciate the virtues of dotting your "i"s and crossing your "t"s when it comes to making an open-source project legally clean and clear.

XPages to Java EE, Part 6: Dependencies  

By Jesse Gallagher | 2/1/19 1:45 AM | - | Added by Oliver Busse

This is going to be a quick post, but I think it's useful to treat the topic of third-party dependencies on its own because of how much nicer it is with a Maven-based app than an NSF or OSGi plugin. Historically, we've handled dependencies primarily by downloading a Jar and either plunking it in jvm/lib/ext on the server, stashing it in a Java agent or script library, or importing it into the NSF as a Jar design element for XPages. With OSGi plugins, that remained the simplest way to do it too: just drop the Jar into the plugin and add it to the bundle classpath.

XPages to Java EE, Part 5: Web Pages  

By Jesse Gallagher | 1/24/19 11:23 AM | - | Added by Oliver Busse

Once upon a time, web pages were easy: you'd write some HTML directly or, if you're fancy, use some Server Side Includes or PHP. Now, though, it's a rat's nest of decisions and stacks - fortunately for me, going into the pros and cons of each approach is beyond the scope of this series. Suffice it to say that Java EE can cover your needs whatever approach you take: it can do basic dynamic HTML generation, server-persisted frameworks like JSF, and work splendidly as a backend for a client JS app thanks to JAX-RS.

XPages to Java EE, Part 4: Application Servers  

By Jesse Gallagher | 1/23/19 5:15 PM | - | Added by Oliver Busse

I mentioned in the terminology post that one of the new things to get used to in Java EE is the concept of a "Servlet Container" or "Application Server", and I think that this concept is worth a bit of going in to. In a general sense, we've been working with this concept for a good while now: Domino is an application server in several senses, and (for the most part) the NSFs are the applications it houses. It blurs the lines in a couple ways by virtue of NSFs also being data stores, but an XPages application is a pretty direct match for a .war file deployed to an application server, code-wise.

XPages to Java EE, Part 2: Terminology  

By Jesse Gallagher | 1/18/19 12:36 PM | - | Added by Oliver Busse

Much like with my earlier series, I think it'll be useful to take a minute to go over some of the terms that we'll need to know for dealing with Java EE, beyond just the many names of the platform. Additionally, I think it'll be useful to go over some of the things we specifically need to not know when it comes to non-OSGi development.

New Project: Domino Open Liberty Runtime  

By Jesse Gallagher | 1/4/19 2:32 AM | - | Added by Oliver Busse

The end of the year is often a good time to catch up on some side projects, and this past couple weeks saw me back to focusing on what to do about our collective unfortunate situation. I started by expanding the org.openntf.xsp.jakartaee project to include several additional JEE standards, but then my efforts took a bit of a turn.

Java Hiccups  

By Jesse Gallagher | 11/8/18 4:30 AM | - | Added by Oliver Busse

To take a break from the doom-and-gloom of my last post, I figured it'd be good to dust off a post idea I've had in my drafts for a while: common hiccups that Java developers - particularly those coming from a Domino background - run into. This is sort of a grab bag of non-obvious concepts that are easy to assume incorrectly about, whether because of the way other languages work or the behavior of the lotus.domino API specifically.

How Do You Solve a Problem Like XPages?  

By Jesse Gallagher | 11/2/18 12:57 PM | - | Added by Oliver Busse

Fair warning: this is a meandering one and I'm basically a wet blanket the whole way through) Last week, HCL held the third of their Twitter-based developer Q&As, with this one focusing on XPages and Designer. The majority of the questions (including, admittedly, all of mine) were along the lines of either "can we get some improvements in the Java/XPages stack?" or "is XPages still supported?". The answer to the latter from HCL, as it would have to be, is that XPages is still alive and "fully supported".

A (Java-Centric) Domino Wish List  

By Jesse Gallagher | 7/12/18 12:15 PM | - | Added by Oliver Busse

Seeing the information come out of this week's HCL "Golden Ticket" event has got me thinking about some of my wish-list items for Domino development, mostly in the form of enhancements for existing capabilities and entirely around Java (since that's what I do).

NSF ODP Tooling 1.2  

By Jesse Gallagher | 6/13/18 2:39 AM | - | Added by Oliver Busse

I've just published a new release of the NSF ODP Tooling, and this one is important by virtue of the fact that it covers enough bases for me to put it into production with my largest active XPages project.

Another Project: XPages Jakarta EE Support  

By Jesse Gallagher | 6/3/18 5:20 PM | - | Added by Oliver Busse

In my dealings with JNoSQL recently, I’ve been delving more into the world of modern Jakarta EE/Java EE/J2EE development, particularly the magic land of CDI. The JEE stack tends to be organized as a collection of specs and implementations, many of which are really independent of each other and the underlying platform, making them pretty portable onto any reasonably-recent JVM. Now that Domino is actually on a reasonably-recent JVM, that makes it a workable target! So I decided to create a side project to bring some of JEE to XPages.

The State of Domino App Dev Post-Connect-2017  

By Jesse Gallagher | 2/24/17 10:07 PM | - | Added by Oliver Busse

I'm en route back from this year's IBM Connect in San Francisco, and this plane ride is giving me a good chance to chew over the implications for Domino developers. First off, I'll put my bias in this matter right up front: Darwino, which I've been working on and discussing quite a bit, is one of the three "chosen" vendors for app enhancement/modernization/what-have-you.

Quick Post: Maven-izing the XSP Repo  

By Jesse Gallagher | 9/17/16 9:26 AM | - | Added by Oliver Busse

This post follows in my tradition of extremely-narrow-use-case guides, but perhaps this will come in handy in some situations nonetheless. Specifically, a while back, I wrote a script that "Maven-izes" the XPages artifacts, as provided by IBM's Update Site for Build Management.

MWLUG 2016 Slides  

By Jesse Gallagher | 8/20/16 7:15 PM | - | Added by Oliver Busse

I just returned from this year's MWLUG, held in surprisingly-rainy Austin, Texas. As every year, MWLUG is an outstanding event, particularly for a development crowd (though I think admins get tons of material too). I'm definitely looking forward to next year's in DC, and not merely because that's a pretty quick drive for me.

Release Weekend: ODA and Darwino  

By Jesse Gallagher | 8/2/16 7:25 AM | - | Added by Oliver Busse

This past weekend was a nice one for releases to a couple of the projects I work on: the OpenNTF Domino API and Darwino.

Provisions for the Journey  

By Jesse Gallagher | 6/19/16 9:29 AM | - | Added by Oliver Busse

In my last post, I ended up recommending that Domino developers and administrators take some time, if at all possible, to dive into new tools. In some cases, that may be in order to stay indefinitely, but, even otherwise, learning a new environment would have tremendous benefit to your existing Domino work.

Darwino for Domino: Conceptual Overlap and Distinctions  

By Jesse Gallagher | 6/1/16 2:20 PM | - | Added by Oliver Busse

I've talked a bit so far about how Darwino related to Domino from a development perspective, but I think it'd also be useful to delve into specifically which concerns thw two platforms address, to see where they overlap and where they don't. There are two main categories to cover, since Darwino inherits Domino's unusual trait of pouring over from "database" to "app-dev platform".

Maven Native Chronicles: Running Automated Notes-based Tests  

By Jesse Gallagher | 2/27/16 4:03 PM | - | Added by Oliver Busse

This post isn't really in my ongoing Java thread, though it's related in that this is the sort of thing that may come up in fairly-advanced cases. This post will assume a functional knowledge of Maven, Tycho, and JUnit.

That Java Thing, Part 16: Maven Fallout  

By Jesse Gallagher | 2/23/16 1:36 PM | - | Added by Oliver Busse

So, after the last post's large task of converting to Maven, this step is mostly about picking up the pieces and expanding on some of the concepts. We'll start with M2Eclipse, usually rendered as just "m2e".

That Java Thing, Part 12: Expanding the Plugin - JAX-RS  

By Jesse Gallagher | 12/3/15 3:31 PM | - | Added by Oliver Busse

A couple of months back, Toby Samples wrote a series on using Wink in Domino. I'm not going to cover all of that ground here, but it's still worth dipping into the topic a bink, as writing REST services in an OSGi plugin is a great way to not only add capabilities to your XPages apps, but to also start making your data (and programming skills) more accessible from other platforms.

That Java Thing, Part 8: Source Bundles  

By Jesse Gallagher | 11/10/15 10:06 AM | - | Added by Oliver Busse

Before anything else today, Eric McCormick reminding that yesterday's post missed the final step: committing the changes. So, let's take care of that right now. On my side, since my Windows VM is also being accessed from the Mac side, it's worthwhile to add a .gitignore file to the root of the repo to keep out all the .DS_Store nonsense.

Dealing with OSGi Fragments in Tycho and Designer  

By Jesse Gallagher | 9/11/15 5:32 PM | - | Added by Oliver Busse

This post is partly to spread information publicly and partly a useful note to my future self for the next time I run into this trouble. In OGSi, the primary type of entity you're dealing with is a "Bundle" or "Plug-in" (the two terms are effectively the same for our needs). However, there's a sort of specialized type that you may run into called a "Fragment".

How I Use JAX-RS in the frostillic.us Framework  

By Jesse Gallagher | 5/1/15 4:11 PM | - | Added by Oliver Busse

Inspired by Toby Samples's new blog series on JAX-RS in Domino, I'd like to share a description of how I made use of it to write the REST services in the frostillic.us Framework. This is not intended to be a from-scratch introduction - Toby is handling that well so far - but instead assumes a certain amount of knowledge with OSGi development and why you would want to do this in the first place.

I Hadn't Thought I'd End The Year Getting Into WebSphere  

By Jesse Gallagher | 1/5/15 2:46 AM | - | Added by Oliver Busse

...yet here we are. It's been a very interesting week in ODA circles. It started with Daniele Vistalli being curious if it was possible to run the OpenNTF Domino API on WebSphere, specifically the surprisingly-friendly Liberty profile. And not just curious: it turned out he had the chops to make it happen. Before too long, with the help of the ODA team, he wrote an extension to the WebSphere server that spins up native (lotus.domino.local) Notes RPC connections using Notes.jar and thus provides a functioning entrypoint to using ODA.

How I Maven-ized My Framework  

By Jesse Gallagher | 12/8/14 11:21 AM | - | Added by Johnny Oldenburger

This past weekend, I decided to take a crack at Maven-izing the frostillic.us Framework (I should really update the README on there). If you're not familiar with it, Maven is a build system for Java projects, basically an alternative to the standard Eclipse way of doing things that we've all gotten pretty used to.