This document provides an overview of Java Bean component models. It discusses that Java beans are reusable software components that can be visually manipulated in builder tools. It also describes the different types of ports beans can have including methods, properties, events sources, and event sinks. The document outlines how to implement properties, events, and listeners in beans to make them customizable. It also discusses how beans can be made persistent through serialization and how customizers can provide customized user interfaces for complex beans.
A bean is a reusable software component based on Sun's JavaBeans specification that can be manipulated visually in a builder tool.“
The JavaBeans technology enables vendors to create environments that make it dramatically easier to develop user interfaces for Java applications.
A bean is a reusable software component based on Sun's JavaBeans specification that can be manipulated visually in a builder tool.“
The JavaBeans technology enables vendors to create environments that make it dramatically easier to develop user interfaces for Java applications.
Introduction to java beans, java beans, Core java, j2se, getting started with java beans programming, java to standard edition, beans in java, beans programming in java
The state of hooking into Drupal - DrupalCon DublinNida Ismail Shah
https://events.drupal.org/dublin2016/sessions/state-hooking-drupal
Major portion of drupal development has been about hooks. We have all used them. But there have been talks about replacing the procedural hook system in Drupal with its Object oriented version - Events. We are already on the track and we, as of now, are required to use Events for many things in Drupal 8.
This session will mainly elustrate:
How hooks work in Drupal.
How we are on the track of moving from hooks to Events in Drupal 8
Where we are? What all do we need Events for and where we are still stuck with hooks.
When to alter and when to fire an event.
How to create and dispatch an Event from your module.
How to listen or subscribe to an Event from your custom Event or an event from core.
How to expose custom hooks in Drupal 8.
Attendees should be familiar with:
Basic Drupal 8 module development.
Basic OOP principles and practices.
Symfony components used in D8.
After attending this session attendees will be able to:
Create their custom events in Drupal 8
Subscribe to the events from core and other modules and to their custom events too.
Will have a knowledge of where to explore the events and where we have to still use hooks.
Hibernate inheritance and relational mappings with examplesEr. Gaurav Kumar
Topics included in presentation:
1. Hibernate mappings.
2. Type of mappings(Bidirectional and Unidirectional)
a. One to Many
b. One to one
c. Many to many
3. Inheritance in Hibernate
a. table per class hierarchy
b. table per subclass
c. table per concrete class
TUTORIAL-INTRODUCTION TO SPRING FOR BEGINNERS
EXPLANATION TO-Java Framework,Advantages of using SPRING,Difference between Hibernate and Spring.Spring architecture,Spring IoC Containters,Bean scope & Method Injection,Spring Inheritance.
Java Persistence API is a collection of classes and methods to persistently store the vast amounts of data into a database which is provided by the Oracle Corporation.
Generally, Java developers use lots of code, or use the proprietary framework to interact with the database, whereas using JPA, the burden of interacting with the database reduces significantly. It forms a bridge between object models (Java program) and relational models (database program).
Introduction to JPA and Hibernate including examplesecosio GmbH
In this talk, held as part of the Web Engineering lecture series at Vienna University of Technology, we introduce the main concepts of Java Persistence API (JPA) and Hibernate.
The first part of the presentation introduces the main principles of JDBC and outlines the major drawbacks of JDBC-based implementations. We then further outline the fundamental principles behind the concept of object relation mapping (ORM) and finally introduce JPA and Hibernate.
The lecture is accompanied by practical examples, which are available on GitHub.
Introduction to java beans, java beans, Core java, j2se, getting started with java beans programming, java to standard edition, beans in java, beans programming in java
The state of hooking into Drupal - DrupalCon DublinNida Ismail Shah
https://events.drupal.org/dublin2016/sessions/state-hooking-drupal
Major portion of drupal development has been about hooks. We have all used them. But there have been talks about replacing the procedural hook system in Drupal with its Object oriented version - Events. We are already on the track and we, as of now, are required to use Events for many things in Drupal 8.
This session will mainly elustrate:
How hooks work in Drupal.
How we are on the track of moving from hooks to Events in Drupal 8
Where we are? What all do we need Events for and where we are still stuck with hooks.
When to alter and when to fire an event.
How to create and dispatch an Event from your module.
How to listen or subscribe to an Event from your custom Event or an event from core.
How to expose custom hooks in Drupal 8.
Attendees should be familiar with:
Basic Drupal 8 module development.
Basic OOP principles and practices.
Symfony components used in D8.
After attending this session attendees will be able to:
Create their custom events in Drupal 8
Subscribe to the events from core and other modules and to their custom events too.
Will have a knowledge of where to explore the events and where we have to still use hooks.
Hibernate inheritance and relational mappings with examplesEr. Gaurav Kumar
Topics included in presentation:
1. Hibernate mappings.
2. Type of mappings(Bidirectional and Unidirectional)
a. One to Many
b. One to one
c. Many to many
3. Inheritance in Hibernate
a. table per class hierarchy
b. table per subclass
c. table per concrete class
TUTORIAL-INTRODUCTION TO SPRING FOR BEGINNERS
EXPLANATION TO-Java Framework,Advantages of using SPRING,Difference between Hibernate and Spring.Spring architecture,Spring IoC Containters,Bean scope & Method Injection,Spring Inheritance.
Java Persistence API is a collection of classes and methods to persistently store the vast amounts of data into a database which is provided by the Oracle Corporation.
Generally, Java developers use lots of code, or use the proprietary framework to interact with the database, whereas using JPA, the burden of interacting with the database reduces significantly. It forms a bridge between object models (Java program) and relational models (database program).
Introduction to JPA and Hibernate including examplesecosio GmbH
In this talk, held as part of the Web Engineering lecture series at Vienna University of Technology, we introduce the main concepts of Java Persistence API (JPA) and Hibernate.
The first part of the presentation introduces the main principles of JDBC and outlines the major drawbacks of JDBC-based implementations. We then further outline the fundamental principles behind the concept of object relation mapping (ORM) and finally introduce JPA and Hibernate.
The lecture is accompanied by practical examples, which are available on GitHub.
First lecture in the Java EE training course.
Covers:
- Java EE project setup
- Introduction to Maven
- Web application structure
- JSF basics
- CDI basics
Introduce yapi.js, an adaptive streaming web player.
This slides has 3 main topics:
1. How yapi.js implement adaptive streaming with HTML5 media element and MSE (Media Source Extension).
2. How to create ui for playback with native javascript.
3. Compare jasmine and mocha, and some tips about unit test.
2. Javabean Component
• Java bean is a reusable software component that can be
manipulated visually in a builder tool
• Graphic bean and Non-graphic bean
• Javabean is not distributed component like EJB
• Interface of javabean is provided by
1. Design pattern(implicitly)
2. Using a class to implement the BeanInfo or Customizer
interface(explicitly)
3. Javabean Component
• It is a binary building block
• Development and deployment of a javabean
• Assembly javabeans to build a new javabean or a new
application, applet
• Write glue codes to wire all beans together
• javabean with CORBA as a CORBA client
• Client side javabean
• Javabean for business logic process in MVC on server
• javabean on server is not visible
4. Interface of a component
• This model defines four types of port:
– methods,
– properties,
– event sources and
– event sinks called listeners.
Read-only property
Write-only property
Property
Method
Event source
Event sink (listener)
Bounded property
v Vetoable property
ro
wo
1 Unicast event source
Ports
5. Implementations of a Bean
Components
Object
Method
Method call
Binding
A simple implementation A more complex implementation
6. Components Assembly
• Assembly is one of the key features of Java
Bean though no not specific solution is
provided.
– Different ways of assembling components are
supplied.
Component-based assembly Heterogeneous assembly
7. Advantages of Java Bean
• Write once, run anywhere
• The properties, events, and methods of a bean that are
exposed to an application builder tool can be
controlled
• They are the interface of the bean.
• They are platform independent
• Configuration setting of a bean can be saved in
persistent storage and restored later
• Bean may register and receive events from other
object and can generate event sent to other objects
(Bean communication)
9. Design Pattern
• All beans should implement the Serializable interface so
that the state can be saved and later restored
• Methods must be made public
• All exposed methods should be threadsafe, possibly
synchronized to prevent more than one thread from calling
method at a given time
• Propertie X is exposed by public setX and getX methods
• Boolean property may be exposed by isX method which
returns a boolean value
• The bean which may trigger event must provide
addEventListener and removeEventListener mehods for
other bean to register with it to be notified
10. Deployment of Bean
• All java classes can be converted to a bean
• Bean is compressed and saved in the format of jar
file which contains manifest file, class files, gif
files, and other information customization files
• Sun NetBeans, BDK, Visual Café, JBuilder,
Visual Age are the bean builder tools
11. Criteria to be a bean
• Can this piece of code be used in more than one area?
• Can you quickly think of ways that this piece of code
might be customized?
• Is the purpose of this code easy to explain?
• Does this code module contain all the info it needs to work
itself?
• Does it have good encapsulation?
If you answer all “yes”, You should make the class a bean
12. JAR file
• JAR file allows you to efficiently deploy a set of classes
and their associated resources.
• JAR file makes it much easier to deliver, install, and
download. It is compressed.
14. Creating and extract a jar file
• Create a jar file
jar cfm simplebean.jar manifest.tmp *.class
• Extracting files from a jar file
jar xf simplebean.jar
15. Develop a New Bean
• Create a directory for the new bean
• Create the java bean source file(s)
• Compile the source file(s)
• Create a manifest file
• Generate a JAR file
• Start BDK
• Test
Working-dir can be at <bdk>demo where <bdk> is the
installation dir for BDK
16. Create bean source file -
SimpleBean.java
package simplebean;
import java.awt.*;
import java.io.Serializable;
public class SimpleBean extends Canvas implements
Serializable
{ public SimpleBean(){
setSize(60,40);
setBackground(Color.red);}}
17. Compile and make jar file
• Javac -d . SimpleBean.java
• Edit a manifest file called manifest.tmp
Name: SimpleBean.class
Java-Bean: True
• jar cfm ..jarssimplebean.jar manifest.tmp
simplebean*.class
[SimpleBean and colorsbean demo]
18. Introspection
• Process of analyzing a bean to determine the
capability
• Allows application builder tool to present info
about a component to software designer
• Naming convention implicit method
• BeanInfo class to explicitly infer info of a bean
19. Design Pattern for Properties
Property is a subset of a bean’s state which
determines the appearance and behavior of the
component
• Simple property
• Indexed Property
• Bound Property
• Constrained property
20. Simple Property
• Simple property has a single value.
• N is the name of the property and T is its type
• public T getN();
• public void setN(T arg)
• For readonly property there is getN() method only
21. Indexed Property
• One property may consists of multiple values stored in an
array
• public T getN(int index);
• public void setN(int index, T value);
• public T[] getN();
• public void setN(T values[]);
where N may be a double data[] and T is double
22. Bound Property
• It can generate an event when the property
is changed
• The event is of type PropertyChangeEvent
and is sent to objects that previously
registered an interest in receiving such
notifications
• bean with bound property - Event source
• Bean implementing listener -- event target
23. Implement Bound Property in a Bean
1. Import java.beans package
2. Instantiate a PropertyChangeSupport object
private PropertyChangeSupport changes = new
PropertyChangeSupport(this);
3. Implement methods to maintain the property change
listener list:
public void
addPropertyChangeListener(PropertyChangeListener l)
{ changes.addPropertyChangeListener(l);}
also removePropertyChangeListener method is needed
24. Event Source Cont.
4. Modify a property’s setter method to fire a property change
event when the property is changed.
Public void setX(int newX){
int oldx = x;
x = newX;
changes.firePropertyChange(“x”, oldX, newX);}
25. Implement Bound Property Listener
1. Listener bean must implement PropertyChangeListner
interface
public class MyClass implements PropertyChangeListener,
Serializable
2. It must override this method:
public abstract void propertyChange(PropertyChangeevent evt)
26. Constrained Property
• It generates an event when an attempt is made to change it
value
• The event type is PropertyChangeEvent
• The event is sent to objects that previously registered an
interest in receiving an such notification
• Those other objects have the ability to veto the proposed
change
• This allows a bean to operate differently according to the
runtime environment
27. Three Parts in Implementation of
Constrained Property
1. Source bean containing one or more constrained properties
2. Listener objects that implement the
VetoableChangeListener interface. This object either
accepts or rejects the proposed change.
3. PropertyChangeEvent object containing property name, old
value, new value.
28. Implement Constrained Property in a
Bean
Bean with constrained property must
1. Allow VetoableChangeListener object to register and
unregister its interest in receiving notifications
2. Fire property change at those registered listeners. The
event is fired before the actual property change takes place
29. Implementation of Constrained Property
in a Bean
1. Import java.beans package
2. Instantiate a VetoableChangeSupport object:
private VetoableChangeSupport vetos=new
VetoableChangeSupport(this);
3. Implement methods to maintain the property change
listener list:
public void
addVetoableChangelistener(VetoableChangelistener l)
{ vetos.addVetoableChangeListener(l);}
30. Cont.
4. Write a property’s setter method to fire a property change
event:
public void setX(int newX)
{ int oldX=X;
vetos.fireVetoableChange(“X”, oldX, newX);
//if no veto there
X=newX;
changes.firePropertyChange(“X”, oldX, newX); }
31. Implementing Constrained Property
Listeners
1. Implements the VetoableChangeListener interface which
has an abstract method
Void vetoChange(PropertyChangeEvent evt)
2. Overide this abstract method. This is the method that will
be called by the source bean on each object in the listener
list kept by vetoableChangeSupport object
32. Persistence
• It has the ability to save a bean to storage and retrieve it at
a later time
• Configuration settings are saved
• It is implemented by Java serialization
• If a bean inherits directly or indirectly from Component
class it is automatically Serializable.
• Transient keyword can be used to designate data members
not be saved ex. Thread reference member
33. Customizers
• Property sheet may not be the best user interface for a
complex component
• It can provide step-by-step wizard guide to use component
• It can provide a GUI frame with image which visually tells
what is changed such as radio button, check box, ...
• It can customize the appearance and behavior of the
properties