47
UF UberFire http://www.slideshare.net/MarkProctor/uberfire-quick- intro-and-overview-early-beta-aug-2013 Tuesday, 6 August 13

UberFire Quick Intro and Overview (early beta Aug 2013)

Embed Size (px)

DESCRIPTION

Quick UberFire presentation

Citation preview

Page 2: UberFire Quick Intro and Overview (early beta Aug 2013)

GWT

Tuesday, 6 August 13

Page 3: UberFire Quick Intro and Overview (early beta Aug 2013)

GWTGoogle committed to Open Source developmentmodel

Steering Commit/TransparencyTimeBox releases (twice year)Future focus

Mobile (reduced CPU utilization, more code splitting)Easier “Hyrbid” appsSmaller and faster executions

Tuesday, 6 August 13

Page 4: UberFire Quick Intro and Overview (early beta Aug 2013)

GWTGWT used extensively at Google

Adwords (97% of google revenue)Google Groups (rewrite just announced)Major new consumer projects about to be announcedBig chunk of internal IT100K+ monthly auto-update pings (Eclipse)

GWT considered matureNot investing in marketing or evangalising

Tuesday, 6 August 13

Page 5: UberFire Quick Intro and Overview (early beta Aug 2013)

BRMS and BPMS5.x

Tuesday, 6 August 13

Page 6: UberFire Quick Intro and Overview (early beta Aug 2013)

BRMS and BPMS 5.xAuthoringBuildDeploy

Tuesday, 6 August 13

Page 7: UberFire Quick Intro and Overview (early beta Aug 2013)

BRMS and BPMS 5.xAuthoringBuildDeployMonitor and ManageWork

Tuesday, 6 August 13

Page 8: UberFire Quick Intro and Overview (early beta Aug 2013)

Tuesday, 6 August 13

Page 9: UberFire Quick Intro and Overview (early beta Aug 2013)

Tuesday, 6 August 13

Page 10: UberFire Quick Intro and Overview (early beta Aug 2013)

Tuesday, 6 August 13

Page 11: UberFire Quick Intro and Overview (early beta Aug 2013)

What we Learned

Tuesday, 6 August 13

Page 12: UberFire Quick Intro and Overview (early beta Aug 2013)

5.x CritiqueUI

GWTBut not easilyextendedFixed layoutsNo perspectives

Tuesday, 6 August 13

Page 13: UberFire Quick Intro and Overview (early beta Aug 2013)

5.x CritiqueJCR

Performance IssuesEverything stored as blobNo tagging, branching etc.WebdavLimited team providers

Tuesday, 6 August 13

Page 14: UberFire Quick Intro and Overview (early beta Aug 2013)

6.x RequirementsModular design

PluginsCompile time composition of plugins

Maven modulesHybrid GWT + JS support (Runtime Plugins)

Twitter Bootstrap UI

Tuesday, 6 August 13

Page 15: UberFire Quick Intro and Overview (early beta Aug 2013)

6.x RequirementsPanels

Common Life cyclesPanel re-use in other frameworks

Eclipse, 3rd Party, etcSecurity visibility.Hybrid GWT + JS support (Runtime Plugins)

Tuesday, 6 August 13

Page 16: UberFire Quick Intro and Overview (early beta Aug 2013)

6.x RequirementsPerspectives

Flexible layout with DnDSecurity visibility.Multiple layout managers

Tuesday, 6 August 13

Page 17: UberFire Quick Intro and Overview (early beta Aug 2013)

6.x RequirementsMenu’s, Toolbars

decoupled from componentscontextual to perspective and focus panelSecurity visibility.

Tuesday, 6 August 13

Page 18: UberFire Quick Intro and Overview (early beta Aug 2013)

6.x RequirementsVFS (nio2, java backport)

GIT BackendSeamless API for client and Server

SecurityAuthorization, AuthenticationSeamless API for client and Server

MetaDatastored as .dot file in git for each “asset”

High AvailabilityGIT cluster

Tuesday, 6 August 13

Page 19: UberFire Quick Intro and Overview (early beta Aug 2013)

KIEKnowledge is Everything

Tuesday, 6 August 13

Page 20: UberFire Quick Intro and Overview (early beta Aug 2013)

KIE

Tuesday, 6 August 13

Page 21: UberFire Quick Intro and Overview (early beta Aug 2013)

KIE

Tuesday, 6 August 13

Page 22: UberFire Quick Intro and Overview (early beta Aug 2013)

DEMO 1BRMS BETA

Tuesday, 6 August 13

Page 23: UberFire Quick Intro and Overview (early beta Aug 2013)

DEMO 2BPMS Beta

Tuesday, 6 August 13

Page 24: UberFire Quick Intro and Overview (early beta Aug 2013)

Tuesday, 6 August 13

Page 25: UberFire Quick Intro and Overview (early beta Aug 2013)

UberFire

Tuesday, 6 August 13

Page 26: UberFire Quick Intro and Overview (early beta Aug 2013)

UberFire Architecture

Tuesday, 6 August 13

Page 27: UberFire Quick Intro and Overview (early beta Aug 2013)

Tuesday, 6 August 13

Page 28: UberFire Quick Intro and Overview (early beta Aug 2013)

Workbench Screen

Tuesday, 6 August 13

Page 29: UberFire Quick Intro and Overview (early beta Aug 2013)

Workbench ScreenWorkBench Screen

DIVLifecycle events

OnStartUp, OnShutDownOnOpen, OnMayClose, OnCloseOnFocus, OnLostFocus

Tuesday, 6 August 13

Page 30: UberFire Quick Intro and Overview (early beta Aug 2013)

Tuesday, 6 August 13

Page 31: UberFire Quick Intro and Overview (early beta Aug 2013)

Tuesday, 6 August 13

Page 32: UberFire Quick Intro and Overview (early beta Aug 2013)

Workbench Screen

@WorkbenchScreen(identifier = "MyFirstPanel")public class MyFirstPanel extends SimplePanel {

public MyFirstPanel() { setWidget( new Label("Hello World 1") ); }

@WorkbenchPartTitle public String myTitle() { return "My First Panel!"; }

}

Tuesday, 6 August 13

Page 33: UberFire Quick Intro and Overview (early beta Aug 2013)

Workbench Screen$registerPlugin({ id: "my angular js", type: "angularjs", templateUrl: "angular.sample.html", title: function () { return "angular " + Math.floor(Math.random() * 10); }, on_close: function () { alert("this is a pure JS alert!"); }});<div ng-controller="TodoCtrl"> <span>{{remaining()}} of {{todos.length}} remaining</span> [ <a href="" ng-click="archive()">archive</a> ] <ul class="unstyled"> <li ng-repeat="todo in todos"> <input type="checkbox" ng-model="todo.done"> <span class="done-{{todo.done}}">{{todo.text}}</span> </li> </ul> <form ng-submit="addTodo()"> <input type="text" ng-model="todoText" size="30" placeholder="add new todo here"> <input class="btn-primary" type="submit" value="add"> </form> <form ng-submit="goto()"> <input type="text" ng-model="placeText" size="30" placeholder="place to go"> <input class="btn-primary" type="submit" value="goTo"> </form></div>

Tuesday, 6 August 13

Page 34: UberFire Quick Intro and Overview (early beta Aug 2013)

Workbench Editor

Tuesday, 6 August 13

Page 35: UberFire Quick Intro and Overview (early beta Aug 2013)

Workbench EditorWorkBench Screen

DIVLifecycle events

OnStartUp, OnShutDownOnOpen, OnMayClose, OnCloseOnFocus, OnLostFocusIsDirty, OnSave

Tuesday, 6 August 13

Page 36: UberFire Quick Intro and Overview (early beta Aug 2013)

@WorkbenchEditor(identifier = "TextEditor", supportedTypes = { TextResourceType.class, DotResourceType.class })public class TextEditorPresenter {

@WorkbenchPartTitle public String getTitle() { return "Text Editor [" + path.getFileName() + "]"; }

@WorkbenchPartView public IsWidget getWidget() {

return view; //injected } (...)}

Workbench Editor

Tuesday, 6 August 13

Page 37: UberFire Quick Intro and Overview (early beta Aug 2013)

@WorkbenchEditor(identifier = "TextEditor", supportedTypes = { TextResourceType.class, DotResourceType.class })public class TextEditorPresenter { (...)

@OnStart public void onStart( final Path path ) { this.path = path; }

@OnSave public void onSave() { }

@IsDirty public boolean isDirty() { return view.isDirty(); }}

Life Cycle Annotations

Tuesday, 6 August 13

Page 38: UberFire Quick Intro and Overview (early beta Aug 2013)

Workbench Perspective

Tuesday, 6 August 13

Page 39: UberFire Quick Intro and Overview (early beta Aug 2013)

Window ManagersNESW, with DnD

Nesting, for flexible layouts.Supports programmatic and json

FutureGridTemplates

Tuesday, 6 August 13

Page 40: UberFire Quick Intro and Overview (early beta Aug 2013)

@WorkbenchPerspective( identifier = "HomePerspective", isDefault = true)public class HomePerspective {

@Perspective public PerspectiveDefinition buildPerspective() { final PerspectiveDefinition p = new PerspectiveDefinitionImpl(); p.setName( "Home Perspective" ); p.getRoot().addPart( new PartDefinitionImpl( new DefaultPlaceRequest( "RepoList" ) ) );

return p; }}

Workbench Perspective

Tuesday, 6 August 13

Page 41: UberFire Quick Intro and Overview (early beta Aug 2013)

Workbench Perspective$registerPerspective({ "id": "Markdown Editor", "view": { "parts": [ { "place": "MarkdownLiveViewer", "parameters": {} } ], "panels": [ { "width": 600, "min_width": 300, "position": "west", "parts": [ { "place": "MarkdownLiveEditor", "parameters": {} } ] } ] }, on_close: function () { }});

Tuesday, 6 August 13

Page 42: UberFire Quick Intro and Overview (early beta Aug 2013)

UberFire Annotations

OnStartUp, OnShutDownOnOpen, OnMayClose, OnCloseOnFocus, OnLostFocusIsDirty, OnSave

WorkbenchEditorWorkbenchPerspectiveWorkbenchPopupWorkbenchScreen

WorkbenchPartTitleWorkbenchPartViewWorkbenchMenuPerspective

Components Lifecycle ComponentRendering Info

Tuesday, 6 August 13

Page 43: UberFire Quick Intro and Overview (early beta Aug 2013)

Hyrbid Plugins

Tuesday, 6 August 13

Page 44: UberFire Quick Intro and Overview (early beta Aug 2013)

Tuesday, 6 August 13

Page 45: UberFire Quick Intro and Overview (early beta Aug 2013)

DEMO 3Show Case and Dynamic

Plugins

Tuesday, 6 August 13

Page 46: UberFire Quick Intro and Overview (early beta Aug 2013)

DEMO 4Web IDE

Tuesday, 6 August 13

Page 47: UberFire Quick Intro and Overview (early beta Aug 2013)

Tuesday, 6 August 13