This document provides an overview of Tycho, a build tool for Eclipse plugins and OSGi bundles. It discusses what Tycho is, how it relates to Maven and PDE, who is using it, and includes an agenda for hands-on exercises to build plugins, tests, features, repositories and products using Tycho. The hands-on portion walks through 5 exercises with detailed instructions to create a simple Hello World plugin, add tests, features, repositories and a product configuration.
1. Do not manually move or remove files in the plugins directory as it can cause failures if other plugins depend on those files. Let p2 manage installations and removals of plugins.
2. Do not provide plugins as zip files for users to unzip over Eclipse. Instead provide a repository that users can point Eclipse to for proper installation.
3. Never publish different content with the same version number as it can cause confusion. Always use version qualifiers like dates for development versions to clearly identify changes.
Using The EGit Eclipse Plugin With Git Hubguest4bce3214
The document is a tutorial on using the EGit Eclipse plugin to connect Eclipse projects to GitHub repositories. It describes how to install EGit, import existing projects from GitHub, upload Eclipse projects to GitHub, and perform Git operations like committing and pushing changes from within Eclipse.
The document provides instructions for using decorations with controls in SWT/JFace applications. It discusses how the ControlDecoration class allows placing image decorations on controls to provide additional information. Creating a decoration involves adding a ControlDecoration to a Text field in the design view and then adding code in the source view to initialize the decoration. The decoration can display an image and tooltip text when the user hovers over it. Developers must leave space in the UI layout for decorations to be visible.
IBM Connect 2014 BP204: It's Not Infernal: Dante's Nine Circles of XPages HeavenPaul Withers
The document summarizes Dante's nine circles of hell from his Divine Comedy and relates them to different aspects of developing XPages applications. It discusses how the first circle of Limbo relates to hybrid XPage/Domino applications, how the second circle of Lust relates to focusing on user interface and experience, and how the third circle of Gluttony relates to managing server resources and page loading. It provides examples and demonstrations for each circle. The document concludes by listing additional sessions at the conference related to XPages development, Java, and IBM collaboration tools.
Draft presentation for CodeMash 2015 on how to Unit Test Android code, without going bald. The topics will cover using Robolectric and Mockito with Junit 4 to provide the backbone frameworks to allow unit testing of Android apps without the need for a device or emulator. Includes links to source code and examples, as well as real world results.
Here are 3 sentences summarizing the key points from the document:
The document provides 7 tips for developing OSGi applications with Eclipse and Tycho including adopting a modular structure with bundles and features, generating version qualifiers with Git, using target platforms for dependency management, leveraging Maven repositories for modular builds and aggregation, avoiding overuse of the Maven parent POM, and setting up build chains that include unit testing. It encourages learning about Maven concepts and adopting best practices for project structure when building OSGi applications.
Jenkins is a unique piece of software, lots of people and enterprises use it to deploy and build their software and also their infrastructure. It has tons of plugins, and can do virtually anything. It is important for both devs and ops. This talk will be about how you can automate and test your Jenkins instances. In the past, the tooling around it was not so great, but it has changed. Tools like Jenkins Pipeline and Job DSL plugin has entered the game and are here to stay.
Trusted Execution Environments (TEEs) are gaining traction in academia and industry as a fulcrum to build trustworthy systems.
Built as dedicated hardware components in mobile or server-grade processors, and available in infrastructure-as-a-service cloud providers,
TEEs allow applications with high privacy and confidentiality demands to be deployed and executed over untrusted environments,
shielding data and code from compromised systems or powerful attackers.
After a quick introduction to basic concepts for TEEs, I will survey some of our most recent contributions exploiting TEEs,
including as defensive tools in the context of Federated Learning, as support to build secure cache systems for edge networks,
shielding novel runtime environments (ie, WebAssembly) within Intel SGX enclaves, and more.
For each of the systems built, I will highlight some of the lessons learned, hopefully useful to future
researchers and practitioners entering this exciting area of research.
This document describes a simulation game to demonstrate contributing to open source software. The game uses kirigami, the Japanese art of paper cutting and folding, to simulate open source development roles and processes. Players will be divided into teams representing different open source groups like upstream developers, a company, and free software contributors. They will collaborate to plan and build different parts of a campus landscape with the goal of demonstrating open source best practices like communication, diplomacy, planning and review.
Testing fácil con Docker: Gestiona dependencias y unifica entornosMicael Gallego
Docker es una tecnología que permite empaquetar el software de forma que se pueda ejecutar de forma sencilla y rápida, sin instalación y en cualquier sistema operativo. Es como tener cualquier programa instalado en su propia máquina virtual, pero arranca mucho más rápido y consume menos recursos. Docker está cambiando la forma en la que desplegamos software, pero también está afectando al propio proceso de desarrollo y particularmente al testing.
En este taller pondremos en práctica cómo usar Docker para facilitar la implementación de diferentes tipos de tests y su ejecución tanto en el portátil como en el entorno de integración continua. Aunque las técnicas que veremos se podrán aplicar en cualquier lenguaje de programación, los ejemplos estarán basados en Java y en JavaScript.
Using NuGet the way you should - TechDays NL 2014Maarten Balliauw
Consuming NuGet packages, that’s what everyone does. Open source projects create NuGet packages and post them on NuGet.org. Meanwhile, all of us are still working with shared projects and fighting relative paths, versioning and so on. In this talk, we’ll use Visual Studio, NuGet and TeamCity to work with NuGet the way you should. Project references must die! Add Package Reference and good continuous integration is everything you will ever need.
This presentation describes different strategies for installing Python software packages. This includes standard techniques like easy_install and pip, as well as newer techniques like virtualenv that are well-suited for users who do not have administrative privileges.
This document provides tutorials and sample code for using the OpenTok JavaScript API for basic and advanced functionality. It includes tutorials for connecting to a session, publishing and viewing streams, controlling audio/video, moderating sessions, and more. Code samples are provided to demonstrate concepts like connecting to a session, subscribing and publishing streams, and handling events. The document is intended to help developers learn the OpenTok JavaScript API.
The document provides an overview of the OOEclipse project which allows developing OpenOffice extensions using the Eclipse IDE. It discusses the Eclipse plugin architecture that OOEclipse uses to integrate OpenOffice support. It describes how the project adds support for the C++ language, the current state of the C++ support, and planned next steps to improve the user experience and code generation. It also provides a demonstration of the OOEclipse IDE and discusses other features and the project's development.
Dr. Strangelove, or how I learned to love plugin developmentUlrich Krause
Building a plugin for the Notes client is hard and you need to be a rocket scientist to write a simple menu extension. This is exactly, what I thought, when I first heard of plugin development. In this session, you will learn, how to setup an Eclipse environment, connect it to your Notes Client for debugging and testing, and finally deploy your plugin to your users. Become familiar with the basics, and you will no longer be scared.
Maven Presentation - SureFire vs FailSafeHolasz Kati
Maven is a build automation tool used primarily for Java projects. It can be used for building and managing any Java-based project. Maven uses a project object model (POM) to manage a project's build, reporting and documentation from a central piece of information. The POM contains details like dependencies, plugins, repositories used, and other configuration details. Maven projects follow a standard directory structure and use the POM file to define build properties and dependencies. Maven manages dependencies by downloading required JARs from repositories. It supports profiles to customize builds for different environments. Common plugins include those for testing, packaging, site generation and other goals.
Nantes Jug 2016 Eclipse Che: The Next-Gen Eclipse IDEFlorent BENOIT
1. The document summarizes a presentation on Eclipse Che, an open source project that aims to make developer workspaces universal.
2. A live demo was given that showed features of Eclipse Che like its browser-based IDE, ability to debug and save projects to the cloud, and how workspaces can contain their own runtimes.
3. It was discussed how Eclipse Che workspaces can be portable, collaborative, and help achieve continuous integration goals like allowing identical runtimes between development and production.
Making Applications Work Together In EclipseKaniska Mandal
Eclipse uses a plugin architecture with a chain of classloaders to load plugins lazily. Third-party jars can be bundled within plugins and exposed to other plugins. The Eclipse-BuddyPolicy allows a plugin to access classes from jars in "buddy" plugins. Users can add third-party jars by modifying the eclipse.ini file and placing jars in a plugin's lib folder specified in its manifest. A custom classloader can load classes from third-party jars not bundled within a plugin.
Testing cloud and kubernetes applications - ElasTestMicael Gallego
Kubernetes applications are complex distributed systems composed by several microservices. When some end to end test is failing in these kind of applications, root cause is difficult without good observability tools. In this presentation, several tools are presented to make easier root cause analysis of cloud and kubernetes applications. One of the most interesting ones is ElasTest, a platform that integrates several open source tools to provide observability to e2e testing of complex distributed systems.
Black and White Dog Photography by Jesse Freidinjfreidin
Jesse Freidin is an award-winning fine art dog photographer based in Los Angeles and San Francisco. His black and white dog portraiture celebrates the incredible bond between dogs and humans.
Building Eclipse Plugins and RCP Applications with Tycho - ECE 2012jsievers
The document outlines a tutorial on building Eclipse plug-ins and RCP applications with Tycho. The tutorial includes an introduction to Tycho that discusses how it provides a Maven-based build system for Eclipse projects. It also covers hands-on exercises where attendees will build an example e4 RCP application from scratch using Tycho.
This document provides information about a English class, including the types of questions used, objectives, competencies, activities and schedule. It discusses verbs like "have" and "have got" and their uses in affirmative, negative and interrogative sentences. Sample exercises are provided to practice vocabulary, grammar structures and the four skills of listening, reading, writing and speaking.
Building Eclipse Plugins and RCP applications with Tychojsievers
Tycho is a build tool that uses Maven to build Eclipse plugins, features, repositories, and RCP applications. It reuses PDE metadata and concepts and integrates with Maven and p2. The document provides an overview of Tycho and then gives a hands-on tutorial demonstrating how to build an RCP application with Tycho including creating a plugin, adding tests, creating a feature, repository, product, and using a target file.
Lars Vogel gives a presentation on the state of Eclipse. He discusses his background with Linux and Eclipse. The presentation covers the Eclipse ecosystem, including the Eclipse Foundation and projects. Vogel describes how Eclipse is highly modular and extensible via plugins. He discusses Eclipse 4.0 and the move to a more flexible and model-driven architecture. In conclusion, Vogel recommends resources for learning more about Eclipse plugin and RCP development.
The document provides an overview of plugin development for Lotus Notes, Domino and Sametime applications using the Lotus Expeditor Toolkit. It discusses what plugins can do, how to install the Expeditor Toolkit plugin in Eclipse, the basic anatomy of a plugin, key extension points, and how to build user interfaces with SWT and jobs. The presentation also demonstrates how to create a sample plugin that reads data from a web service and displays it in a sidebar panel.
This document provides an introduction and agenda for a seminar on plugin development for Lotus Notes, Domino and Sametime. It discusses what plugins are, why develop them, and provides an overview of the key Eclipse extension points and APIs that can be used to build plugins that extend the functionality of Lotus applications. The agenda includes topics like the Eclipse and Lotus Expeditor Toolkit, plugin basics, building UIs with SWT and JFace, threading with Jobs, logging, debugging and deployment.
This document provides an overview of plugin development for Lotus Notes, Domino and Sametime. It discusses the speaker's background in plugin development and the various capabilities and advantages of developing plugins. The agenda outlines topics like the Eclipse architecture, installing the Lotus Expeditor Toolkit, plugin basics, UI development using SWT and JFace, using jobs for threading, logging APIs, debugging, and deployment. Code examples are provided for many of these concepts.
After a brief recap of what p2 is and depicting the overall vision, the presenter will show how this vision is realized and how the improvements made to both the runtime (core and UI) and the tooling in Galileo pave the way for a better provisioning solution at Eclipse.
Code in the cloud with Eclipse Che and Docker - EclipseCon France 2016Florent BENOIT
1. The document summarizes a presentation about Eclipse Che, an open source project that aims to create universal developer workspaces.
2. It discusses how Eclipse Che allows developers to code in the cloud using Docker containers to provide runtimes and development tools through a web browser IDE.
3. A live demo showed how to create a workspace and project in Eclipse Che, use development tools like an editor, terminal, and debugger, and save workspaces to the cloud.
Flask is a micro web framework written in Python that allows developers to create web applications and APIs quickly. It is lightweight and extensible, allowing developers to add additional functionality through extensions. Flask applications are easy to get started with - they can be created with just a few lines of code. Common features like unit testing, database support, and template rendering are supported out of the box or through extensions.
Maven is a build tool that can manage a project's build process, dependencies, documentation and reporting. It uses a Project Object Model (POM) file to store build configuration and metadata. Maven has advantages over Ant like built-in functionality for common tasks, cross-project reuse, and support for conditional logic. It works by defining the project with a POM file then running goals bound to default phases like compile, test, package to build the project.
eXoer on the grill: eXo Add-ons factory using Docker and CodenvyeXo Platform
Few months ago, Codenvy released a great tutorial about “Creating an eXo Factory Using Codenvy and Docker” http://blog.codenvy.com/creating-codenvy-factory-exo-extensions-development which gave great details about how eXo, Codenvy and Docker can work together to give developers an easy way to code eXo add-ons.
In this presentation we will bring insights about how we used Codenvy’s Factories (with Docker recipes) to give developers a one-click easy way to begin coding eXo Add-ons.
eXoers on the Grill aims to provide some incentive & fresh air for our staff in order to constantly re-think our methods, spread good practices, promote some technology or tools, generate ideas, etc... All the teams are invited to contribute by picking up some hot topics of their choice and spread to other teams.
This document discusses how to build a website using open source PHP and contribute to the codebase. It recommends starting with a basic starter application on GitHub, then outlines steps for setting up hosting, configuring the domain, and beginning development. The document provides tips for coding, debugging, testing, and deploying the site, and proposes future features like integrating with Meetup API and adding user authentication.
How to Build & Develop Responsive Open Learning Environments with the ROLE SDKDominik Renzel
A ROLE Developer Workshop held at Dev8eD 2012 in Birmingham, UK. To all participants: thank you for coming! Resources used in the workshop: http://dbis.rwth-aachen.de/gadgets/dev8ed/
Eclipse Che: The Next-Gen Eclipse IDE - Bordeaux jug 2016Florent BENOIT
1. The document summarizes a presentation on Eclipse Che, an open source IDE workspace that allows developers to code in the browser.
2. A live demo showed how to create a workspace and project, use the editor and debugger, and save work to the cloud.
3. Later parts of the presentation discussed extending Eclipse Che by developing custom stacks, projects, and assemblies as well as integrations with tools like OpenShift, Visual Studio Team Services, JIRA, and Jenkins.
Code in the cloud with eclipse che and docker / snowcamp.io 2017Florent BENOIT
1. The document discusses Eclipse Che, an open source project that aims to make developer workspaces universal by allowing workspaces to contain their own runtimes.
2. A live demo is presented showing how Eclipse Che allows coding in the cloud with Docker containers and provides features like terminals, editors, debugging, and language intelligence.
3. Workspaces in Eclipse Che are portable, reproducible, collaborative, programmable, versionable, and extensible as they define their own runtimes and commands using Dockerfiles and can be easily shared and reused.
Triple E class DevOps with Hudson, Maven, Kokki/Multiconf and PyDevWerner Keil
At Maersk Line, not only the world's biggest container ships, the 'Triple-E' class vessels were built. Continuous Integration and Delivery on a similar scale using Hudson, Maven and tools like Kokki (similar to Puppet or Chef, but written in Python) are also practiced there.
This session is going to give a brief overview of Multi-Configuration (Matrix) job types used in most projects at Maersk around the globe.
Things are being built and deployed in a heterogenous environment, otherwise probably found only at very large vendors of Public Cloud services like Google or Amazon. Provisioning of various OS is automated through Vagrant.
Management and Planning of all tasks and 'Sprints' is following Agile principles, especially DevOps style Kanban. Where possible planned and controlled by Eclipse-based tools such as Mylyn Connectors accessing planning tools like TeamConcert, Xplanner or Mantis. While feature projects use Eclipse for Java or Scala/Play!, the DevOps teams use PyDev for Jython/WSTL or Python development.
Extending DevOps to Big Data Applications with KubernetesNicola Ferraro
DevOps, continuous delivery and modern architectural trends can incredibly speed up the software development process. Big Data applications cannot be an exception and need to keep the same pace.
- Docker is a platform for building, shipping and running applications. It allows applications to be quickly assembled from components and eliminates discrepancies between development and production environments.
- Docker provides lightweight containers that allow applications to run in isolated environments called containers without running a full virtual machine. Containers are more portable and use resources more efficiently than virtual machines.
- Docker Swarm allows grouping Docker hosts together into a cluster where containers can be deployed across multiple hosts. It provides features like service discovery, load balancing, failure recovery and rolling updates without a single point of failure.
Similar to Building Eclipse Plugins with Tycho (20)
A Shift from Monolith to Microservice using Docker
Building Eclipse Plugins with Tycho
1. Building Eclipse plugins and RCP applications with Tycho, Nexus & HudsonIgor Fedorenko, SonatypePascal Rapicault, SonatypeJan Sievers, SAP
2. Contents of this sessionPart I: Introduction to Maven TychoWhat is Tycho?What can it do?How does it relate to Maven, p2, PDE?Who is using it?Real-life Build DemoQ&APart II: Hands-on exercises. Learn how to buildPlugins/OSGi bundlesTestsFeaturesp2 repositoriesRCP applications/products
3. What is Tycho?A way to build, test, release and publishEclipse/OSGi artifacts with mavenIt can buildEclipse Plugins/OSGi bundlesExecute tests within the OSGi runtimeFeaturesp2 repositoriesRCP applications a.k.a. Products
4. Who is working on tycho?Tycho started a couple of years ago from the need to have the ability to build eclipse plugins using MavenThe initial work has been started by Tom HuybrechtsSonatype joined the forces shortly after thatNowadays, the main contributors are SAP, Sonatype and Intalio
5. Who is using it?Tycho is used in production by IntalioSAPSonatypeOpen source projects of different size and complexityEGitEclipse Memory AnalyzerRT JettyEquinox p2TigerstripeJBoss Tools
6. How does it relate to maven?Tycho is a set of maven 3 plugins which hooks into the build lifecycle at a low levelAs such, it opens up eclipse/OSGi builds to the rich Maven ecosystem of plugins for code generators, quality analysis tools, code coverage, etc. How is it different from other maven plugins?It introduces support for resolving dependencies against p2 repositoriesIt resolves dependencies based on MANIFEST.MF/feature.xml etc. and tries to reuse other PDE metadata like build.properties („MANIFEST-first“ as opposed to „POM-first“)
7. How does it relate to p2?Tycho produces p2 repositories as part of a buildTycho downloads the dependencies of the entities being built from p2 repositories. By default, Tycho does not resolve its dependencies from Maven repositories because the Maven dependency and repository models can not accommodate the expression of OSGi dependencies like Import-PackageTycho embeds parts of p2 in order to perform the dependency resolution and a few other key operations like publishing
8. How does it relate to PDE?Tycho reuses some of the files that are being used by PDE Build such as MANIFEST.MF, build.properties, feature.xml, site.xml, .product where it makes senseThis allows to reuse PDE UI infrastructure like classpath management, launching capabilities, editors for OSGi manifest, features, product files, target platforms etc.Tycho being a headless build mechanism, it "competes" with PDE build only in the sense that it provides an alternative way to do a headless build of plugins and other eclipse artifacts
9. Where is Tycho?Tycho is an open source project run by SonatypeIt has recently been given to the Eclipse Foundation and is currently incubatingWe are in the process of contributing the code to Eclipse Foundation but it‘s not done yet. Getting Tycho and its dependencies through Eclipse legal process is a lot of workProject homepage http://eclipse.org/tychoCurrently the codebase is still on githubUsers and development mailing lists:tycho-users@lists.sonatype.comBugs filed at https://issues.sonatype.org/browse/TYCHO
14. Setting up the environmentUnzip theinternet.zipWindowsTo C:clipsecon2011Linux and Mac OSXTo /var/tmp/eclipsecon2011Setup your Maven local repositoryWindows(from home folder) ren .m2 .m2-backupcd .m2copy c:clipsecon2011ettings.xmlLinux and Mac OSXmv ~/.m2 ~/.m2-backup; mkdir ~/.m2cp /var/tmp/eclipsecon2011/settings.xml ~/.m2
15. Setting up the environment (cont’ed)Make sure JAVA_HOME is set; JAVA_HOME/bin is on PATHStart NexusWindowsC:clipsecon2011exusinswindows-x86-32exus.batLinux x86/var/tmp/eclipsecon2011/nexus/bin/jsw/linux-x86-32/nexus startLinux x86_64/var/tmp/eclipsecon2011/nexus/bin/jsw/linux-x86-64/nexus startMac OSX/var/tmp/eclipsecon2011/nexus/bin/jsw/macosx-universal-64/nexus start
16. Setting up the environment (cont’ed)Make sure Nexus has started successfullyIn sonatype-work/nexus/logs/nexus.log...com.sonatype.nexus.pgp.DefaultPGPKeyManager - Creating PGP Key Collection for the first time.org.mortbay.log - Started SelectChannelConnector@0.0.0.0:8081...Access Nexus Web GUI
19. Developer credentials: eclipsecon/eclipseconSetting up the environment (cont’ed)Unzip Eclipse IDE to eclipsecon2011Windows ideclipsecon2011.tycho.tutorial.ide-win32.win32.x86.zipLinux x86ide/eclipsecon2011.tycho.tutorial.ide-linux.gtk.x86.zipLinux x86_64ide/eclipsecon2011.tycho.tutorial.ide-linux.gtk.x86_64.zipMax OSXide/eclipsecon2011.tycho.tutorial.ide-win32.win32.x86.zipStart Eclipse IDE by runningeclipsecon2011/eclipse/eclipse
20. settings.xmlhttp://www.sonatype.com/books/mvnref-book/reference/appendix-settings.html<servers>id: This is the id of the server (not of the user to login as) that matches the <repository/>, <pluginRepository> and <mirror/> element's id.username/password: credentials to access matching repositories, plugin repositories and mirrors.<mirrors>id, name: The unique identifier of this mirror. The id is used to differentiate between mirror elements.url: The base URL of this mirror. The build system will use prepend this URL to connect to a repository rather than the default serverURL.mirrorOfThe id of the server that this is a mirror of. For example, to point to a mirror of the Maven central server (http://repo1.maven.org/maven2), set this element to central. This must not match the mirror id.<repositories>blocks accidental access to Maven Central repository
21. Building an RCP app in 5 step-by-step exercisesBuild a simple RCP pluginBuild and execute a simple testAdd a featureAdd a repositoryAdd a productEach step has a folder with stub content as a starting pointREADME.txt gives detailed step-by-step instructionsThe folder for an exercise is at the same time starting point for the current exercise and solution of the previous one
22. Exercise 1: Create and build a hello world RCP plugin using tychoDetailed instructions in Exercise_01_Create_RCP_Bundle/README.txt
23. Exercise 2: Add a test fragment with a simple JUnit testDetailed instructions in Exercise_02_Add_Test_Fragment/README.txt
24. Exercise 3: Add a featureDetailed instructions in Exercise_03_Add_Feature/README.txt
25. Exercise 4: Add a p2 repositoryDetailed instructions in Exercise_04_Add_P2_Repository/README.txt
26. Exercise 5: Add a productDetailed instructions in Exercise_05_Add_Product /README.txt