graniteds - javacro · spring ejb3 ... •

19
GRANITEDS POVEZIVANJE JAVE I FLEXA POMOĆU GRANITEDS-A Eugen Božić MIPS d.o.o.

Upload: lybao

Post on 25-Apr-2018

227 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: GRANITEDS - JavaCro · Spring EJB3 ... •

GRANITEDS

POVEZIVANJE JAVE I FLEXA

POMOĆU GRANITEDS-A

Eugen Božić

MIPS d.o.o.

Page 2: GRANITEDS - JavaCro · Spring EJB3 ... •

SADRŽAJ Uvod

Analiza front-end tehnologija

Integracija JavaEE i Flexa

Što je GraniteDS

Mogućnosti GraniteDS-a

Primjer

Konfiguracije Service injectiona Entiteta Paged querya

Page 3: GRANITEDS - JavaCro · Spring EJB3 ... •

UVOD Enterprise RIA sa modernim sučeljem

Atraktivno sučelje neovisno o preglednicima Rapid development za Java programere Stabilno, enterprise ready okruženje Bezbolna integracija sa JavaEE backendom

Predlagane front-end tehnologije

Adobe Flash / Flex HTML5 + JavaScript GWT JavaFx

Page 4: GRANITEDS - JavaCro · Spring EJB3 ... •

ANALIZA TEHNOLOGIJA

Adobe Flex HTML5 & JS GWT JavaFXIntegracija sa JavaEE

Atraktivnost sučelja

Gotovekomponente

Learning curve

Neovisnost o pregledniku

Podrška za mobilne uređaje

Page 5: GRANITEDS - JavaCro · Spring EJB3 ... •

ANALIZA TEHNOLOGIJAProtokoli za povezivanje JavaEE i Adobe Flex-a

SOAP Web servisi RESTful (HTTP POST) servisi Action Message Format

Page 6: GRANITEDS - JavaCro · Spring EJB3 ... •

ANALIZA TEHNOLOGIJA

0

500

1000

1500

2000

2500

3000

3500

Primitivni tipovi Kompleksni tipovi

Liste

Web ServisiHTTP poziviAMF

Page 7: GRANITEDS - JavaCro · Spring EJB3 ... •

INTEGRACIJA JAVAEE I FLEX-A

BlazeDS LCDS GraniteDS WebORBSinkronizacija Clinet-Server

Data push

Data Paging

Hibernate

Spring

EJB3

Generiranje Flex koda

Flex framework

Open source

Page 8: GRANITEDS - JavaCro · Spring EJB3 ... •

ŠTO JE GRANITEDS

Page 9: GRANITEDS - JavaCro · Spring EJB3 ... •

MOGUĆNOSTI I PREDNOSTI GRANITEDSAFlex framework (Tide) donosi JavaEE koncepte u Flex aplikaciju: dependenxy injection, context-e, autentifikaciju, bean validation...

Real-time modul (Gravity) omogućuje vrlo efikasan data push na klijentske aplikacije

Code generator (Gas3, Gfx) ubrzava repliciranje Java entitea i Java servisa u ActionScript-u

Jednostavna konfiguracija: većina konfiguracije je automatizirana putem provjere deployment enviroment-a

Page 10: GRANITEDS - JavaCro · Spring EJB3 ... •

PRIMJER GRANITEDS KONFIGURACIJE@FlexFilter(tide = true,

type = "ejb",

factoryClass = EjbServiceFactory.class,

ejbLookup = "java:global/{capitalized.component.name}Bean",

entityManagerJndiName = "java:comp/env/persistence/mipsMpsUnit",

tideInterfaces = { EjbIdentity.class },

tideAnnotations = {RemoteDestination.class, TideEnabled .class},

tideNames = {".*Service$"}

Page 11: GRANITEDS - JavaCro · Spring EJB3 ... •

PRIMJER SERVICE INJECTION-A

[Name("dostavaEditorContentPM", scope="conversation")]

public class DostavaEditorContentPM extends ComponentPM {

[In]

public var dostavaService:DostavaServiceRemote;

[In]

public var postonose:PagedQuery;

}

Page 12: GRANITEDS - JavaCro · Spring EJB3 ... •

PRIMJER JAVA ENTITETA@Entity

@Table(name = "osoba", schema = "core")

public class Osoba extends AbstractEntity {

@OneToMany(mappedBy = "osoba", cascade = CascadeType.ALL, orphanRemoval = true)

private List<Adresa> adrese;

public List<Adresa> getAdrese() {

return adrese;

}

public void setAdrese(List<Adresa> adrese) {

this.adrese = adrese;

}

...

}

Page 13: GRANITEDS - JavaCro · Spring EJB3 ... •

PRIMJER ACTIONSCRIPT ENTITEA[Managed]

public class OsobaBase extends AbstractEntity {

[Transient]

meta var entityManager:IEntityManager = null;

private var _adrese:ListCollectionView;

[Lazy]

public function get adrese():ListCollectionView {

return _adrese;

}

...

Page 14: GRANITEDS - JavaCro · Spring EJB3 ... •

PRIMJER PAGEDQUERY-AEjb.getInstance()

.addComponentWithFactory("postonose",

PagedQuery,

{

maxResults:30,

remoteComponentName:"dostavaService",

methodName:"getPostonosePaged",

filterClass:PostonosaDTO

}

);

Page 15: GRANITEDS - JavaCro · Spring EJB3 ... •

PRIMJER PAGEDQUERY-A

public Map<String, Object> getPostonose(

PostonosaDTO filter,

int first, int max,

String[] order, boolean[] desc) {

Map result = new HashMap(4);

...

result.put("firstResult", first);

result.put("maxResults", max);

result.put("resultCount", resultCount);

result.put("resultList", resultList);

return result;

}

Page 16: GRANITEDS - JavaCro · Spring EJB3 ... •

PRIMJER PAGEDQUERY-A

<mx:Script>

[In(create="true")]

public var postonosaDTO:PostonosaDTO;

[In]

public var postonose:PagedQuery;

public function search(event:MouseEvent):void {

postonose.filter = postonosaDTO;

postonose.refresh();

}

</mx:Script>

<mx:TextInput id=“imePostonose" text="{postonosaDTO.ime}"/>

<mx:Button label=“Traži" click=“search(event)"/>

<mx:DataGrid id="postonoseGrid“ dataProvider="{postonose}">

</mx:DataGrid>

Page 17: GRANITEDS - JavaCro · Spring EJB3 ... •

PITANJA

Page 18: GRANITEDS - JavaCro · Spring EJB3 ... •

HVALA NA PAŽNJI!

Eugen Božić[email protected]

MIPS d.o.o.Tuškanova 3710000 Zagreb

Page 19: GRANITEDS - JavaCro · Spring EJB3 ... •

LINKOVI• http://artemgolubev.com/blazeds-vs-graniteds-vs-weborb-vs-livecycleds-for-business-applications-on-flex-and-java/

•http://granitedataservices.com/

•http://www.graniteds.org/public/docs/2.3.2/docs/reference/en-US/html_single/index.html

•http://www.themidnightcoders.com/products/weborb-for-net/developer-den/technical-articles/amf-vs-webservices.html

•http://graniteds.blogspot.com/2010/08/graniteds-and-glassfish-v3.html