Skip navigation

Hack_Tour_Bus_nyc.png

(Awesome photoshop skills)

 

 

Well, I'm super excited to announce that we've got our first event for Jive Developer Days and it's going to start at Big Apple and a big thank you to Social Edge Consulting for sponsoring! We are limited in capacity to 14 attendees, so we're going to put a limit of 2 individuals per organization/company for now. This is a meetup/workshop that is geared more towards beginning development in Jive and to try out the newer add-on framework that's available in Jive 8 & Cloud—as such, priority may be given to individuals who fit this criteria. Please put your name and organization if you can 100% definitely commit to being at the event and joining us for one of the install fest's.

 

Event Details:

When: June 8th, 2016 — From 1pm, to 5pm

Where: Madison & 28th, NY, NY (Full address will be given to attendees prior to event)

Cost: $0 thanks to Social Edge

 

Installfest Details:

What: We go over all the items you need to have installed and make sure you have access to everything you need in order to get to the event and be able to work through your ideas without issues.

Mandatory: YES. Some exceptions may be made.

When: June 7th, 2016

Time: TBD

 

How to Sign-Up:

This is mostly first come first served until we get a total of 14 people. 2 people maximum per organization (until May 24, 2016—if there are spots open, then we'll consider taking more from one single company). Please leave your name and company in the comment below. Each member must comment individually—you cannot add others on your behalf. Registration ends June 1, 2016 12pm PST!

 

Please leave your NAME and COMPANY in the comments below. You must include both.

 

Priority Seating:

Registration for the event is mostly first come, first served. But, since there is a very limited number of seats, we're going to impart some priority seating policies. However, know that we're being truly transparent about how we're doing this.

  • Those who have shown interest from the beginning or have been proactively trying to host/sponsor the event will automatically get priority of attendance.
  • Individuals new to Jive development will also get priority since this is specifically the audience we're gearing the event towards, doesn't mean existing developers can't go, just throwing this out there as a possible factor.
  • Developers. This event is welcome to business XXXXXXX individuals with some coding experience as well, but priority is given to Developers as it is a developer centric event.

If I haven't added you to the registration list yet, it's because I'm waiting for those priority individuals/organizations listed above to respond with a yes/no first.

 

What You'll Gain by Attending:

 

Our Sponsor:

This event couldn't be possible without Social Edge Consulting finding the space and providing snacks/beverages for attendees. Social Edge Consulting is an implementation partner and reseller of Jive, and our proud sponsor for the first Jive Developer Days event—a big thank you for making this possible.

 

 

Registered

Attendee
Organization
John ReynoldsSocial Edge Consulting
Robert HansonSocial Edge Consulting
Sergia DupouxAmerican Student Assistance
Ibrahim IbrahimAmerican Student Assistance

Andy Schedler

New York Life Insurance
Nate MillerJudge Group
Ari HalbkramChubb Insurance
Hazem El Mahmoudi
Faurecia
Munish Chopra
NBCU
Sandeep ShanuCapgemini
Lea ReznikKellton Tech

 

 

Waitlist

AttendeeOrganization

Please leave your NAME and COMPANY in the comments below to sign up. You must include both. Registration will end June 1st, 2016.

extension-128.pngAnother year, and another Stars Wars day has gone by!  I don't know how many of you chose to spend your day, but I took some time to embrace my inner-nerd and dive a bit deeper into Java SpringBoot to see just how fast I could stand up a Jive add-on project.  In part because I've been fascinated with all the work being contributed to that project, but also as a reminder to myself about the Jive SDK Your Way Initiative announced at JiveWorld16.

 

Need to learn more about the Jive SDK Your Way Initiative?

Getting Started with SpringBoot

So with the Force as my guide (a.k.a. Google), I set out to learn all that I could about Java + SpringBoot, how it differs from traditional Spring that I had become accustomed to building Jive Plugins  I'm happy to say that most of that knowledge carried over like a top, but it took a few moments to get re-adjusted to IoC after a long sabbatical.

 

In about an hour, I had a rough outline of the project structure ... and some basic components up and running as I expected them to.  Now all I needed to do was implement the Jive specific elements, which according to Building Jive Add-Ons Your Way presentation by Drew/Butch (see above), are the following:

  • Jive Signature Validation (primarily Jive Add-On Registration only)
  • Signed Fetch Validation (impacts any service that is called from an App, Tile, Webhook or other signed means.

 

When it comes to building web applications, I'm a big fan of the concept of "fail fast", which implies that if a request is going to be bad ... get rid of it ASAP.  This is the primary reason I choose to embed Jive Signed Fetch Validation into a ServletFilter.  It's an easy way to separate the concerns of validation and service execution without polluting code downstream.    Since Jive Signature Validation is mainly only used in a single instance, I decided to move that to a utility class for simple inclusion.  You'll notice that most of the code was lifted from the Jive SDK - Java & Jersey Edition ... which is what makes this doable.   Once I got these two things in place, the rest just fell into place!

Bonus - One of the pleasant surprises I ran into was just how dead simple it is to setup JPA persistence with SpringBoot.  Setting up the Entity and Repository classes (and using a little JPQL) were absolutely dead simple, and coupled with the JPA auto data/schema loading capabilities...it means that I can have a reproducible environment no matter which database I'm using (Postgres, MySql, HSQL or any other JPA compliant).

Let's See Some of the Code

Here is an example of what a web service would look like that is protected by the Jive Signed Fetch Validator ...

@RestController
@RequestMapping("/api/example")
public class ExampleSignedFetchController {
  @Autowired
  private JiveTrustedUserDetails userDetails;

  @Autowired
  private JiveInstanceDetails jiveInstanceDetails;

 @RequestMapping(method={RequestMethod.POST},value="/test")
  public ResponseEntity<String> test(@RequestBody String body) {
  StringBuilder output = new StringBuilder("Request Details:").append("\n");
  output.append(jiveInstanceDetails.getJiveInstance().getTenantId()).append("\n");
  output.append(userDetails.getUserID()).append("\n");
  return new ResponseEntity<String>(output.toString(),HttpStatus.OK);
 }

... that's it!  You can see the full code here, but there really isn't much else to it!  Very clean and to the point, and easy to abstract away the Jive nuances of the solution.

 

You can clone/fork the repo here:

GitHub - jivesoftware/jive-sdk-java-springboot: This is an example implementation of a Jive add-on server built and writ…

Conclusion

Overall, I must say that I am very pleased with the results of this exercise, and think that any Java developers out there interested in building Jive add-ons, should definitely give this a try!  Not only was the platform a quick learn, but it also keep the coding footprint extremely small (by Java standards).  It took about 12 hours to get it right, but was functioning around 6 hours in.  Most of the time spent was simply (re)learning the nuances of the SpringBoot environment.

Reminder:  With those 12 hours spent, I can now spin up a Jive + Java w/SpringBoot project in under 5-10 minutes and be read to go .. which is time well spent IMO!

Note:  I haven't had a chance to finish some of the stuff I was working on, such as Webhooks and Tile Pushers; however, there is functioning code in the jivesoftware/jive-sdk-java-jersey that can easily be ported over to complete these requirements.  My focus was to keep this time boxed to a single day.

Next Steps

  • What languages are you interested to write Jive add-ons services in?  The Jive SDK Your Way Initiative is here to help!
    Let Rashed Talukder or myself know if you are interested in putting together an example implementation in our GitHub repository to share with others.  Currently, we have basic support for:
  • Let's work co-operatively to bring our Jive expertise and your language/library knowledge together to build something awesome!
  • And as always, ...

 

 

may-the-fourth-be-with-you-the-best-of-star-wars-day-962296.gif

Filter Blog

By date: By tag: