#SummitNow Enhanced Script API Nov 2013 Axel Faust, PRODYNA AG.

Slides:



Advertisements
Similar presentations
Tridion 5.3 Templates.
Advertisements

Pitfalls of Complex Content Workflow Development.
Informer Extensions PRESENTER: Brad Leupen | CTO, Entrinsik |
JTX Overview Overview of Job Tracking for ArcGIS (JTX)
Technical BI Project Lifecycle
Memory issues in production systems. Production system Restricted access Application, DB, Application server, log files Debugging, monitoring Investigation.
1 Eclipse SOA Roadmap Proposal V Change History VersionDateChanged N/a Merge of first two milestones Update.
HyperContent 2.0 JA-SIG Winter Conference December 5, 2005 Alex Vigdor, Columbia University.
V0.01 © 2009 Research In Motion Limited Introduction to Java Application Development for the BlackBerry Smartphone Trainer name Date.
Microsoft ASP.NET AJAX - AJAX as it has to be Presented by : Rana Vijayasimha Nalla CSCE Grad Student.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment, Enhanced Chapter 10: Server Administration.
Understanding and Managing WebSphere V5
Sage CRM Developers Course
Industrial Control Engineering UNICOS framework 2014 Marco Boccioli - EN/ICE-SCD - 18/12/2014  UNICOS  UNICOS  Plan for Q
JDF Toolkits for JDF and JMF
Create with SharePoint 2010 Jen Dodd Sr. Solutions Consultant
Windows.Net Programming Series Preview. Course Schedule CourseDate Microsoft.Net Fundamentals 01/13/2014 Microsoft Windows/Web Fundamentals 01/20/2014.
Introduction to the JBoss Presented by: Hao Shi. Agenda Application Servers What is JBoss JBoss features Architecture of JBoss Installation and running.
Apache Chemistry face-to-face meeting April 2010.
Clarity Educational Community Get the Results You Need When You Need Them Transitioning to CA PPM On Demand Presented by: Joshua.
MAVEN-BLUEMARTINI Yannick Robin. What is maven-bluemartini?  maven-bluemartini is Maven archetypes for Blue Martini projects  Open source project on.
ASP.NET + Ajax Jesper Tørresø ITNET2 F08. Ajax Ajax (Asynchronous JavaScript and XML) A group of interrelated web development techniques used for creating.
Lesley Bross, August 29, 2010 ArcGIS 10 add-in glossary.
JBoss Administration Server Introduction
Introducing Axis2 Eran Chinthaka. Agenda  Introduction and Motivation  The “big picture”  Key Features of Axis2 High Performance XML Processing Model.
ActiveVOS - Server Architecture March Topics ActiveVOS - Server Architecture – Core Engine, Managers, Expression Languages – BPEL4People People.
What’s new in Stack 3.2 Michael Youngstrom. Disclaimer This IS a presentation – So sit back and relax Please ask questions.
Rice Status Update University of California July 20, 2009 Eric Westfall – Kuali Rice Project Manager.
Microsoft ® Official Course Module XA Using Windows PowerShell ®
Extending ArcGIS for Server
Cli/Serv.: rmiCORBA/131 Client/Server Distributed Systems v Objectives –introduce rmi and CORBA , Semester 1, RMI and CORBA.
Making Connections: SHARE and the Open Science Framework Jeffrey Open Repositories 2015.
HyperContent 2.0 Common Solutions Group September 21, 2005 Alex Vigdor, Columbia University.
Jan Hatje, DESY CSS ITER March 2009: Technology and Interfaces XFEL The European X-Ray Laser Project X-Ray Free-Electron Laser 1 CSS – Control.
JDF Toolkits for JDF and JMF Niels Böger. JDF Library and API Read, write, work with JDF and JMF files Additional high-level routines –spawn / merge MIME.
© 2006 by «Author»; made available under the EPL v1.0 | Date | Other Information, if necessary Jason Weathersby BIRT Evangelist, Actuate Corp. Leveraging.
Shannon Hastings Multiscale Computing Laboratory Department of Biomedical Informatics.
© 2006 IBM Corporation Agile Planning Web UI. © 2006 IBM Corporation Agenda  Overview of APT Web UI  Current Issues  Required Infrastructure  API.
Introduce Grid Service Authoring Toolkit Shannon Hastings, Scott Oster, Stephen Langella, David Ervin Ohio State University Software Research Institute.
© 2002 IBM Corporation Confidential | Date | Other Information, if necessary June, 2011 Made available under the Eclipse Public License v Mobile.
What's New in Kinetic Calendar 2.0 Jack Boespflug Kinetic Data.
Running Kuali: A Technical Perspective Ailish Byrne (Indiana University) Jonathan Keller (University of California, Davis)
Nested componentization for advanced Web portal solutions Svebor Prstačić, dipl. ing., Dr. sc. Ivan Voras, Dr. sc. Mario Žagar.
Leveraging Kinetic Task Management Unus Gaffoor & Michael Poole Kinetic Data.
BODY From Source Code Management to Daily Build Soren Klemmensen, Kamil Sacek & Luc van Vugt
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
Jan Hatje, DESY CSS – Control System Studio EPICS collaboration meeting CSS – Control System Studio Update EPICS collaboration meeting 2008 Shanghai.
8 Copyright © 2004, Oracle. All rights reserved. Making the Model Secure.
San Jose, California September 2002 What is ICU? Roadmap and Myths Helena Shih Chapman ICU Development Manager IBM Globalization Center of Competency.
Java Programming: Advanced Topics 1 Building Web Applications Chapter 13.
Activiti Dima Ionut Daniel. Contents What is Activiti? Activiti Basics Activiti Explorer Activiti Modeler Activiti Designer BPMN 2.0 Activiti Process.
Security-Enhanced Linux Stephanie Stelling Center for Information Security Department of Computer Science University of Tulsa, Tulsa, OK
Top 10 missing features (and ways to add them) Axel Faust / Oksana Kurysheva.
Using the Javascript Console for development and administration Florian Maul (fme AG)
Audit API : Hints and Tricks Mehdi BELMEKKI, Consultancy Team Alfresco.
Customizing Share Document Previews Will Abson Senior Integrations Engineer and Share Extras Project Lead
Michael Mast Senior Architect Applications Technology Oracle Corporation.
Repository Administration with JavaScript Bindu Wavell Chief Architect Zia
DECTRIS Ltd Baden-Daettwil Switzerland Continuous Integration and Automatic Testing for the FLUKA release using Jenkins (and Docker)
Linux Kernel Security (SELinux vs AppArmor vs Grsecurity)
Javascript Console, what's new!?
The Share Widget Library
Axel Faust Senior IT-Consultant / Software Architect PRODYNA AG
ADVANCED BATCH.
DBAnalytics: BEGINNER Concepts & Best Practices.
Michael Mast Senior Architect
Advanced Integration and Deployment Techniques
EPIC INFOTECH CONSULTING GROUP
Implementing FOP Framework
Presentation transcript:

#SummitNow Enhanced Script API Nov 2013 Axel Faust, PRODYNA AG

#SummitNow About… Enhanced Script Environment /AFaust/alfresco-enhanced-script-environment Addons for Repository + Share Community + Enterprise 4.x Eclipse Public License

#SummitNow Motivation JavaScript at core of many projects Script developers are „ubiquitous“ Support of rapid extension Pain points / project triggers limitations: IDE, QA tools, extensibility

#SummitNow #1 - Handling doclib filters filter.get alfresco.js documentlist.js doclist.get filters.lib.js

#SummitNow #1 - Customizing doclib filters filter.get doclist.getfilters.lib.js /my/filter.get Customization

#SummitNow #1 - Customizing doclib filters doclist.getfilters.lib.js doclist.get*filters.lib.js* /alfresco/extension

#SummitNow #2 – Workflow scripts DBMS my-workflow v1.0my-workflow v1.1 … Subject I18n in Alfresco 4.2 Customization?

#SummitNow #3 – (Ad-hoc) Mass update Archive / Read-only Update permissions Stop workflows Remove ownership … Duration / robustness? a) 10² items b) 10³ items c) 10 x items

#SummitNow Dynamic Imports

#SummitNow Script inclusions X = concat(B, C, A) Merge Enhanced Script Environment Script A B C B C doSth1(); importScript(B); B C importScript(C); doSth2();

#SummitNow Extensible script import API

#SummitNow Predefined script locator types Repository & Share: classpath, registry Repository: xpath, nodeRef, legacy Share / Surf: storePath

#SummitNow Advanced usages Registry lookup independent of physical location Selective script import based on Alfresco Version

#SummitNow Advanced usages Isolated execution context Pre-defined properties as result contract Alternative to value passing: callback function

#SummitNow Doclib filters - revisited filter.lib.js (sub-project: /patch-modules/repository)

#SummitNow Doclib filters - revisited myFilter.js Bootstrap: /alfresco/extension/registeredScripts/documentlibrary-v2-filters/

#SummitNow Batch Processing

#SummitNow Existing Java Framework (Repo) TF BPWP TC BP BPW 1) 2) 3) 4) 5), 6), 7) BP – Batch Processor BPWP – … Work Provider BPW – … Worker TF – Thread Factory TC – Txn Callback Setup 1)Get (next) work 2)Create batches 3)Scheduling Execution 4)Parallel execution 5)Before batch 6)Process item of batch 7)After batch FrameworkCustom

#SummitNow New JavaScript API No txnBatch txnScript txn Simple callback: { fn: function(){}, scope: object } Scoped callback: function (){}

#SummitNow Example usage

#SummitNow Scope & Synchronization Rhino, JS or JS API not thread-safe by default Guards in batch processing API Local scope per batch Read-write synchronization on access / invocation Invocation synchronization based on function name

#SummitNow Details & Misc

#SummitNow Methods of API extension Processor Processor Extension EnhancedScript Processor Scope Contributor Script Processor High-level API extensions (mostly Rhino-agnostic) Low-level API extensions with full Rhino integration Enhanced ScriptProcessor Partial re- implementation

#SummitNow Other features Logging Custom loggers per script Logger inheritance on import Parameterized logging Debugging Support for Eclipse JSDT Temporary deactivation of compilation cache Version information JavaScript constants Repository server descriptor

#SummitNow Enhancements / future features? Value type handling (i.e. String vs. string) Clean / proper surfacing of sensitive APIs Policy filter Authentication / tenant utilities Proof-of-concept Script processor using Nashorn (JDK 8)

#SummitNow Try it out yourself /AFaust/alfresco-enhanced-script-environment (framework + patch project for doclib filters) Compatible with JavaScript Console rc1

#SummitNow