Enviar búsqueda
Cargar
Posh Devcon2009
•
1 recomendación
•
768 vistas
D
db82407
Seguir
http://www.paremus.com/downloads/downloads.html
Leer menos
Leer más
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 22
Descargar ahora
Descargar para leer sin conexión
Recomendados
OSGi for mere mortals
OSGi for mere mortals
Bertrand Delacretaz
What's cool in the new and updated OSGi Specs (EclipseCon 2014)
What's cool in the new and updated OSGi Specs (EclipseCon 2014)
David Bosschaert
Maximize the power of OSGi
Maximize the power of OSGi
David Bosschaert
Provisioning with OSGi Subsystems and Repository using Apache Aries and Felix
Provisioning with OSGi Subsystems and Repository using Apache Aries and Felix
David Bosschaert
ARGUS - THE OMNISCIENT CI
ARGUS - THE OMNISCIENT CI
Cosmin Poieana
OSGi Cloud Ecosystems (EclipseCon 2013)
OSGi Cloud Ecosystems (EclipseCon 2013)
David Bosschaert
cq_cxf_integration
cq_cxf_integration
Ankur Chauhan
CoreOS: Control Your Fleet
CoreOS: Control Your Fleet
Matthew Jones
Recomendados
OSGi for mere mortals
OSGi for mere mortals
Bertrand Delacretaz
What's cool in the new and updated OSGi Specs (EclipseCon 2014)
What's cool in the new and updated OSGi Specs (EclipseCon 2014)
David Bosschaert
Maximize the power of OSGi
Maximize the power of OSGi
David Bosschaert
Provisioning with OSGi Subsystems and Repository using Apache Aries and Felix
Provisioning with OSGi Subsystems and Repository using Apache Aries and Felix
David Bosschaert
ARGUS - THE OMNISCIENT CI
ARGUS - THE OMNISCIENT CI
Cosmin Poieana
OSGi Cloud Ecosystems (EclipseCon 2013)
OSGi Cloud Ecosystems (EclipseCon 2013)
David Bosschaert
cq_cxf_integration
cq_cxf_integration
Ankur Chauhan
CoreOS: Control Your Fleet
CoreOS: Control Your Fleet
Matthew Jones
Speech for Windows Phone 8
Speech for Windows Phone 8
Marco Massarelli
Caché acelerador de contenido
Caché acelerador de contenido
Sandino Araico Sánchez
Comredis
Comredis
Iuri Fernandes
Ip Access Lists
Ip Access Lists
CCNAResources
Brno meetr: Packaging Ruby Gems into RPM
Brno meetr: Packaging Ruby Gems into RPM
Lubomir Rintel
Using puppet
Using puppet
Alex Su
ECMAScript 2015
ECMAScript 2015
Sebastian Pederiva
Language Enhancement in ColdFusion 8 - CFUnited 2007
Language Enhancement in ColdFusion 8 - CFUnited 2007
Rupesh Kumar
Pemrograman Jaringan
Pemrograman Jaringan
belajarkomputer
Ios i pv4_access_lists
Ios i pv4_access_lists
Mohamed Gamel
解读server.xml文件
解读server.xml文件
wensheng wei
Coroutines for Kotlin Multiplatform in Practise
Coroutines for Kotlin Multiplatform in Practise
Christian Melchior
Python at Facebook
Python at Facebook
Angelo Failla
Eclipse HandsOn Workshop
Eclipse HandsOn Workshop
Bastian Feder
Python concurrency: libraries overview
Python concurrency: libraries overview
Andrii Mishkovskyi
JAVA NIO
JAVA NIO
오석 한
CoreOS in a Nutshell
CoreOS in a Nutshell
CoreOS
When symfony met promises
When symfony met promises
Marc Morera
Raj apache
Raj apache
firstplanet
O triunfo dos nerds
O triunfo dos nerds
Luiz Borba
Apresentacao nerd
Apresentacao nerd
vanessamantuani
Dia do Orgulho Nerd
Dia do Orgulho Nerd
Meio & Mensagem
Más contenido relacionado
La actualidad más candente
Speech for Windows Phone 8
Speech for Windows Phone 8
Marco Massarelli
Caché acelerador de contenido
Caché acelerador de contenido
Sandino Araico Sánchez
Comredis
Comredis
Iuri Fernandes
Ip Access Lists
Ip Access Lists
CCNAResources
Brno meetr: Packaging Ruby Gems into RPM
Brno meetr: Packaging Ruby Gems into RPM
Lubomir Rintel
Using puppet
Using puppet
Alex Su
ECMAScript 2015
ECMAScript 2015
Sebastian Pederiva
Language Enhancement in ColdFusion 8 - CFUnited 2007
Language Enhancement in ColdFusion 8 - CFUnited 2007
Rupesh Kumar
Pemrograman Jaringan
Pemrograman Jaringan
belajarkomputer
Ios i pv4_access_lists
Ios i pv4_access_lists
Mohamed Gamel
解读server.xml文件
解读server.xml文件
wensheng wei
Coroutines for Kotlin Multiplatform in Practise
Coroutines for Kotlin Multiplatform in Practise
Christian Melchior
Python at Facebook
Python at Facebook
Angelo Failla
Eclipse HandsOn Workshop
Eclipse HandsOn Workshop
Bastian Feder
Python concurrency: libraries overview
Python concurrency: libraries overview
Andrii Mishkovskyi
JAVA NIO
JAVA NIO
오석 한
CoreOS in a Nutshell
CoreOS in a Nutshell
CoreOS
When symfony met promises
When symfony met promises
Marc Morera
Raj apache
Raj apache
firstplanet
La actualidad más candente
(19)
Speech for Windows Phone 8
Speech for Windows Phone 8
Caché acelerador de contenido
Caché acelerador de contenido
Comredis
Comredis
Ip Access Lists
Ip Access Lists
Brno meetr: Packaging Ruby Gems into RPM
Brno meetr: Packaging Ruby Gems into RPM
Using puppet
Using puppet
ECMAScript 2015
ECMAScript 2015
Language Enhancement in ColdFusion 8 - CFUnited 2007
Language Enhancement in ColdFusion 8 - CFUnited 2007
Pemrograman Jaringan
Pemrograman Jaringan
Ios i pv4_access_lists
Ios i pv4_access_lists
解读server.xml文件
解读server.xml文件
Coroutines for Kotlin Multiplatform in Practise
Coroutines for Kotlin Multiplatform in Practise
Python at Facebook
Python at Facebook
Eclipse HandsOn Workshop
Eclipse HandsOn Workshop
Python concurrency: libraries overview
Python concurrency: libraries overview
JAVA NIO
JAVA NIO
CoreOS in a Nutshell
CoreOS in a Nutshell
When symfony met promises
When symfony met promises
Raj apache
Raj apache
Destacado
O triunfo dos nerds
O triunfo dos nerds
Luiz Borba
Apresentacao nerd
Apresentacao nerd
vanessamantuani
Dia do Orgulho Nerd
Dia do Orgulho Nerd
Meio & Mensagem
Posh Pows With Logan
Posh Pows With Logan
satonner
Posh Consulting Inc. Overview
Posh Consulting Inc. Overview
ash321ash
Cultura nerd
Cultura nerd
Marcelo Freire
Prevention of Sexual Harassment at Workplace Act
Prevention of Sexual Harassment at Workplace Act
AID FOR CHANGE
Destacado
(7)
O triunfo dos nerds
O triunfo dos nerds
Apresentacao nerd
Apresentacao nerd
Dia do Orgulho Nerd
Dia do Orgulho Nerd
Posh Pows With Logan
Posh Pows With Logan
Posh Consulting Inc. Overview
Posh Consulting Inc. Overview
Cultura nerd
Cultura nerd
Prevention of Sexual Harassment at Workplace Act
Prevention of Sexual Harassment at Workplace Act
Similar a Posh Devcon2009
Shell scripting - By Vu Duy Tu from eXo Platform SEA
Shell scripting - By Vu Duy Tu from eXo Platform SEA
Thuy_Dang
Cloud meets Fog & Puppet A Story of Version Controlled Infrastructure
Cloud meets Fog & Puppet A Story of Version Controlled Infrastructure
Habeeb Rahman
Monitoring OSGi Applications with the Web Console
Monitoring OSGi Applications with the Web Console
Carsten Ziegeler
Monitoring OSGi Applications with the Web Console - Carsten Ziegeler
Monitoring OSGi Applications with the Web Console - Carsten Ziegeler
mfrancis
Monitoring OSGi Applications with the Web Console
Monitoring OSGi Applications with the Web Console
Adobe
20100730 phpstudy
20100730 phpstudy
Yusuke Ando
Service oriented web development with OSGi
Service oriented web development with OSGi
Carsten Ziegeler
Nodejs a-practical-introduction-oredev
Nodejs a-practical-introduction-oredev
Felix Geisendörfer
Road to sbt 1.0: Paved with server (2015 Amsterdam)
Road to sbt 1.0: Paved with server (2015 Amsterdam)
Eugene Yokota
Iron Languages - NYC CodeCamp 2/19/2011
Iron Languages - NYC CodeCamp 2/19/2011
Jimmy Schementi
node.js: Javascript's in your backend
node.js: Javascript's in your backend
David Padbury
Java - A broad introduction
Java - A broad introduction
Birol Efe
Intro to Rust 2019
Intro to Rust 2019
Timothy Bess
Exchange 2010 PowerShell and the Exchange 2003 Administrator
Exchange 2010 PowerShell and the Exchange 2003 Administrator
Michel de Rooij
Shell Scripting
Shell Scripting
Anil Kumar Pugalia
Pure Java RAD and Scaffolding Tools Race
Pure Java RAD and Scaffolding Tools Race
Baruch Sadogursky
Import golang; struct microservice
Import golang; struct microservice
Giulio De Donato
Introduction to PowerShell
Introduction to PowerShell
Boulos Dib
Python Programming Essentials - M25 - os and sys modules
Python Programming Essentials - M25 - os and sys modules
P3 InfoTech Solutions Pvt. Ltd.
Automated infrastructure is on the menu
Automated infrastructure is on the menu
jtimberman
Similar a Posh Devcon2009
(20)
Shell scripting - By Vu Duy Tu from eXo Platform SEA
Shell scripting - By Vu Duy Tu from eXo Platform SEA
Cloud meets Fog & Puppet A Story of Version Controlled Infrastructure
Cloud meets Fog & Puppet A Story of Version Controlled Infrastructure
Monitoring OSGi Applications with the Web Console
Monitoring OSGi Applications with the Web Console
Monitoring OSGi Applications with the Web Console - Carsten Ziegeler
Monitoring OSGi Applications with the Web Console - Carsten Ziegeler
Monitoring OSGi Applications with the Web Console
Monitoring OSGi Applications with the Web Console
20100730 phpstudy
20100730 phpstudy
Service oriented web development with OSGi
Service oriented web development with OSGi
Nodejs a-practical-introduction-oredev
Nodejs a-practical-introduction-oredev
Road to sbt 1.0: Paved with server (2015 Amsterdam)
Road to sbt 1.0: Paved with server (2015 Amsterdam)
Iron Languages - NYC CodeCamp 2/19/2011
Iron Languages - NYC CodeCamp 2/19/2011
node.js: Javascript's in your backend
node.js: Javascript's in your backend
Java - A broad introduction
Java - A broad introduction
Intro to Rust 2019
Intro to Rust 2019
Exchange 2010 PowerShell and the Exchange 2003 Administrator
Exchange 2010 PowerShell and the Exchange 2003 Administrator
Shell Scripting
Shell Scripting
Pure Java RAD and Scaffolding Tools Race
Pure Java RAD and Scaffolding Tools Race
Import golang; struct microservice
Import golang; struct microservice
Introduction to PowerShell
Introduction to PowerShell
Python Programming Essentials - M25 - os and sys modules
Python Programming Essentials - M25 - os and sys modules
Automated infrastructure is on the menu
Automated infrastructure is on the menu
Último
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
Stephanie Beckett
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
UiPathCommunity
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
Rizwan Syed
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
Fwdays
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
DianaGray10
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Mark Simos
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
Alex Barbosa Coqueiro
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
Dilum Bandara
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
Alan Dix
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
Fwdays
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
Kalema Edgar
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
Enterprise Knowledge
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Precisely
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
Pixlogix Infotech
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
Addepto
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
Mattias Andersson
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
Lonnie McRorey
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
Curtis Poe
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
Florian Wilhelm
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
Hervé Boutemy
Último
(20)
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
Posh Devcon2009
1.
Posh: an OSGi
Shell RFC132 in action! Derek Baum Paremus Limited Posh OSGi Shell Copyright © 2009 Paremus Limited. All rights reserved. June 2009
2.
The (Draft) Specification Posh
OSGi Shell Copyright © 2009 Paremus Limited. All rights reserved. June 2009
3.
RFC132: Problem Description No
standard way for user to interact with an OSGi-based system. • Different commands for common tasks – install, start, stop, status • Different API to add commands – Commands are not reusable • No script support Posh OSGi Shell Copyright © 2009 Paremus Limited. All rights reserved. June 2009
4.
Equinox & Felix
Shells $ java -jar org.eclipse.osgi_3.4.3.R34x_v20081215-1030.jar $ java -jar org.eclipse.osgi_3.4.3.R34x_v20081215-1030.jar -console osgi> ss Framework is launched. id State Bundle 0 ACTIVE org.eclipse.osgi_3.4.3.R34x_v20081215-1030 osgi> ^D$ $ java -jar bin/felix.jar -> ss Command not found. -> ps START LEVEL 1 ID State Level Name [ 0] [Active ] [ 0] System Bundle (1.8.0) [ 1] [Active ] [ 1] Apache Felix Shell Service (1.2.0) [ 2] [Active ] [ 1] Apache Felix Shell TUI (1.2.0) [ 3] [Active ] [ 1] Apache Felix Bundle Repository (1.4.0) -> ^DShellTUI: No standard input...exiting. ^C$ Posh OSGi Shell Copyright © 2009 Paremus Limited. All rights reserved. June 2009
5.
Hello, Equinox import org.eclipse.osgi.framework.console.CommandInterpreter; import
org.eclipse.osgi.framework.console.CommandProvider; public class Commands implements CommandProvider { public void _hello(CommandInterpreter ci) { ci.print("Hello, " + ci.nextArgument()); } public String getHelp() { return "thello - say hellon"; } } Posh OSGi Shell Copyright © 2009 Paremus Limited. All rights reserved. June 2009
6.
Hello, Felix import org.apache.felix.shell.Command; public
class HelloCommand implements Command { public void execute(String s, PrintStream out, PrintStream err) { String[] args = s.split(“s+”); if (args.length < 2) { err.println(“Usage: ” + getUsage()); } else { out.println(“Hello, “ + args[1]); } } public String getName() { return "hello";} public String getUsage() { return "hello name";} public String getShortDescription() { return "say hello";} } Posh OSGi Shell Copyright © 2009 Paremus Limited. All rights reserved. June 2009
7.
Hello, RFC132 public class
Commands { public boolean hello(String name) { System.out.println(“Hello, “ + name); return name != null; } } Posh OSGi Shell Copyright © 2009 Paremus Limited. All rights reserved. June 2009
8.
RFC132 Command Interface •
Simple & lightweight to add commands – Promotes adding commands in any bundle • Access to input and output streams • Shared session state between commands • Small (core runtime < 50Kb) Posh OSGi Shell Copyright © 2009 Paremus Limited. All rights reserved. June 2009
9.
Architecture
Console Telnet ... Session Session Session CommandProvider CommandSessionImpl ThreadIO CommandSession command providers Converter scope=xxx, function=yyy Basic Basic ... Conversions Commands Commands Posh OSGi Shell Copyright © 2009 Paremus Limited. All rights reserved. June 2009
10.
CommandProcessor package org.osgi.service.command; public interface
CommandProcessor { CommandSession createSession(InputStream in, PrintStream out, PrintStream err); } Posh OSGi Shell Copyright © 2009 Paremus Limited. All rights reserved. June 2009
11.
CommandSession package org.osgi.service.command; public interface
CommandSession { Object execute(CharSequence program) throws Exception; void close(); InputStream getKeyboard(); PrintStream getConsole(); Object get(String name); void put(String name, Object value); CharSequence format(Object target, int level); Object convert(Class<?> type, Object instance); } Posh OSGi Shell Copyright © 2009 Paremus Limited. All rights reserved. June 2009
12.
Command Provider • There
is no CommandProvider interface • Parameters are coerced using reflection • Any service can provide commands public void start(BundleContext ctx) { Commands cmd = new Commands(); String functions[] = {“hello”, “goodbye”}; Dictionary dict = new Dictionary(); dict.put(“osgi.command.scope”, “myscope”); dict.put(“osgi.command.function”, functions); ctx.registerService(cmd.getClass().getName,() cmd, dict); } Posh OSGi Shell Copyright © 2009 Paremus Limited. All rights reserved. June 2009
13.
Any Command Interface public
boolean grep(String[] args) throws IOException; public URI cd(CommandSession session, String dir); public URI pwd(CommandSession session); public void addCommand(String scope, Object target); public void addCommand(String scope, Object target, Class<?> fc); public void addCommand(String scope, Object target, String func); public Bundle getBundle(long id); public Bundle[] getBundles(); public ServiceRegistration registerService( String clazz, Object svcObj, Dictionary dict); Posh OSGi Shell Copyright © 2009 Paremus Limited. All rights reserved. June 2009
14.
Grep command public boolean
grep(CommandSession session, List<String> args) throws IOException { Pattern pattern = Pattern.compile(args.remove(0)); for (String arg : args) { InputStream in = Directory.resolve(session,arg).toURL().openStream(); Reader rdr = new BufferedReader(new InputStreamReader(in)); String s; while ((s = rdr.readLine()) != null) { if (pattern.matcher(s).find()) { match = true; System.out.println(s); } } } return match; } Posh OSGi Shell Copyright © 2009 Paremus Limited. All rights reserved. June 2009
15.
Interactive Shell Language •
Interactive shell requirements differ from those for scripting languages – Easy for users to type – Minimum parenthesis, semi-colons etc – Compatibility with Unix shells like bash • Existing JVM languages not good for shell – Jacl: needs own TCL-derived library – BeanShell: syntax too verbose Posh OSGi Shell Copyright © 2009 Paremus Limited. All rights reserved. June 2009
16.
Tiny Shell Language
- TSL • Easy to use – no unnecessary syntax • Provides lists, pipes and closures • Leverages Java capabilities – Method calls using reflection – Argument coercion • Commands can provide control primitives • Small size (<50Kb) Posh OSGi Shell Copyright © 2009 Paremus Limited. All rights reserved. June 2009
17.
Closures implement Function package
org.osgi.service.command; public interface Function { Object execute(CommandSession session, List<Object> arguments) throws Exception; } Posh OSGi Shell Copyright © 2009 Paremus Limited. All rights reserved. June 2009
18.
Add Control Primitives public
void each(CommandSession session, Collection<Object> list, Function closure) throws Exception { List<Object> args = new ArrayList<Object>(); args.add(null); for (Object x : list) { args.set(0, x); closure.execute(session, args); } } % each [a, b, 1, 2] { echo $it } a b 1 2 Posh OSGi Shell Copyright © 2009 Paremus Limited. All rights reserved. June 2009
19.
RFC132: What's missing? •
Commands in osgi: scope are not defined • Search order for unscoped commands • List available commands and variables • Script execution • Command editing, history and completion Posh OSGi Shell Copyright © 2009 Paremus Limited. All rights reserved. June 2009
20.
Posh: in action! Posh
OSGi Shell Copyright © 2009 Paremus Limited. All rights reserved. June 2009
21.
Posh in action! Builds
on basic RFC132 runtime • Adds SCOPE path • Shell builtins: set, type • Script execution • Command editing, history & completion • Control-C interrupt handling • And more… Posh OSGi Shell Copyright © 2009 Paremus Limited. All rights reserved. June 2009
22.
Links RFC132 Draft Specification www.osgi.org/download/osgi-4.2-early-draft.pdf Posh
“devcon” binary download www.paremus.com/devcon2009download/ derek.baum@paremus.com Posh OSGi Shell Copyright © 2009 Paremus Limited. All rights reserved. June 2009
Descargar ahora