This talk was presented at CQCON 2013 in Basel.
Learn how to master development workflows combining the power of CQ with Apache Maven and Git. Sometimes it can be hard to get up and running with other developers' Adobe CQ projects. Where is the code? How can you build it once you have it? How do you get it into CQ? What do you do with it once it's there? Anyone should be able to quickly and easily perform a git clone of a CQ project, followed by doing a Maven build and install, and then immediately be able to try it out and work on it within CQ. This session will show developers how they can structure their projects so that they are buildable "out of the box". We will provide hints and tips on how to structure your application in git, and explain which maven plugins to use in a range of circumstances.
See the CQCON website http://www.cqcon.eu/2013/en/speakers/andrew-savory.html or the online version of the presentation at http://www.andrewsavory.com/presentations/CQCon_2013_CQ_Maven_Methods/index.html
The source of the presentation is in github at https://github.com/savs/CQCon_2013_CQ_Maven_Methods
This document discusses Maven, an open source build automation tool used primarily for Java projects. It introduces some key Maven concepts including plugins, lifecycles, dependencies, profiles, and repositories. Plugins in Maven are similar to tasks in Ant and add functionality by defining goals that are bound to lifecycle phases. The document provides examples of configuring plugins, dependencies, and profiles in Maven projects.
Enabling White-Box Reuse in a Pure Composition Languageelliando dias
This document discusses enabling white-box reuse in a pure composition language. It introduces a language extension to JPiccola, a composition language, that allows inheritance by generating subclasses at runtime. This enables accessing functionality from existing Java frameworks through inheritance while maintaining JPiccola's scripting style. The implementation generates bytecode for the subclasses by gathering class structure information and redirecting method calls to Piccola services. Examples show generating subclasses and interfaces. The extension integrates well with JPiccola and allows frameworks to be reused through inheritance when needed.
The document discusses developing plug-ins for NetBeans. It describes what a plug-in is, including that it is a JAR file with special manifest entries. It also discusses that plug-ins can expose APIs, depend on other module APIs, and everything is localized. Finally, it provides an overview of the key NetBeans APIs involved in plug-in development, including files/filesystems, data objects, nodes, and lookup patterns.
The document discusses a NetBeans plugin development workshop. It introduces questions about why to create NetBeans plugins and the difference between modules and plugins. The workshop will include two exercises exploring the NetBeans IDE and going deeper into how it is built from numerous plugin modules. Resources and references are provided for further learning about the NetBeans plugin platform.
Maven is a build tool that provides dependency management, compilation, testing and packaging functionality. It handles dependency resolution by allowing developers to specify dependencies in a pom.xml file. Maven will then download the dependencies from repositories. Maven also provides standardized project structures and build lifecycles that allow projects to be built in a predictable, repeatable manner.
The document discusses tools for continuous integration including Jenkins, Mercurial, Gradle and Redmine. It covers using Groovy with Java projects, testing with Gradle, code quality checks with FindBugs and Checkstyle, code coverage with Emma, and integrating the tools with Jenkins and Redmine for continuous integration. Jenkins can be configured with plugins for Mercurial, Gradle, Emma and notifications to Redmine and email.
The document discusses build tools like Ant, Maven, and Gradle. It provides an overview of each tool's history and capabilities. Gradle is presented as a build tool that aims to improve on Ant and Maven by allowing builds to be written in a Groovy-based domain-specific language for improved flexibility. The document also demonstrates several Gradle features like tasks, dependencies, plugins, and multi-project builds.
This document discusses the build system Gradle and how it compares to Maven. It explains that Gradle is a task-based build system that uses a Groovy DSL. It is more flexible and concise than Maven, which assumes the Maven way. While Maven has a large plugin ecosystem, Gradle scales better to simple problems. The document demonstrates how to write Gradle tasks and use plugins, dependencies, and the Android plugin.
This document discusses Maven, an open source build automation tool used primarily for Java projects. It introduces some key Maven concepts including plugins, lifecycles, dependencies, profiles, and repositories. Plugins in Maven are similar to tasks in Ant and add functionality by defining goals that are bound to lifecycle phases. The document provides examples of configuring plugins, dependencies, and profiles in Maven projects.
Enabling White-Box Reuse in a Pure Composition Languageelliando dias
This document discusses enabling white-box reuse in a pure composition language. It introduces a language extension to JPiccola, a composition language, that allows inheritance by generating subclasses at runtime. This enables accessing functionality from existing Java frameworks through inheritance while maintaining JPiccola's scripting style. The implementation generates bytecode for the subclasses by gathering class structure information and redirecting method calls to Piccola services. Examples show generating subclasses and interfaces. The extension integrates well with JPiccola and allows frameworks to be reused through inheritance when needed.
The document discusses developing plug-ins for NetBeans. It describes what a plug-in is, including that it is a JAR file with special manifest entries. It also discusses that plug-ins can expose APIs, depend on other module APIs, and everything is localized. Finally, it provides an overview of the key NetBeans APIs involved in plug-in development, including files/filesystems, data objects, nodes, and lookup patterns.
The document discusses a NetBeans plugin development workshop. It introduces questions about why to create NetBeans plugins and the difference between modules and plugins. The workshop will include two exercises exploring the NetBeans IDE and going deeper into how it is built from numerous plugin modules. Resources and references are provided for further learning about the NetBeans plugin platform.
Maven is a build tool that provides dependency management, compilation, testing and packaging functionality. It handles dependency resolution by allowing developers to specify dependencies in a pom.xml file. Maven will then download the dependencies from repositories. Maven also provides standardized project structures and build lifecycles that allow projects to be built in a predictable, repeatable manner.
The document discusses tools for continuous integration including Jenkins, Mercurial, Gradle and Redmine. It covers using Groovy with Java projects, testing with Gradle, code quality checks with FindBugs and Checkstyle, code coverage with Emma, and integrating the tools with Jenkins and Redmine for continuous integration. Jenkins can be configured with plugins for Mercurial, Gradle, Emma and notifications to Redmine and email.
The document discusses build tools like Ant, Maven, and Gradle. It provides an overview of each tool's history and capabilities. Gradle is presented as a build tool that aims to improve on Ant and Maven by allowing builds to be written in a Groovy-based domain-specific language for improved flexibility. The document also demonstrates several Gradle features like tasks, dependencies, plugins, and multi-project builds.
This document discusses the build system Gradle and how it compares to Maven. It explains that Gradle is a task-based build system that uses a Groovy DSL. It is more flexible and concise than Maven, which assumes the Maven way. While Maven has a large plugin ecosystem, Gradle scales better to simple problems. The document demonstrates how to write Gradle tasks and use plugins, dependencies, and the Android plugin.
The document discusses plugins in Grails. It covers what a plugin is, the directory structure of plugins, common types of plugins, and implementation details like using the GrailsApplication object, configuring Spring, adding dynamic methods, and reloading on changes. The document is intended to teach plugin developers best practices for creating plugins in Grails.
The document provides an introduction to Gradle, an open source build automation tool. It discusses that Gradle is a general purpose build system with a rich build description language based on Groovy. It supports "build-by-convention" and is flexible and extensible, with built-in plugins for Java, Groovy, Scala, web and OSGi. The presentation covers Gradle's basic features, principles, files and collections, dependencies, multi-project builds, plugins and reading materials.
1. Maven is a build automation tool that manages Java projects and dependencies. It uses a pom.xml file to define build configuration including dependencies, plugins, and lifecycle phases.
2. A Maven project consists of goals bound to phases in a lifecycle. Common goals include compile, test, and package. Maven coordinates including groupId, artifactId, and version uniquely identify dependencies.
3. Maven downloads dependencies from repositories. It publishes artifacts to the local repository for sharing between projects. Artifacts include JAR files and pom.xml files.
- Gradle is a build automation tool that uses a Groovy-based domain-specific language to define software builds.
- It aims to provide flexibility, performance, and ease of use for builds of any size, from small to large multi-project builds.
- Gradle supports many languages and frameworks including Java, Groovy, Scala, and C/C++ and integrates with tools like Maven and Ant.
Maven is a project management and comprehension tool that handles builds, reporting, and handling of dependencies. It uses a Project Object Model (POM) file to manage projects. The POM file contains metadata like dependencies, plugins, and configurations. Maven standardizes builds through lifecycles and phases. It manages dependencies through a repository of artifacts. Liferay has integrated Maven support to allow plugin development with Maven through plugins, archetypes, and prebuilt EE artifacts.
Maven is a build system that provides:
1) A standard directory structure for projects;
2) A standard build lifecycle of phases like compile, test, package; and
3) The ability to override defaults through plugins.
The document then discusses several key aspects of Maven including:
1) The standard Maven directory structure for source code, resources, and test code;
2) The default Maven lifecycle phases like compile, test, package; and
3) The pom.xml file which is Maven's build specification and configuration file.
Red Hat Enterprise Application Platform 6 comes with Maven repository, meaning customers can now easily migrate from JBoss Application Server 7 to Red Hat JBoss Enterprise Application Platform 6. The Maven repository best practices can be used by many Maven-based projects and should be considered as they enable easy upgrades and migrations regardless of using Red Hat JBoss Enterprise Application Platform, Red Hat JBoss SOA Platform, or Red Hat JBoss Data Grid.
In this session, Max Rydahl Andersen will discuss these best practices and their benefits, as well as:
How the Maven repository came to be
What concerns the repository addresses
How a user can best utilize Maven repository
Maven is a build tool and project management tool that provides guidelines for best practices in software development. It manages projects and their dependencies. Maven uses a project object model (POM) file to describe a project, its dependencies and plugins. It incorporates the concept of "convention over configuration" by providing sensible defaults that can be customized. Maven manages builds through a lifecycle of phases where goals bound to each phase execute in order.
Slides for JJUG(Japan Java User Group) 2009 Fall BOF.
Talking about groovy history, new features in Groovy 1.6,1.7.
Especially focused on AST Transformations.
Tycho promises to merge the world of osgi/p2 with Maven apparently making it dead easy to build plugins.
The JBoss Tools and Developer Studio team moved to Tycho last year and with 350+ plugins we learned a lot about what Tycho can do and not do.
In this talk I will update on the Good, bad and ugly experiences we had and continue to have and discuss our recommendations on how to and how not use Tycho.
Slides from version given at EclipseCon 2012.
Recording available from EclipseCon Europe 2011 : http://www.fosslc.org/drupal/content/tycho-good-bad-and-ugly
Gradle build tool that rocks with DSL JavaOne India 4th May 2012Rajmahendra Hegde
For the long time, we have used various build tools to package applications for new software releases or applying patches to existing applications etc. dependency management, version controlling, scalability, flexibility, single-multiple projects sup portability are some of the key areas that drove the selection of a build tool, This session focuses on Gradle as a successful build tool and looks into all the above areas and uses Groovy as a DSL. We will also look into how easy it is to use Gradle as compared to other open source build tools.
Photos: https://plus.google.com/u/0/photos/105295086916869617504/albums/5739617166453582993
Gradle build tool that rocks with DSL By Rajmahendra Hegde at JavaOne Hyderabad, India on 4th May 2012
How to be effective with JBoss Developer StudioMax Andersen
Abstract from JBoss World 2011:
How do you use JBoss Developer Studio effectively while developing applications based on JBoss technology? In this session, Max Rydahl Andersen will cover how you can use pure Eclipse to build multi-module projects, and also how you can make it fit into a Maven world.
Max will explain how you can deploy applications quickly and efficiently into local, remote hosts and even into the cloud.
Here are slides from basic training for Gradle.
This training is aimed to help Java Developers to get hands-on experience to use Gradle as a primary build tool for Java source code starting from simple compilation continuing with different kinds of tests and finishing with code quality analysis and artefacts publishing.
This presentation provides a comprehensive overview of Maven 3 including lifecycles and a detail of the default lifecycle and the associated phases within.
The document provides an overview of the Apache Maven tutorial. It discusses how to set up the Maven environment and install Maven on different operating systems. It also describes the Maven POM file and its basic elements like groupId, artifactId and version. The Maven lifecycle, plugins, dependencies and integration with IDEs are also summarized.
YouTube in Drupal is a 53.5 hour project to build a YouTube site in Drupal using various contributed modules. Key modules used include CCK, Views, Panels, FileField, Embedded Media Field, and jQuery Media to enable video uploads and playback. Additional functionality was added through Flags, Pathauto, and Forum modules. Initial setup took 6.5 hours with the bulk of time spent troubleshooting media playback issues and customizing the node display.
Drupal 8, Where Did the Code Go? From Info Hook to PluginAcquia
Looking at core and contrib modules for Drupal 8, you may be wondering "where did the code go?". Drupal 8 has removed many of the "info" hooks that were found in your module file and converted them to plugins.
In this webinar, we’ll discuss how plugins work and how to upgrade your module to Drupal 8 if it used one of the hooks that's been converted to a plugin.
Topics covered will include:
-Essentials of implementing your own plugin if your module previously used an “info” hook
-An explanation of plugin terminology and different ways plugins can be discovered
-Examples of code from Drupal 7 and where the very similar code lives in Drupal 8
-How to avoid implementing hooks by mistake when writing a function in your modules
AdaptTo 2013: Slinging multichannel content the BrowserMap way / Device Detec...Andrew Savory
Sling selectors provide a powerful and flexible way to decide what content to deliver and how to present it. BrowserMap provides client-side device capability detection. By combining Sling and BrowserMap, you can quickly and easily build multichannel publishing solutions, adapting your content delivery to the capabilities of the device visiting your site. In this session we looked at how and why you should build this, and provide hints and tips on best practice.
Andrew Savory, Adobe
Conrad Woeltge, CEO & Owner, CW & Friends
These slides were for a presentation at the Apache Cocoon GetTogether in 2005.
From http://web.archive.org/web/20051221213534/www.cocoongt.org/speakers/andrew.html here is the synopsis:
New frameworks such as Ruby on Rails are teaching the old dogs some new tricks. With the maxims of "write less code", "don't repeat yourself" and " convention over configuration", programming has become fun again. What can the Cocoon framework learn from this?
Consider the lilies: most Java/XML developers fight with configuration and project building tools, and while they do XML situps, our Rails colleagues utter nice Zen-like 'umms' as their framework gently guesses at their thoughts.
This session will point out the ways in which we can learn from our competitors and make life easier for our users. It will also introduce Racoon: all the fun of Rails, on Cocoon.
The document discusses plugins in Grails. It covers what a plugin is, the directory structure of plugins, common types of plugins, and implementation details like using the GrailsApplication object, configuring Spring, adding dynamic methods, and reloading on changes. The document is intended to teach plugin developers best practices for creating plugins in Grails.
The document provides an introduction to Gradle, an open source build automation tool. It discusses that Gradle is a general purpose build system with a rich build description language based on Groovy. It supports "build-by-convention" and is flexible and extensible, with built-in plugins for Java, Groovy, Scala, web and OSGi. The presentation covers Gradle's basic features, principles, files and collections, dependencies, multi-project builds, plugins and reading materials.
1. Maven is a build automation tool that manages Java projects and dependencies. It uses a pom.xml file to define build configuration including dependencies, plugins, and lifecycle phases.
2. A Maven project consists of goals bound to phases in a lifecycle. Common goals include compile, test, and package. Maven coordinates including groupId, artifactId, and version uniquely identify dependencies.
3. Maven downloads dependencies from repositories. It publishes artifacts to the local repository for sharing between projects. Artifacts include JAR files and pom.xml files.
- Gradle is a build automation tool that uses a Groovy-based domain-specific language to define software builds.
- It aims to provide flexibility, performance, and ease of use for builds of any size, from small to large multi-project builds.
- Gradle supports many languages and frameworks including Java, Groovy, Scala, and C/C++ and integrates with tools like Maven and Ant.
Maven is a project management and comprehension tool that handles builds, reporting, and handling of dependencies. It uses a Project Object Model (POM) file to manage projects. The POM file contains metadata like dependencies, plugins, and configurations. Maven standardizes builds through lifecycles and phases. It manages dependencies through a repository of artifacts. Liferay has integrated Maven support to allow plugin development with Maven through plugins, archetypes, and prebuilt EE artifacts.
Maven is a build system that provides:
1) A standard directory structure for projects;
2) A standard build lifecycle of phases like compile, test, package; and
3) The ability to override defaults through plugins.
The document then discusses several key aspects of Maven including:
1) The standard Maven directory structure for source code, resources, and test code;
2) The default Maven lifecycle phases like compile, test, package; and
3) The pom.xml file which is Maven's build specification and configuration file.
Red Hat Enterprise Application Platform 6 comes with Maven repository, meaning customers can now easily migrate from JBoss Application Server 7 to Red Hat JBoss Enterprise Application Platform 6. The Maven repository best practices can be used by many Maven-based projects and should be considered as they enable easy upgrades and migrations regardless of using Red Hat JBoss Enterprise Application Platform, Red Hat JBoss SOA Platform, or Red Hat JBoss Data Grid.
In this session, Max Rydahl Andersen will discuss these best practices and their benefits, as well as:
How the Maven repository came to be
What concerns the repository addresses
How a user can best utilize Maven repository
Maven is a build tool and project management tool that provides guidelines for best practices in software development. It manages projects and their dependencies. Maven uses a project object model (POM) file to describe a project, its dependencies and plugins. It incorporates the concept of "convention over configuration" by providing sensible defaults that can be customized. Maven manages builds through a lifecycle of phases where goals bound to each phase execute in order.
Slides for JJUG(Japan Java User Group) 2009 Fall BOF.
Talking about groovy history, new features in Groovy 1.6,1.7.
Especially focused on AST Transformations.
Tycho promises to merge the world of osgi/p2 with Maven apparently making it dead easy to build plugins.
The JBoss Tools and Developer Studio team moved to Tycho last year and with 350+ plugins we learned a lot about what Tycho can do and not do.
In this talk I will update on the Good, bad and ugly experiences we had and continue to have and discuss our recommendations on how to and how not use Tycho.
Slides from version given at EclipseCon 2012.
Recording available from EclipseCon Europe 2011 : http://www.fosslc.org/drupal/content/tycho-good-bad-and-ugly
Gradle build tool that rocks with DSL JavaOne India 4th May 2012Rajmahendra Hegde
For the long time, we have used various build tools to package applications for new software releases or applying patches to existing applications etc. dependency management, version controlling, scalability, flexibility, single-multiple projects sup portability are some of the key areas that drove the selection of a build tool, This session focuses on Gradle as a successful build tool and looks into all the above areas and uses Groovy as a DSL. We will also look into how easy it is to use Gradle as compared to other open source build tools.
Photos: https://plus.google.com/u/0/photos/105295086916869617504/albums/5739617166453582993
Gradle build tool that rocks with DSL By Rajmahendra Hegde at JavaOne Hyderabad, India on 4th May 2012
How to be effective with JBoss Developer StudioMax Andersen
Abstract from JBoss World 2011:
How do you use JBoss Developer Studio effectively while developing applications based on JBoss technology? In this session, Max Rydahl Andersen will cover how you can use pure Eclipse to build multi-module projects, and also how you can make it fit into a Maven world.
Max will explain how you can deploy applications quickly and efficiently into local, remote hosts and even into the cloud.
Here are slides from basic training for Gradle.
This training is aimed to help Java Developers to get hands-on experience to use Gradle as a primary build tool for Java source code starting from simple compilation continuing with different kinds of tests and finishing with code quality analysis and artefacts publishing.
This presentation provides a comprehensive overview of Maven 3 including lifecycles and a detail of the default lifecycle and the associated phases within.
The document provides an overview of the Apache Maven tutorial. It discusses how to set up the Maven environment and install Maven on different operating systems. It also describes the Maven POM file and its basic elements like groupId, artifactId and version. The Maven lifecycle, plugins, dependencies and integration with IDEs are also summarized.
YouTube in Drupal is a 53.5 hour project to build a YouTube site in Drupal using various contributed modules. Key modules used include CCK, Views, Panels, FileField, Embedded Media Field, and jQuery Media to enable video uploads and playback. Additional functionality was added through Flags, Pathauto, and Forum modules. Initial setup took 6.5 hours with the bulk of time spent troubleshooting media playback issues and customizing the node display.
Drupal 8, Where Did the Code Go? From Info Hook to PluginAcquia
Looking at core and contrib modules for Drupal 8, you may be wondering "where did the code go?". Drupal 8 has removed many of the "info" hooks that were found in your module file and converted them to plugins.
In this webinar, we’ll discuss how plugins work and how to upgrade your module to Drupal 8 if it used one of the hooks that's been converted to a plugin.
Topics covered will include:
-Essentials of implementing your own plugin if your module previously used an “info” hook
-An explanation of plugin terminology and different ways plugins can be discovered
-Examples of code from Drupal 7 and where the very similar code lives in Drupal 8
-How to avoid implementing hooks by mistake when writing a function in your modules
AdaptTo 2013: Slinging multichannel content the BrowserMap way / Device Detec...Andrew Savory
Sling selectors provide a powerful and flexible way to decide what content to deliver and how to present it. BrowserMap provides client-side device capability detection. By combining Sling and BrowserMap, you can quickly and easily build multichannel publishing solutions, adapting your content delivery to the capabilities of the device visiting your site. In this session we looked at how and why you should build this, and provide hints and tips on best practice.
Andrew Savory, Adobe
Conrad Woeltge, CEO & Owner, CW & Friends
These slides were for a presentation at the Apache Cocoon GetTogether in 2005.
From http://web.archive.org/web/20051221213534/www.cocoongt.org/speakers/andrew.html here is the synopsis:
New frameworks such as Ruby on Rails are teaching the old dogs some new tricks. With the maxims of "write less code", "don't repeat yourself" and " convention over configuration", programming has become fun again. What can the Cocoon framework learn from this?
Consider the lilies: most Java/XML developers fight with configuration and project building tools, and while they do XML situps, our Rails colleagues utter nice Zen-like 'umms' as their framework gently guesses at their thoughts.
This session will point out the ways in which we can learn from our competitors and make life easier for our users. It will also introduce Racoon: all the fun of Rails, on Cocoon.
This presentation was for a workshop at the Institutional Web Management Workshop in 2005: http://www.ukoln.ac.uk/web-focus/events/workshops/webmaster-2005/sessions/savory/
From the abstract:
Dealing with external agencies for your web needs can be a frustrating experience - for you, as well as for them. Whether you're dealing with institutional IT services or a third-party company, there are many common problems that can occur.
This workshop will take a look at the issues involved in getting the job done, including:
* how to efficiently specify your work
* how to pick an external company
* how to check on and measure progress
* how to sign off and quantify achievements
* liaising between external companies and internal IT services
* dealing with ongoing support and maintenance
Lucene and Solr are open-source search engines developed by the Apache Software Foundation (ASF). Lucene was created in 1999 and donated to ASF in 2001. Solr was created in 2004 and donated to ASF in 2006. Both projects have large user communities and are maintained through a collaborative process within ASF. ASF provides organizational support for many open-source projects through a meritocratic process.
Andrew gave a presentation on GNOME, Linux mobile stacks, and engaging with open source communities. He discussed the growth of the mobile market and importance of open platforms. GNOME's role in providing tools for developers on mobile was covered. Finally, he compared GNOME and Qt frameworks, emphasizing the need for fair evaluation of open source options. Developers should find accessible SDKs to get involved in building for open platforms.
The document discusses how to build mobile apps using CQ Mobile and leverage existing CQ investments. It presents PhoneGap as a way to create apps using HTML, CSS and JavaScript across multiple platforms. It also demonstrates how to reuse content from CQ using Content Sync and build custom mobile experiences while reusing the CQ backend infrastructure and content.
Simply having a mobile strategy is no longer enough. Marketers need a mobile strategy that understands, targets and engages their most valuable mobile customers: the mobile elite.
This presentation explains how consumers are using devices today and how to identify the most profitable mobile segments.
Based on findings from the 2014 5th Adobe Mobile Consumer Survey, which had over 3,000 global responses from mobile users, this presentation will give valuable insights into:
• Preferred mobile channels and spending habits
• How to deliver and optimise targeted, engaging mobile experiences
• How to personalise in real time through the use of geo-location
This presentation will guide your formation of a high-value mobile strategy.
Introduction to maven, its configuration, lifecycle and relationship to JS worldDmitry Bakaleinik
The document provides information about Maven, an open source build automation tool. It describes what Maven is used for, how it manages project dependencies and builds through plugins bound to phases in a build lifecycle. Key Maven concepts discussed include the project object model (POM) file, GAV coordinates used to identify projects, and Maven's use of a "super POM" to inherit common configuration.
The presentation slides used during WSO2Con 2011 tutorial session. The tutorial included hands on sessions as well. The slides named as 'demo' refers to hadns-on sessions/demos.
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...mfrancis
OSGi Community Event 2018 Presentation by Lukasz Dywicki (Code-House)
Abstract: During this short presentation I will revisit existing mechanisms and approach towards OSGi and JEE development. I will show how many manual steps can be avoided and how to maintain project in effective manner. I will try to find a balance between execution environment requirements and programmer happines at same time.
I believe that OSGi and Eclipse ecosystem experience troubles gaining people from outside for few reasons. Beside overall impression of OSGi complexity there is equally old and invalid complain about quaility of developer tooling. Since invention of BND development experience can be really pleasant and independent of text editor/IDE preferences. Sadly lots of people still rely on former experiences spreading black/bad PR. I would like to clarify their point.
After this presentation attendees will learn:
How to use Maven to build OSGi projects (without Tycho).
How to automate manual tasks.
How to build custom software distributions with Maven artifacts and run it with Apache Karaf.
That OSGi development doesn't differ much from regular day-to-day usage of application servers or microservice runtimes.
This talk is intended for people who know basics of OSGi as it will show few basic technics towards better developer productivity.
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.
The document provides an overview of Maven, an open source build automation tool used primarily for Java projects. Maven handles tasks like compiling code, running tests, managing dependencies, and packaging software into distributable formats like JAR files. It uses a project object model (POM) file to store build configuration and manages dependencies by coordinating with remote repositories. Maven aims to standardize build processes and encourage best practices for build automation.
Maven 2 is a powerful tool that promotes convention over configuration and you need to
integrate it into one of the popular integrated development environments (IDEs) called
eclipse to make your work easier, thus increasing your productivity and project quality. This
tutorial provides an example of how to make Maven and Eclipse collaborate. Also covers the
popular JSF Web framework.
Maven 2.0 - Project management and comprehension toolelliando dias
Maven is a build tool that helps manage Java projects. It provides standardized ways to build projects, manage dependencies, generate documentation and reports. Key features include dependency management, which allows projects to declare dependencies that Maven will automatically download. It also provides standard project structures and build lifecycles that make projects more uniform and easier for new developers to understand.
Maven is a project management tool that provides conventions for building Java projects, including a standard project structure, dependency management, and lifecycle phases. It simplifies development by standardizing common tasks like compiling, testing, packaging, and deploying. Compared to Ant, Maven takes a more convention-based approach and handles dependencies and lifecycles automatically. The document provides an overview of Maven's key features and how it can help manage Java projects.
Using Maven to build Java & Android programMu Chun Wang
This document provides an overview of using Maven to build Java and Android projects. It discusses installing Maven, the key concepts of Maven including the project object model, dependency management, and plugins. It then demonstrates how to build a simple Java project with Maven and apply Maven to build an Android project, including configuring the Android SDK and android-maven-plugin. Finally, it covers some common issues and tips for using Maven with Android projects in Eclipse.
Maven is a build automation tool used primarily for Java projects. It uses a project object model (POM) to manage dependencies and build processes. This document discusses Maven concepts like the build lifecycle, plugins, dependencies, packaging, and creating custom plugins and archetypes. It provides examples of configuring plugins and executions, defining parameters, and best practices for dependency and plugin management.
NUBOMEDIA is the first open source elastic cloud PaaS (Platform as a Service) specifically designed for real-time interactive multimedia services, which exposes its capabilities through simple APIs. It has been created on the top of Kurento technologies. This presentation provides an overview of NUBOMEDIA and details to create apps ready to be deployed on the NUBOMEDIA PaaS.
More info at http://blog.carlossanchez.eu/tag/devops
The DevOps movement aims to improve communication between developers and operations teams to solve critical issues such as fear of change and risky deployments. But the same way that Agile development would likely fail without continuous integration tools, the DevOps principles need tools to make them real, and provide the automation required to actually be implemented. Most of the so called DevOps tools focus on the operations side, and there should be more than that, the automation must cover the full process, Dev to QA to Ops and be as automated and agile as possible. Tools in each part of the workflow have evolved in their own silos, and with the support of their own target teams. But a true DevOps mentality requires a seamless process from the start of development to the end in production deployments and maintenance, and for a process to be successful there must be tools that take the burden out of humans.
Apache Maven has arguably been the most successful tool for development, project standardization and automation introduced in the last years. On the operations side we have open source tools like Puppet or Chef that are becoming increasingly popular to automate infrastructure maintenance and server provisioning.
In this presentation we will introduce an end-to-end development-to-production process that will take advantage of Maven and Puppet, each of them at their strong points, and open source tools to automate the handover between them, automating continuous build and deployment, continuous delivery, from source code to any number of application servers managed with Puppet, running either in physical hardware or the cloud, handling new continuous integration builds and releases automatically through several stages and environments such as development, QA, and production.
Maven: Managing Software Projects for Repeatable ResultsSteve Keener
Maven is a tool for managing Java-based software projects that provides a standard way to manage builds, documentation, dependencies, and project metadata. It simplifies common project tasks like compiling code, generating reports, and managing dependencies. Maven uses a Project Object Model (POM) file to store build settings and dependencies for a project. It maintains a central repository of dependencies to avoid duplicate copies of files. Maven builds can be configured to compile code, test it, package artifacts, and generate reports through a standardized process. Maven archetypes provide project templates to quickly generate new projects with common configurations.
Introduction to JIB and Google Cloud RunSaiyam Pathak
1. The document discusses JIB and Google Cloud Run for containerizing Java applications.
2. JIB is a tool that builds container images for Java applications faster and produces smaller images. It works by compiling the application to a container image without using Dockerfiles or needing a Docker daemon.
3. Google Cloud Run is a serverless platform that allows running containerized applications without having to manage infrastructure. It provides a fully managed environment to deploy containers.
modern module development - Ken Barber 2012 Edinburgh Puppet CampPuppet
The document provides information on modern Puppet module development best practices. It discusses what modules are and common patterns like package, config, service that address 80% of module needs. It also covers validation of module parameters using Kwalify schemas, testing modules with rspec-puppet, and packaging modules for release on the Puppet Forge using the puppet-module tool. The document emphasizes the importance of coding style, linting with puppet-lint, and following patterns and best practices to create high quality, reusable modules.
This document discusses the Maven build tool, including its origins, concepts, usage, and integration with IDEs. It covers Maven's core concepts like the build lifecycle, POM files, standard project layout, plugins, testing, and resources. It also provides examples of creating and building Maven projects from the command line and configuring projects with multiple modules.
Pyramid is a flexible Python web framework that allows applications to start small and grow as needed without enforcing specific technologies or patterns. The document provides suggestions for structuring larger Pyramid projects, choosing persistence mechanisms, assembling toolkits, using traversal vs URL dispatch, testing, documenting, and deploying applications using buildout, supervisor, and Nginx/mod_wsgi. Project layout, tools, and deployment options depend on each application's specific needs and scope.
Intelligent Projects with Maven - DevFest IstanbulMert Çalışkan
The document discusses Maven, an open source build automation tool used primarily for Java projects. It provides an overview of Maven's key features like dependency management, build lifecycles, and the project object model (POM). The presentation also demonstrates how to create a basic Maven project, configure dependencies and repositories, and manage multi-module builds.
This document provides instructions for setting up a Spring development environment including downloading and installing Java, Tomcat, Spring Framework, Spring Tool Suite, Eclipse, Maven, and JUnit. It also outlines creating a sample "Hello World" Spring MVC project with Spring beans and configuration to test the environment.
This document provides an overview of unlocked packages in Salesforce, including what they are, their benefits compared to other package types, and how to use them. It explains that unlocked packages allow adding, editing, and removing metadata in a trackable way and are well-suited for internal business apps. The document also demonstrates how to create an unlocked package, create versions, install packages, promote releases, and manage package dependencies.
The mobile landscape has changed quite dramatically over the past few years, with the emergence of new mobile platforms and a significant shift toward open source in mobile technologies. What are the key economic drivers for this shift, and what are the lessons that can be learnt from the mobile industry's adoption of open source?
This talk draws on Andrew's experiences as Open Source Manager for the LiMo Foundation. It looks at how and why open source has become commonplace in mobile platform development, and the advantages and pitfalls of using open source.
This workshop introduced the power of XML and XSLT to delegates. It used an innovative solution of Apache Cocoon on a single server and form-based file upload to allow delegates to quickly and simply see the effect of applying XSL transformations on their markup.
Before leaving university and starting Luminas Limited, the directors were all involved in running student union-backed web sites. While doing this, they obtained a unique perspective on what students want from a university site. In this talk, they present some ideas from this experience that you may not have considered before.
Mobile distributions and upstream challengesAndrew Savory
The document discusses the challenges faced by developers in building Linux-based mobile distributions. It notes the lack of widespread adoption of Linux phones over recent years. It then lists several past and present mobile Linux projects. Key upstream challenges mentioned are determining the latest software releases and licenses, obtaining reference hardware, resolving package management differences, and setting up cross-compilation and virtual hosting environments. The presentation raises questions around the future direction of mobile Linux development.
This document discusses open source in mobile platforms. It begins with a brief history of open source from 1983 to the present. It then discusses the 3 main economic drivers for open source in mobile today: reduced cost of software acquisition, access to innovation, and reduced ownership costs. It notes that maintenance is the biggest cost for community open source software. The document discusses strategies for mobile open source projects like merging with upstream projects, contributions from large companies, and reuse of code between projects. It emphasizes that working with open source requires sophisticated supply chain management rather than just technical skills. The future will see convergence of platforms and developers building for multiple platforms.
The document discusses openness in mobile applications and operating different platforms' level of openness based on criteria like source code accessibility, discoverability, sharing, shopping, deploying, paying, and supported languages. It assigns a score to platforms like iPhone, Android and Palm based on these criteria, with iPhone scoring the lowest at 6.5 and Palm scoring the highest at 14.5. While iPhone limits openness, it now dominates the market with over 50 million customers, 125,000 developers and 100,000 available apps on its App Store, with over 2 billion downloads.
Collaborative Development for the future of MobileAndrew Savory
LiMo is a mobile industry consortium that aims to develop a collaborative open source mobile platform. It has 52 member companies and uses an open governance model where members can contribute code under various open source licenses. The goal is to create a common platform where members and non-members can build applications and differentiation occurs at the application and services layer, not the operating system layer. The first release of the LiMo platform focuses on core functionality like telephony, multimedia, and networking. Challenges include the newness of the collaborative development model and ensuring reciprocal sharing of innovations between members and the open source community.
This presentation was for the Cambridge Wireless “Open Source - free lunch?” Software SIG event on 25th February 2009. The event aimed to explore the world of mobile open source software development and to challenge the arising issues from this debate.
Taking AI to the Next Level in Manufacturing.pdfssuserfac0301
Read Taking AI to the Next Level in Manufacturing to gain insights on AI adoption in the manufacturing industry, such as:
1. How quickly AI is being implemented in manufacturing.
2. Which barriers stand in the way of AI adoption.
3. How data quality and governance form the backbone of AI.
4. Organizational processes and structures that may inhibit effective AI adoption.
6. Ideas and approaches to help build your organization's AI strategy.
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Speck&Tech
ABSTRACT: A prima vista, un mattoncino Lego e la backdoor XZ potrebbero avere in comune il fatto di essere entrambi blocchi di costruzione, o dipendenze di progetti creativi e software. La realtà è che un mattoncino Lego e il caso della backdoor XZ hanno molto di più di tutto ciò in comune.
Partecipate alla presentazione per immergervi in una storia di interoperabilità, standard e formati aperti, per poi discutere del ruolo importante che i contributori hanno in una comunità open source sostenibile.
BIO: Sostenitrice del software libero e dei formati standard e aperti. È stata un membro attivo dei progetti Fedora e openSUSE e ha co-fondato l'Associazione LibreItalia dove è stata coinvolta in diversi eventi, migrazioni e formazione relativi a LibreOffice. In precedenza ha lavorato a migrazioni e corsi di formazione su LibreOffice per diverse amministrazioni pubbliche e privati. Da gennaio 2020 lavora in SUSE come Software Release Engineer per Uyuni e SUSE Manager e quando non segue la sua passione per i computer e per Geeko coltiva la sua curiosità per l'astronomia (da cui deriva il suo nickname deneb_alpha).
For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2024/06/building-and-scaling-ai-applications-with-the-nx-ai-manager-a-presentation-from-network-optix/
Robin van Emden, Senior Director of Data Science at Network Optix, presents the “Building and Scaling AI Applications with the Nx AI Manager,” tutorial at the May 2024 Embedded Vision Summit.
In this presentation, van Emden covers the basics of scaling edge AI solutions using the Nx tool kit. He emphasizes the process of developing AI models and deploying them globally. He also showcases the conversion of AI models and the creation of effective edge AI pipelines, with a focus on pre-processing, model conversion, selecting the appropriate inference engine for the target hardware and post-processing.
van Emden shows how Nx can simplify the developer’s life and facilitate a rapid transition from concept to production-ready applications.He provides valuable insights into developing scalable and efficient edge AI solutions, with a strong focus on practical implementation.
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Things to Consider When Choosing a Website Developer for your Website | FODUUFODUU
Choosing the right website developer is crucial for your business. This article covers essential factors to consider, including experience, portfolio, technical skills, communication, pricing, reputation & reviews, cost and budget considerations and post-launch support. Make an informed decision to ensure your website meets your business goals.
Best 20 SEO Techniques To Improve Website Visibility In SERPPixlogix Infotech
Boost your website's visibility with proven SEO techniques! Our latest blog dives into essential strategies to enhance your online presence, increase traffic, and rank higher on search engines. From keyword optimization to quality content creation, learn how to make your site stand out in the crowded digital landscape. Discover actionable tips and expert insights to elevate your SEO game.
Monitoring and Managing Anomaly Detection on OpenShift.pdfTosin Akinosho
Monitoring and Managing Anomaly Detection on OpenShift
Overview
Dive into the world of anomaly detection on edge devices with our comprehensive hands-on tutorial. This SlideShare presentation will guide you through the entire process, from data collection and model training to edge deployment and real-time monitoring. Perfect for those looking to implement robust anomaly detection systems on resource-constrained IoT/edge devices.
Key Topics Covered
1. Introduction to Anomaly Detection
- Understand the fundamentals of anomaly detection and its importance in identifying unusual behavior or failures in systems.
2. Understanding Edge (IoT)
- Learn about edge computing and IoT, and how they enable real-time data processing and decision-making at the source.
3. What is ArgoCD?
- Discover ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes, and its role in deploying applications on edge devices.
4. Deployment Using ArgoCD for Edge Devices
- Step-by-step guide on deploying anomaly detection models on edge devices using ArgoCD.
5. Introduction to Apache Kafka and S3
- Explore Apache Kafka for real-time data streaming and Amazon S3 for scalable storage solutions.
6. Viewing Kafka Messages in the Data Lake
- Learn how to view and analyze Kafka messages stored in a data lake for better insights.
7. What is Prometheus?
- Get to know Prometheus, an open-source monitoring and alerting toolkit, and its application in monitoring edge devices.
8. Monitoring Application Metrics with Prometheus
- Detailed instructions on setting up Prometheus to monitor the performance and health of your anomaly detection system.
9. What is Camel K?
- Introduction to Camel K, a lightweight integration framework built on Apache Camel, designed for Kubernetes.
10. Configuring Camel K Integrations for Data Pipelines
- Learn how to configure Camel K for seamless data pipeline integrations in your anomaly detection workflow.
11. What is a Jupyter Notebook?
- Overview of Jupyter Notebooks, an open-source web application for creating and sharing documents with live code, equations, visualizations, and narrative text.
12. Jupyter Notebooks with Code Examples
- Hands-on examples and code snippets in Jupyter Notebooks to help you implement and test anomaly detection models.
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
Programming Foundation Models with DSPy - Meetup SlidesZilliz
Prompting language models is hard, while programming language models is easy. In this talk, I will discuss the state-of-the-art framework DSPy for programming foundation models with its powerful optimizers and runtime constraint system.
Ivanti’s Patch Tuesday breakdown goes beyond patching your applications and brings you the intelligence and guidance needed to prioritize where to focus your attention first. Catch early analysis on our Ivanti blog, then join industry expert Chris Goettl for the Patch Tuesday Webinar Event. There we’ll do a deep dive into each of the bulletins and give guidance on the risks associated with the newly-identified vulnerabilities.
Fueling AI with Great Data with Airbyte WebinarZilliz
This talk will focus on how to collect data from a variety of sources, leveraging this data for RAG and other GenAI use cases, and finally charting your course to productionalization.
HCL Notes and Domino License Cost Reduction in the World of DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-and-domino-license-cost-reduction-in-the-world-of-dlau/
The introduction of DLAU and the CCB & CCX licensing model caused quite a stir in the HCL community. As a Notes and Domino customer, you may have faced challenges with unexpected user counts and license costs. You probably have questions on how this new licensing approach works and how to benefit from it. Most importantly, you likely have budget constraints and want to save money where possible. Don’t worry, we can help with all of this!
We’ll show you how to fix common misconfigurations that cause higher-than-expected user counts, and how to identify accounts which you can deactivate to save money. There are also frequent patterns that can cause unnecessary cost, like using a person document instead of a mail-in for shared mailboxes. We’ll provide examples and solutions for those as well. And naturally we’ll explain the new licensing model.
Join HCL Ambassador Marc Thomas in this webinar with a special guest appearance from Franz Walder. It will give you the tools and know-how to stay on top of what is going on with Domino licensing. You will be able lower your cost through an optimized configuration and keep it low going forward.
These topics will be covered
- Reducing license cost by finding and fixing misconfigurations and superfluous accounts
- How do CCB and CCX licenses really work?
- Understanding the DLAU tool and how to best utilize it
- Tips for common problem areas, like team mailboxes, functional/test users, etc
- Practical examples and best practices to implement right away
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxSitimaJohn
Ocean Lotus cyber threat actors represent a sophisticated, persistent, and politically motivated group that poses a significant risk to organizations and individuals in the Southeast Asian region. Their continuous evolution and adaptability underscore the need for robust cybersecurity measures and international cooperation to identify and mitigate the threats posed by such advanced persistent threat groups.
18. BUT WHAT ABOUT ...
reverting mistakes?
reproducible builds?
collaborating with others?
deploying to production?
19. WHY ISN'T IT EASIER TO BUILD A CQ SITE?
Laborious project inception
No two projects alike
Don't know project layout
Don't know project dependencies
Hard for others to reproduce
Hard to test
Lengthy RTFM or worse (no FM)
Documentation over convention
23. SO HOW DO WE FIX THIS?
Maven
Git
(or Subversion, or CVS ... ymmv)
Best Practices
24. MAVEN
“Maven is a software project management
and comprehension tool. Based on the
concept of a project object model (POM),
Maven can manage a project's build,
reporting and documentation from a central
piece of information.”
25. GIT
“Git is a free and open source distributed
version control system designed to handle
everything from small to very large projects
with speed and efficiency. ”
Version control is a system that records changes to a file or set of files over
time so that you can recall specific versions later.
26. BEST PRACTICES
“A best practice is a method or technique that
has consistently shown results superior to
those achieved with other means.”
In addition, a "best" practice can evolve to become better as improvements
are discovered.
27. WHAT DO WE WANT?
Minimal customisation
Standardised way to create a project
Standardised way to build a project
Standardised way to deploy a project
Standardised way to test a project
Standardised way to share a project
31. CONFIGURING MAVEN
Maven has a settings file that defines things like
repositories where plugins can be downloaded (typically
~/.m2/settings.xml).
We need to add a profile to point to the Adobe repository.
We then specify this repository when we use the
archetype plugin.
See also: Obtaining the Content Package Maven Plugin
33. CONFIGURING MAVEN
Enable the repository:
Or use the -P option to activate profile(s):
<activeProfiles>
<activeProfile>adobe-public</activeProfile>
</activeProfiles>
mvn -P adobe-public [...]
37. ARCHETYPES
archetype |ˈɑːkɪtʌɪp|
noun
a very typical example of a certain person or thing: he was
the archetype of the old-style football club chairman.
an original which has been imitated; a prototype: an
instrument which was the archetype of the early flute.
39. WHAT CQ ARCHETYPES ARE THERE?
simple-content-package
Generates a simple
multimodule-content-package
Includes the folder structure for developing a CQ
application (content package and bundle).
cqblueprints multi-module
Third-party archetype encapsulating best practices for
working with e.g. OSGi bundles, taglibs, and CQ content
See also:
content package
How to work with packages
40. ON PACKAGES
Packages enable the importing and exporting of repository
content. They are used to install new functionality, transfer
content between instances, or back up the repository
A package is a zip file in file system (vault) serialization
format
Packages include meta information - filter definitions,
import configuration, package properties
Packages are often managed through the CQ
Package Manager
41. ON BUNDLES
Bundles are modular containers of functionality for OSGi –
essentially a java module that contains application logic
Bundles consist of java classes and other resources needed
to deliver functionality or to provide services to other
bundles.
Bundles can be managed through the CQ
See also:
Web Console
Creating OSGi bundles using CRXDE
42. HOW TO USE AN ARCHETYPE
archetypeGroupId: identifies the archetype project
uniquely across all projects
archetypeArtifactId: the name of the archetype jar
without a version number
archetypeRepository: where to get the archetype from
(based on pluginRepository in settings.xml)
See also: and
mvn archetype:generate
-DarchetypeGroupId=foo
-DarchetypeArtifactId=bar
-DarchetypeVersion=1.0.0
-DarchetypeRepository=baz
Maven: Introduction to Archetypes Maven: Naming conventions
43. SIMPLE CONTENT PACKAGE ARCHETYPE
From the fine manual:
“Creates a maven project that is suitable for
installing resources for a simple CQ
application. The folder structure is that used
below the /apps folder of the CQ repository.
The POM defines commands for packaging
the resources that you place in the folders and
installing the packages on the CQ server.”
44. SIMPLE CONTENT PACKAGE USAGE
archetypeGroupId: com.day.jcr.vault
identifies the archetype project uniquely across all projects
archetypeArtifactId: simple-content-package-archetype
the name of the archetype jar without a version number
archetypeRepository: adobe-public-releases
where to get the archetype from (based on
pluginRepository in settings.xml)
mvn archetype:generate
-DarchetypeGroupId=com.day.jcr.vault
-DarchetypeArtifactId=simple-content-package-archetype
-DarchetypeVersion=1.0.1
-DarchetypeRepository=adobe-public-releases
46. SIMPLE CONTENT PACKAGE PARAMETERS
groupId: Like a package name, e.g.
com.yourcompany.myproject
artifactId: name of the jar without the version, e.g.
myproject
version: accept the default
package: not used in simple-content-package
appsFolderName: name of /apps/myproject, e.g. myproject
artifactName: Description in Package Manager
packageGroup: Group in Package Manager
See also: Maven: Naming conventions
47. SIMPLE CONTENT PACKAGE OUTPUT
Template directories
pom.xml file
Instructions for compiling, creating bundles, deploying
to CQ in packages
FileVault configuration files
53. WHY USE CQBLUEPRINTS MULTI-MODULE?
The cqblueprint multi-module archetype is developed by
“The things we wanted to consider with our
archetype is to address concerns of larger
teams”
headwire.com
54. CQBLUEPRINTS MULTIMODULE DESIGN
foo-view subproject: where css/html/js developers (frontend)
do their work
foo-taglib foo-services: where java developers (backend) do
their work
foo-config: where the configuration (runmode configs stored)
foo-content: how we get initial content and site structure onto
the developer's box quickly
foo-all: how we hand off builds to the next environment
60. GET IT IN GIT
git add *
git commit -m 'Initial project version'
61. GET IT IN GITHUB (OPTIONAL)
hub-new-repo is a shortcut for creating a repository on
github and pushing your local repo into it
See also:
See also:
cd project
git hub-new-repo
CLI remote github repo creation
github
70. HOW CAN WE BUILD SMARTER?
Create local zips and jars that you can upload:
mvn package
produces:
Content package output: target/yourapp-content-
1.0-SNAPSHOT.zip
Bundle output: target/testapp-bundle-1.0-
SNAPSHOT.jar
76. How do we develop in a world of maven builds and deploys
and git saves?
77. THE FILEVAULT TOOL
You can use the FileVault tool (vlt) to check in, check out,
update and sync local content with the repository.
Install: extract crx-
quickstart/opt/filevault/filevault.
[tgz|zip] and add to your path
Usage: vlt --credentials admin:admin co --
force http://localhost:4502/crx
See also: How to use the VLT Tool
78. SAMPLE DEVELOPMENT WORKFLOW
Use maven to build and deploy
Initialise vlt
Create components, templates with CRXDE Lite
Use vlt to copy back into local filesystem
Change locally
Use vlt to copy back into the repository
Add to git
86. MAVEN PROFILE FOR PRODUCTION
Add this to pom.xml:
Deploy using this profile:
Or one-time override: mvn -
Dcrx.host=another.host,crx.port=4504 -
PautoInstallPackage install
See also:
<profile>
<id>auto-deploy-prod</id>
<properties>
<crx.host>production.server.hostname</crx.host>
<crx.port>4502</crx.port>
</properties>
</profile>
mvn -PautoInstallPackage,auto-deploy-prod install
Introduction to build profiles
92. CREDITS
designed by from The Noun Project
designed by from The Noun Project
designed by from The Noun Project
designed by from The Noun Project
designed by from The Noun Project
designed by from The Noun Project
designed by from The Noun Project
designed by from The Noun Project
designed by from The Noun Project
designed by from The Noun Project
designed by from The Noun Project
Light Bulb Shane David Kenna
Question Anas Ramadan
Hard Disk Drive Eddie Alshehri
Time wayne25uk
Sync P.J. Onori
Sync Rohith M S
Cloud Upload Adam Whitcroft
Puzzle John O'Shea
Question Henry Ryder
Factory Adrijan Karavdic
Crash Test Dummy Luis Prado