Enviar pesquisa
Carregar
Posh Devcon2009
•
1 gostou
•
768 visualizações
D
db82407
Seguir
http://www.paremus.com/downloads/downloads.html
Leia menos
Leia mais
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 22
Baixar agora
Baixar para ler offline
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
Mais conteúdo relacionado
Mais procurados
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
Mais procurados
(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
Destaque
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
Destaque
(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
Semelhante 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
Semelhante 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
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
Rizwan Syed
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
BookNet Canada
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
Mattias Andersson
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
2toLead Limited
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
BookNet Canada
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
Sergiu Bodiu
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
Curtis Poe
How to write a Business Continuity Plan
How to write a Business Continuity Plan
Databarracks
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
Pixlogix Infotech
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
LoriGlavin3
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
BookNet Canada
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
Dubai Multi Commodity Centre
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
Lorenzo Miniero
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
LoriGlavin3
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
Lars Bell
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
ScyllaDB
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
Kalema Edgar
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
LoriGlavin3
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
Fwdays
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
Fwdays
Último
(20)
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
How to write a Business Continuity Plan
How to write a Business Continuity Plan
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
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
Baixar agora