ad104 build a bean workshop

20
MWLUG 2014 AD104: Build a Bean Workshop Mike McGarel, Collabora/ve Solu/ons Developer, Czarnowski Display Services, Inc. Devin Olson, Collabora/ve Solu/ons Developer, Czarnowski Display Services, Inc.

Upload: devin-olson

Post on 11-Apr-2017

39 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Ad104 build a bean workshop

MWLUG  2014  

AD104:  Build  a  Bean  Workshop  

Mike  McGarel,  Collabora/ve  Solu/ons  Developer,    Czarnowski  Display  Services,  Inc.  

Devin  Olson,  Collabora/ve  Solu/ons  Developer,  Czarnowski  Display  Services,  Inc.  

Page 2: Ad104 build a bean workshop

AD104:  Build  a  Bean  Workshop  

Mike  McGarel    

Ø Collabora/ve  Solu/ons  Developer  at    Czarnowski  Display  Services  

Ø Working  with  Notes/Domino  since  version  4.6  Ø Working  on  the  Web  for  over  14  years  Ø OpenNTF  contributor  Ø Maintain  MWLUG  site  

Page 3: Ad104 build a bean workshop

AD104:  Build  a  Bean  Workshop  

Devin  Olson    

Ø Collabora/ve  Solu/ons  Developer  at    Czarnowski  Display  Services  

Ø Notes  /  Domino  consultant  since  1995    (that's  R3  for  you  punks)  

Ø PCLP  SA/AD  R4.6,  R5,  R6,  R7    (stopped  taking  tests  aWer  that)  

Ø Beer  Snob  (Anheuser-­‐Busch    Cer/fied  Beer  Master)  

Ø LearningXPages.com  

Page 4: Ad104 build a bean workshop

AD104:  Build  a  Bean  Workshop  

Agenda    

Ø Dip  into  Java  beans    Ø App  goal  Ø Time  to  build  

Page 5: Ad104 build a bean workshop

AD104:  Build  a  Bean  Workshop  

LotusScript  and  Java  SimilariDes    

Ø LS  has  subs  and  func/ons,  Java  has  methods  Ø Both  strongly  typed    LS:    Dim x As String Java:  String x  

Ø Nearly  exact  syntax:  LS:  collec/on.GetFirstDocument  Java:  collec/on.getFirstDocument()  

Page 6: Ad104 build a bean workshop

AD104:  Build  a  Bean  Workshop  

LotusScript  and  Java  Differences    

Ø Case  ma_ers  in  Java  Example:  getFirstDocument()  not  GetFirstDocument()  

Ø Beans  persist,  LS  objects  don’t  Ø Java  is  modern,  LS  is  .  .  .    

Page 7: Ad104 build a bean workshop

AD104:  Build  a  Bean  Workshop  

What  do  we  mean  by  “bean”?    

A  Java  object  defined  by  specific  standards  Ø Public  Java  class  Ø Serializable    Ø Private  proper/es  (op/onal)  Ø Public  constructor  with  no  arguments  Ø Public  methods  (not  required,  but  kind  of    pointless  without)  

Page 8: Ad104 build a bean workshop

AD104:  Build  a  Bean  Workshop  

What  does  a  bean  look  like?    

package com.mwlug;

import java.io.Serializable;

/* other possible libraries */

public class MyClass implements Serializable {

private static final long serialVersionUID = 1L;

private String myText;

/* Other possible variables */

public MyClass() {

}

public String getMyText() {

return myText;

}

public void setMyText (String txt) {

this.myText = txt;

}

/* Other possible methods */

}

Page 9: Ad104 build a bean workshop

AD104:  Build  a  Bean  Workshop  

Public  Java  Class    

package com.mwlug;

import java.io.Serializable;

public class MyClass implements Serializable {

 

Page 10: Ad104 build a bean workshop

AD104:  Build  a  Bean  Workshop  

Serializable    

package com.mwlug;

import java.io.Serializable;

public class MyClass implements Serializable { private static final long serialVersionUID = 1L;

 

Page 11: Ad104 build a bean workshop

AD104:  Build  a  Bean  Workshop  

Private  ProperDes    

public class MyClass implements Serializable { private static final long serialVersionUID = 1L;

private String myString; private Integer myInteger;

private List myList;

 

Page 12: Ad104 build a bean workshop

AD104:  Build  a  Bean  Workshop  

Public  Constructor  with  No  Arguments    

Sample  1  –  no  methods:   public MyClass() {

}

Sample  2  –  with  methods:   public MyClass() {

myString = “This is my string”; this.myInteger = new Integer(1);

}

 

Page 13: Ad104 build a bean workshop

AD104:  Build  a  Bean  Workshop  

Public  Methods    

public String getMyText() {

return myText; }

public void setMyText (String txt) {

this.myText = txt; }

 

Page 14: Ad104 build a bean workshop

AD104:  Build  a  Bean  Workshop  

What  is  a  “managed”  bean?    

A  bean  listed  in  the  facesconfig.xml  file.    <managed-bean>

<managed-bean-name>mine </managed-bean-name>

<managed-bean-class>com.mwlug.MyClass </managed-bean-class> <managed-bean-scope>view </managed-bean-scope>

</managed-bean>  

Page 15: Ad104 build a bean workshop

AD104:  Build  a  Bean  Workshop  

Why  should  I  use  beans?    

Ø Reusability  Ø Persistence  Ø Modern  replacement  for  profile  documents  Ø Easy  way  to  load  Java  methods  

Page 16: Ad104 build a bean workshop

AD104:  Build  a  Bean  Workshop  

A  few  words  about  recycling    

Ø Related  to  C+,  not  Java  Ø Recycling  releases  the  handle  from  memory  Ø Needed  only  for  Lotus-­‐based  Java  objects,  e.g.,  NotesDatabase,  NotesView,  NotesDocument  

Page 17: Ad104 build a bean workshop

AD104:  Build  a  Bean  Workshop  

Let’s  start  building!  

Page 18: Ad104 build a bean workshop

AD104:  Build  a  Bean  Workshop  

References  

Ø Notes  in  9    (notesin9.com)  Ø Head  First  Java  Ø learningXPages.com    Ø Russell  Maher’s  Connect  2013  Master  Class:  XPages  &  Managed  Beans  (slides  on  xpage/ps.blogspot.com)  

Page 19: Ad104 build a bean workshop

AD104:  Build  a  Bean  Workshop    

Thank  You  For  AXending  

The  authors  appreciate  any  feedback  or  comments  you  care  to  give.  

(appropriate  music  lyric  here)  

Page 20: Ad104 build a bean workshop

AD104:  Build  a  Bean  Workshop  

Contact  Us  Mike  McGarel  Ø  Blog:  h_p://www.bleedyellow.com/blogs/McGarelGramming  Ø  Twi_er:  @mmcgarel  Ø  Email:  [email protected]  

Devin  Olson  Ø  Blog:  h_p://www.learningxpages.com  Ø  Twi_er:  @spanky762  Ø  Email:  [email protected]    Ø  Facebook:  facebook.com/default.xsp