| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> |
| <html> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE- 2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| |
| <head> |
| <title>Apache Felix - iPOJO Maven Plug-in</title> |
| <link rel="icon" href="/res/favicon.ico"> |
| |
| <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <meta name="description" content="The most powerful component model for OSGi"> |
| |
| |
| <link href="/ipojo/web/bootstrap/css/bootstrap-cerulean.css" rel="stylesheet"> |
| <link href="/ipojo/web/bootstrap/css/bootstrap-responsive.css" rel="stylesheet"> |
| <link href="/ipojo/web/bootstrap/css/font-awesome.min.css" rel="stylesheet"> |
| <link href="/ipojo/web/style.css" rel="stylesheet"> |
| |
| <!-- Overide alert's colors --> |
| <link href="/ipojo/web/bootstrap/css/alert.css" rel="stylesheet"> |
| |
| <link rel="stylesheet" href="/ipojo/web/github.css" type="text/css" media="all"> |
| |
| |
| <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> |
| <script src="/ipojo/web/bootstrap/js/bootstrap.min.js"></script> |
| |
| </head> |
| |
| <body data-spy="scroll" data-target=".subnav"> |
| <div class="navbar navbar-fixed-top navbar-inverse"> |
| <div class="navbar-inner"> |
| <div class="container"> |
| <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> |
| <span class="icon-bar"></span> |
| <span class="icon-bar"></span> |
| <span class="icon-bar"></span> |
| </a> |
| <a class="brand" href="/documentation/subprojects/apache-felix-ipojo.html">Apache Felix iPOJO</a> |
| |
| <div class="nav-collapse" id="main-menu"> |
| <ul class="nav" id="main-menu-left"> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/ipojo-news.html">News</a></li> |
| <li><a href="http://felix.apache.org/downloads.cgi">Downloads</a></li> |
| |
| <li class="dropdown"> |
| <a class="dropdown-toggle" data-toggle="dropdown" href="#">Tutorials <b class="caret"></b></a> |
| <ul class="dropdown-menu" id="tutorials-menu"> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-why-choose-ipojo.html">Why choose iPOJO</a></li> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-successstories.html">Success stories</a></li> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-feature-overview.html">Features</a></li> |
| <li class="divider"></li> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-gettingstarted/ipojo-in-10-minutes.html">iPOJO in 10 minutes</a></li> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-gettingstarted/how-to-use-ipojo-annotations.html">Using Annotations</a></li> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-gettingstarted/ipojo-hello-word-maven-based-tutorial.html">Maven tutorial</a></li> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-gettingstarted/ipojo-advanced-tutorial.html">Advanced tutorial</a></li> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-gettingstarted/apache-felix-ipojo-dosgi.html">Using Distributed OSGi</a></li> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-gettingstarted/ipojo-composition-tutorial.html">Application Composition</a></li> |
| </ul> |
| </li> |
| |
| <li class="dropdown"> |
| <a class="dropdown-toggle" data-toggle="dropdown" href="#">Documentation <b class="caret"></b></a> |
| <ul class="dropdown-menu" id="user-guide-menu"> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/describing-components/service-requirement-handler.html">Requiring a service</a></li> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/describing-components/providing-osgi-services.html">Providing a service</a></li> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/describing-components/lifecycle-callback-handler.html">Lifecycle management</a></li> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/describing-components/configuration-handler.html">Configuration</a></li> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/describing-components/architecture-handler.html">Introspection</a></li> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/describing-components/controller-lifecycle-handler.html">Impacting the lifecycle</a></li> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/describing-components/injecting-bundle-context.html">Accessing the Bundle Context</a></li> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/apache-felix-ipojo-instances.html">Creating instances</a></li> |
| <li class="divider"></li> |
| <li class="dropdown-submenu"> |
| <a tabindex="-1" href="#">External <em>handlers</em></a> |
| <ul class="dropdown-menu"> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/describing-components/event-admin-handlers.html">Asynchronous communication</a></li> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/describing-components/ipojo-jmx-handler.html">JMX management</a></li> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/describing-components/extender-pattern-handler.html">Extender pattern</a></li> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/describing-components/white-board-pattern-handler.html">Whiteboard pattern</a></li> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/describing-components/temporal-service-dependency.html">Temporal dependencies</a></li> |
| </ul> |
| </li> |
| <li class="dropdown-submenu"> |
| <a tabindex="-1" href="#">Configuration Admin & Factories</a> |
| <ul class="dropdown-menu"> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/ipojo-advanced-topics/combining-ipojo-and-configuration-admin.html">iPOJO and config admin</a></li> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/ipojo-advanced-topics/ipojo-factory-service.html">Using the iPOJO Factory service</a></li> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/ipojo-advanced-topics/how-to-use-ipojo-factories.html">Factories and Instances</a></li> |
| </ul> |
| </li> |
| <li class="divider"></li> |
| <li class="dropdown-submenu"> |
| <a tabindex="-1" href="#">Advanced topics</a> |
| <ul class="dropdown-menu"> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/instance-vs-service-controller.html">Instance vs. Service Controllers</a></li> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/ipojo-advanced-topics/service-binding-interceptors.html">Service Binding Interceptors</a></li> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/using-xml-schemas.html">XML Schemas</a></li> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/apache-felix-ipojo-api.html">Using the iPOJO API</a></li> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/ipojo-advanced-topics/constructing-pojo-objects-with-factory-methods.html">Constructing service objects with factory methods</a></li> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/ipojo-advanced-topics/using-ipojo-introspection-api.html">Using the introspection API</a></li> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-testing-components.html">Testing components</a></li> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/ipojo-advanced-topics/using-stereotypes.html">Using @Stereotypes</a></li> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-eclipse-integration.html">Eclipse Integration</a></li> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/ipojo-advanced-topics/ipojo-extender-configuration.html">Configuring iPOJO's Extender</a></li> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/ipojo-faq.html">FAQ</a></li> |
| <li class="divider"></li> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-devguide/how-to-write-your-own-handler.html">Handler development</a></li> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-devguide/how-to-use-ipojo-manipulation-metadata.html">Manipulation Metadata </a></li> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-devguide/dive-into-the-ipojo-manipulation-depths.html">Dive into the iPOJO Manipulation depths</a></li> |
| <li><a href="http://felix.apache.org/ipojo/api/1.12.1">Javadoc</a></li> |
| </ul> |
| </li> |
| </ul> |
| </li> |
| |
| <li class="dropdown" id="tools-menu"> |
| <a class="dropdown-toggle" data-toggle="dropdown" href="#">Tools <b class="caret"></b></a> |
| <ul class="dropdown-menu" id="swatch-menu"> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-tools/ipojo-ant-task.html">Ant Task</a></li> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-tools/ipojo-maven-plug-in.html">Maven Plugin</a></li> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-tools/ipojo-arch-command.html">Architecture commands</a></li> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-tools/apache-felix-ipojo-online-manipulator.html">Online Manipulator</a></li> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-tools/ipojo-webconsole-plugin.html">Webconsole plugin</a></li> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-tools/ipojo-karaf-feature.html">Apache Karaf Features</a></li> |
| </ul> |
| </li> |
| |
| <li class="dropdown" id="community-menu"> |
| <a class="dropdown-toggle" data-toggle="dropdown" href="#">Community <b class="caret"></b></a> |
| <ul class="dropdown-menu" id="swatch-menu"> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/ipojo-support.html">Support</a></li> |
| <li><a href="http://www.apache.org/">ASF</a></li> |
| <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li> |
| <li><a href="http://www.apache.org/foundation/thanks.html">Sponsors</a></li> |
| </ul> |
| </li> |
| |
| <li class="dropdown" id="misc-menu"> |
| <a class="dropdown-toggle" data-toggle="dropdown" href="#">Misc <b class="caret"></b></a> |
| <ul class="dropdown-menu" id="swatch-menu"> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-supportedvms.html">Supported JVMs</a></li> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-supportedosgi.html">Supported OSGi Implementations</a></li> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/articles-and-presentations.html">Article & Presentations</a></li> |
| <li><a href="/documentation/subprojects/apache-felix-ipojo/developing-camel-mediators-with-ipojo.html">Developping Camel mediators with iPOJO</a></li> |
| </ul> |
| </li> |
| </ul> |
| <ul class="nav pull-right" id="main-menu-right"> |
| <li><a rel="tooltip" target="_blank" href="http://felix.apache.org">Apache Felix <i class="icon-share-alt"></i></a></li> |
| </ul> |
| </div> |
| </div> |
| </div> |
| </div> |
| |
| <div class="container"> |
| <div class="content"> |
| <style type="text/css"> |
| /* The following code is added by mdx_elementid.py |
| It was originally lifted from http://subversion.apache.org/style/site.css */ |
| /* |
| * Hide class="elementid-permalink", except when an enclosing heading |
| * has the :hover property. |
| */ |
| .headerlink, .elementid-permalink { |
| visibility: hidden; |
| } |
| h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style> |
| <h1 id="how-to-use-the-ipojo-maven-plug-in">How to use the iPOJO Maven Plug-in<a class="headerlink" href="#how-to-use-the-ipojo-maven-plug-in" title="Permanent link">¶</a></h1> |
| <div class="toc"> |
| <ul> |
| <li><a href="#how-to-use-the-ipojo-maven-plug-in">How to use the iPOJO Maven Plug-in</a><ul> |
| <li><a href="#basic-configuration">Basic configuration</a></li> |
| <li><a href="#execution">Execution</a></li> |
| <li><a href="#configuration-options">Configuration Options</a></li> |
| <li><a href="#generate-the-skeleton-of-your-ipojo-bundle">Generate the skeleton of your iPOJO bundle</a></li> |
| <li><a href="#describing-ipojo-configuration-in-the-pom-file">Describing iPOJO configuration in the pom file</a></li> |
| </ul> |
| </li> |
| </ul> |
| </div> |
| <h2 id="basic-configuration">Basic configuration<a class="headerlink" href="#basic-configuration" title="Permanent link">¶</a></h2> |
| <p>To use the iPOJO Maven plug-in, edit the following pom.xml (replace all $XXX elements):</p> |
| <div class="codehilite"><pre><span class="nt"><project></span> |
| <span class="nt"><modelVersion></span>4.0.0<span class="nt"></modelVersion></span> |
| |
| <span class="nt"><groupId></span>$YOUR_GROUP_ID<span class="nt"></groupId></span> |
| <span class="nt"><artifactId></span>$YOUR_ARTIFACT_ID<span class="nt"></artifactId></span> |
| <span class="nt"><version></span>$YOUR_ARTIFACT_VERSION<span class="nt"></version></span> |
| |
| <span class="nt"><name></span>$YOUR_PROJECT_NAME<span class="nt"></name></span> |
| |
| <span class="c"><!-- Use the bundle packaging type --></span> |
| <span class="nt"><packaging></span>bundle<span class="nt"></packaging></span> |
| |
| <span class="nt"><dependencies></span> |
| $YOUR_MAVEN_DEPENDENCIES |
| <span class="nt"></dependencies></span> |
| |
| <span class="nt"><build></span> |
| <span class="nt"><plugins></span> |
| <span class="c"><!-- BND Maven Plugin Configuration --></span> |
| <span class="nt"><plugin></span> |
| <span class="nt"><groupId></span>org.apache.felix<span class="nt"></groupId></span> |
| <span class="nt"><artifactId></span>maven-bundle-plugin<span class="nt"></artifactId></span> |
| <span class="nt"><extensions></span>true<span class="nt"></extensions></span> |
| <span class="nt"><configuration></span> |
| <span class="nt"><instructions></span> |
| <span class="nt"><Bundle-SymbolicName></span>${pom.artifactId}<span class="nt"></Bundle-SymbolicName></span> |
| <span class="nt"><Private-Package></span>$YOUR_PRIVATE_PACKAGE<span class="nt"></Private-Package></span> |
| <span class="nt"><Export-Package></span>$YOUR_EXPORTED_PACKAGE<span class="nt"></Export-Package></span> |
| <span class="nt"></instructions></span> |
| <span class="nt"></configuration></span> |
| <span class="nt"></plugin></span> |
| <span class="nt"><plugin></span> |
| <span class="nt"><groupId></span>org.apache.felix<span class="nt"></groupId></span> |
| <span class="nt"><artifactId></span>maven-ipojo-plugin<span class="nt"></artifactId></span> |
| <span class="nt"><version></span>1.12.1<span class="nt"></version></span> |
| <span class="nt"><executions></span> |
| <span class="nt"><execution></span> |
| <span class="nt"><goals></span> |
| <span class="nt"><goal></span>ipojo-bundle<span class="nt"></goal></span> |
| <span class="nt"></goals></span> |
| <span class="nt"></execution></span> |
| <span class="nt"></executions></span> |
| <span class="nt"></plugin></span> |
| <span class="nt"></plugins></span> |
| <span class="nt"></build></span> |
| <span class="nt"></project></span> |
| </pre></div> |
| |
| |
| <p>The iPOJO Maven Plug-in is generally used with the BND Maven Plug-in (more details here). However the two configurations are completely separated. So, you can use all BND Maven plug-in features. The iPOJO configuration section can be used as previously written without any changes. However it requires that your metadata file is either inside <code>src/main/ipojo</code> or inside the <code>src/main/resources</code> folder and named "metadata.xml".</p> |
| <h2 id="execution">Execution<a class="headerlink" href="#execution" title="Permanent link">¶</a></h2> |
| <p>To manipulate your project, use the "<em>mvn clean install</em>" command. The output should be like:</p> |
| <div class="codehilite"><pre><span class="o">[</span>INFO<span class="o">]</span> Scanning <span class="k">for </span>projects... |
| <span class="o">[</span>INFO<span class="o">]</span> ---------------------------------------------------------------------------- |
| <span class="o">[</span>INFO<span class="o">]</span> Building Hello Client |
| <span class="o">[</span>INFO<span class="o">]</span> task-segment: <span class="o">[</span>clean, install<span class="o">]</span> |
| <span class="o">[</span>INFO<span class="o">]</span> ---------------------------------------------------------------------------- |
| <span class="o">[</span>INFO<span class="o">]</span> <span class="o">[</span>clean:clean<span class="o">]</span> |
| <span class="o">[</span>INFO<span class="o">]</span> Deleting directory ...hello.client<span class="se">\t</span>arget |
| <span class="o">[</span>INFO<span class="o">]</span> Deleting directory ...hello.client<span class="se">\t</span>arget<span class="se">\c</span>lasses |
| <span class="o">[</span>INFO<span class="o">]</span> Deleting directory ...hello.client<span class="se">\t</span>arget<span class="se">\t</span>est-classes |
| <span class="o">[</span>INFO<span class="o">]</span> Deleting directory ...hello.client<span class="se">\t</span>arget<span class="se">\s</span>ite |
| <span class="o">[</span>INFO<span class="o">]</span> <span class="o">[</span>resources:resources<span class="o">]</span> |
| <span class="o">[</span>INFO<span class="o">]</span> Using default encoding to copy filtered resources. |
| <span class="o">[</span>INFO<span class="o">]</span> Copying 1 resource |
| <span class="o">[</span>INFO<span class="o">]</span> <span class="o">[</span>compiler:compile<span class="o">]</span> |
| <span class="o">[</span>INFO<span class="o">]</span> Compiling 1 <span class="nb">source </span>file to ...hello.client<span class="se">\t</span>arget<span class="se">\c</span>lasses |
| <span class="o">[</span>INFO<span class="o">]</span> <span class="o">[</span>resources:testResources<span class="o">]</span> |
| <span class="o">[</span>INFO<span class="o">]</span> Using default encoding to copy filtered resources. |
| <span class="o">[</span>INFO<span class="o">]</span> Resource directory does not exist: ...hello.client<span class="se">\s</span>rc<span class="se">\t</span>est<span class="se">\r</span>esources |
| <span class="o">[</span>INFO<span class="o">]</span> <span class="o">[</span>compiler:testCompile<span class="o">]</span> |
| <span class="o">[</span>INFO<span class="o">]</span> No sources to compile |
| <span class="o">[</span>INFO<span class="o">]</span> <span class="o">[</span>surefire:test<span class="o">]</span> |
| <span class="o">[</span>INFO<span class="o">]</span> No tests to run. |
| <span class="o">[</span>INFO<span class="o">]</span> <span class="o">[</span>bundle:bundle<span class="o">]</span> |
| <span class="o">[</span>INFO<span class="o">]</span> <span class="o">[</span>org.apache.felix.ipojo.:ipojo-bundle <span class="o">{</span>execution: default<span class="o">}]</span> |
| <span class="o">[</span>INFO<span class="o">]</span> Start bundle manipulation |
| <span class="o">[</span>INFO<span class="o">]</span> Metadata File : ...hello.client<span class="se">\t</span>arget<span class="se">\c</span>lasses<span class="se">\m</span>etadata.xml |
| <span class="o">[</span>INFO<span class="o">]</span> Input Bundle File : ...hello.client<span class="se">\t</span>arget<span class="se">\h</span>ello.client-0.0.1.jar |
| <span class="o">[</span>INFO<span class="o">]</span> Bundle manipulation - SUCCESS |
| <span class="o">[</span>INFO<span class="o">]</span> <span class="o">[</span>install:install<span class="o">]</span> |
| <span class="o">[</span>INFO<span class="o">]</span> Installing ...hello.client<span class="se">\t</span>arget<span class="se">\h</span>ello.client-0.0.1.jar to D:<span class="se">\D</span>ev<span class="se">\m</span>aven-repo<span class="se">\i</span>pojo<span class="se">\e</span>xample<span class="se">\h</span>ello.client<span class="se">\0</span>.0.1<span class="se">\h</span>ello.client-0.0.1.jar |
| <span class="o">[</span>INFO<span class="o">]</span> ------------------------------------------------------------------------ |
| <span class="o">[</span>INFO<span class="o">]</span> BUILD SUCCESSFUL |
| <span class="o">[</span>INFO<span class="o">]</span> ------------------------------------------------------------------------ |
| <span class="o">[</span>INFO<span class="o">]</span> Total <span class="nb">time</span>: 9 seconds |
| <span class="o">[</span>INFO<span class="o">]</span> Finished at: Mon Aug 13 14:04:55 CEST 2007 |
| <span class="o">[</span>INFO<span class="o">]</span> Final Memory: 6M/13M |
| <span class="o">[</span>INFO<span class="o">]</span> ------------------------------------------------------------------------ |
| </pre></div> |
| |
| |
| <h2 id="configuration-options">Configuration Options<a class="headerlink" href="#configuration-options" title="Permanent link">¶</a></h2> |
| <p>You can configure the localization of the iPOJO metadata file as following:</p> |
| <div class="codehilite"><pre><span class="nt"><plugin></span> |
| <span class="nt"><groupId></span>org.apache.felix<span class="nt"></groupId></span> |
| <span class="nt"><artifactId></span>maven-ipojo-plugin<span class="nt"></artifactId></span> |
| <span class="nt"><version></span>1.12.1<span class="nt"></version></span> |
| <span class="nt"><executions></span> |
| <span class="nt"><execution></span> |
| <span class="nt"><goals></span> |
| <span class="nt"><goal></span>ipojo-bundle<span class="nt"></goal></span> |
| <span class="nt"></goals></span> |
| <span class="nt"><configuration></span> |
| <span class="nt"><metadata></span>ipojo/meta.xml<span class="nt"></metadata></span> |
| <span class="nt"></configuration></span> |
| <span class="nt"></execution></span> |
| <span class="nt"></executions></span> |
| <span class="nt"></plugin></span> |
| </pre></div> |
| |
| |
| <p>In the metadata element, you can specify your metadata file or directory. The given file path is relative to the root directory ("./ipojo/meta.xml"). If the specified location is a directory, all contained XML files will be used. By default, the plugin searches metadata files into the <code>src/main/ipojo</code> folder. If not found then it searches for <code>target/classes/metadata.xml</code> and <code>./metadata.xml</code>.</p> |
| <div class="alert alert-info"> |
| The directory support was introduced in the `1.7.0` version. Previously only one metadata file was found. |
| Before the `1.7.0`, the set location was searched in all resource folders. This is no more supported because it's an anti-pattern. |
| </div> |
| |
| <p>The second option allows skipping annotations processing, by using the <code>ignoreAnnotations</code> element:</p> |
| <div class="codehilite"><pre><span class="nt"><plugin></span> |
| <span class="nt"><groupId></span>org.apache.felix<span class="nt"></groupId></span> |
| <span class="nt"><artifactId></span>maven-ipojo-plugin<span class="nt"></artifactId></span> |
| <span class="nt"><version></span>1.12.1<span class="nt"></version></span> |
| <span class="nt"><executions></span> |
| <span class="nt"><execution></span> |
| <span class="nt"><goals></span> |
| <span class="nt"><goal></span>ipojo-bundle<span class="nt"></goal></span> |
| <span class="nt"></goals></span> |
| <span class="nt"><configuration></span> |
| <span class="nt"><ignoreAnnotations></span>true<span class="nt"></ignoreAnnotations></span> |
| <span class="nt"></configuration></span> |
| <span class="nt"></execution></span> |
| <span class="nt"></executions></span> |
| <span class="nt"></plugin></span> |
| </pre></div> |
| |
| |
| <p>You can also ignore embedded XML-Schemas to use external ones. To do so, add the <code>ignoreEmbeddedSchemas</code>. If set to <code>true</code>, the manipulator doesn't use embedded XML-Schemas:</p> |
| <div class="codehilite"><pre><span class="nt"><plugin></span> |
| <span class="nt"><groupId></span>org.apache.felix<span class="nt"></groupId></span> |
| <span class="nt"><artifactId></span>maven-ipojo-plugin<span class="nt"></artifactId></span> |
| <span class="nt"><version></span>1.12.1<span class="nt"></version></span> |
| <span class="nt"><executions></span> |
| <span class="nt"><execution></span> |
| <span class="nt"><goals></span> |
| <span class="nt"><goal></span>ipojo-bundle<span class="nt"></goal></span> |
| <span class="nt"></goals></span> |
| <span class="nt"><configuration></span> |
| <span class="nt"><ignoreEmbeddedSchemas></span>true<span class="nt"></ignoreEmbeddedSchemas></span> |
| <span class="nt"></configuration></span> |
| <span class="nt"></execution></span> |
| <span class="nt"></executions></span> |
| <span class="nt"></plugin></span> |
| </pre></div> |
| |
| |
| <h2 id="generate-the-skeleton-of-your-ipojo-bundle">Generate the skeleton of your iPOJO bundle<a class="headerlink" href="#generate-the-skeleton-of-your-ipojo-bundle" title="Permanent link">¶</a></h2> |
| <p>The maven-ipojo-plugin provides a way to generate the skeleton of your project. To generate this structure, just launch the following command:</p> |
| <div class="codehilite"><pre>mvn org.apache.maven.plugins:maven-archetype-plugin:generate <span class="se">\</span> |
| -DarchetypeArtifactId<span class="o">=</span>maven-ipojo-plugin <span class="se">\</span> |
| -DarchetypeGroupId<span class="o">=</span>org.apache.felix <span class="se">\</span> |
| -DartifactId<span class="o">=</span>ARTIFACT_NAME_OF_YOUR_PROJECT <span class="se">\</span> |
| -DgroupId<span class="o">=</span>GROUP_ID_OF_YOUR_PROJECT <span class="se">\</span> |
| -DarchetypeVersion<span class="o">=</span>VERSION_OF_YOUR_PROJECT <span class="se">\</span> |
| -DpackageName<span class="o">=</span>PACKAGE_NAME |
| </pre></div> |
| |
| |
| <p>This command generates : |
| <em> a pom file (to update), |
| </em> the src/main/java and src/main/resources folders, |
| * the structure of your package name.</p> |
| <p>The generated project uses iPOJO annotation and is ready to be deployed.</p> |
| <div class="alert alert-info" markdown="1"> |
| <h4>Maven Archetype</h4> |
| The maven-ipojo-plugin archetype generates a pom file using the latest released version of the maven-ipojo-plugin. |
| </div> |
| |
| <h2 id="describing-ipojo-configuration-in-the-pom-file">Describing iPOJO configuration in the pom file<a class="headerlink" href="#describing-ipojo-configuration-in-the-pom-file" title="Permanent link">¶</a></h2> |
| <p>It is also possible to describe iPOJO components and instances inside the pom file (avoiding using a externalized file). The configuration can be described in the <code>metadata</code> attribute inside a CDATA block.</p> |
| <div class="codehilite"><pre><span class="nt"><plugin></span> |
| <span class="nt"><groupId></span>org.apache.felix<span class="nt"></groupId></span> |
| <span class="nt"><artifactId></span>maven-ipojo-plugin<span class="nt"></artifactId></span> |
| <span class="nt"><version></span>1.12.1<span class="nt"></version></span> |
| <span class="nt"><executions></span> |
| <span class="nt"><execution></span> |
| <span class="nt"><goals></span> |
| <span class="nt"><goal></span>ipojo-bundle<span class="nt"></goal></span> |
| <span class="nt"></goals></span> |
| <span class="nt"><configuration></span> |
| <span class="nt"><ignoreAnnotations></span>true<span class="nt"></ignoreAnnotations></span> |
| <span class="nt"><metadata></span> |
| <span class="cp"><![CDATA[</span> |
| <span class="cp"> <ipojo</span> |
| <span class="cp"> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</span> |
| <span class="cp"> xsi:schemaLocation="org.apache.felix.ipojo http://felix.apache.org/ipojo/schemas/CURRENT/core.xsd"</span> |
| <span class="cp"> xmlns="org.apache.felix.ipojo"></span> |
| <span class="cp"> <component</span> |
| <span class="cp"> classname="org.apache.felix.ipojo.test.scenarios.component.LifecycleControllerTest"</span> |
| <span class="cp"> name="LFC-Test"></span> |
| <span class="cp"> <provides /></span> |
| <span class="cp"> <controller field="m_state" /></span> |
| <span class="cp"> <properties></span> |
| <span class="cp"> <property name="conf" field="m_conf" method="setConf" /></span> |
| <span class="cp"> </properties></span> |
| <span class="cp"> </component></span> |
| <span class="cp"> <component</span> |
| <span class="cp"> classname="org.apache.felix.ipojo.test.scenarios.component.LifecycleControllerTest"</span> |
| <span class="cp"> name="LFC-Test-Immediate" immediate="true" architecture="true"></span> |
| <span class="cp"> <provides /></span> |
| <span class="cp"> <controller field="m_state" /></span> |
| <span class="cp"> <properties></span> |
| <span class="cp"> <property name="conf" field="m_conf" method="setConf" /></span> |
| <span class="cp"> </properties></span> |
| <span class="cp"> </component></span> |
| <span class="cp"> </ipojo></span> |
| <span class="cp"> ]]></span> |
| <span class="nt"></metadata></span> |
| <span class="nt"></configuration></span> |
| <span class="nt"></execution></span> |
| <span class="nt"></executions></span> |
| <span class="nt"></plugin></span> |
| </pre></div> |
| </div> |
| </div> |
| |
| <hr/> |
| |
| <div class="container"> |
| <footer id="footer"> |
| <div class="row"> |
| <div class="trademarkFooter span7"> |
| Apache Felix, Felix, Apache, the Apache feather logo, and the Apache Felix project |
| logo are trademarks of The Apache Software Foundation. All other marks mentioned |
| may be trademarks or registered trademarks of their respective owners. |
| </div> |
| <div class="timestamp span3 offset2"> |
| Rev. 1700393 by cziegeler on Tue, 1 Sep 2015 06:04:06 +0000 |
| </div> |
| </div> |
| </footer> |
| </div> |
| </body> |
| |
| <script type="text/javascript"> |
| var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); |
| document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); |
| </script> |
| |
| <script type="text/javascript"> |
| try{ |
| var pageTracker = _gat._getTracker("UA-1518442-4"); |
| pageTracker._trackPageview(); |
| } catch(err) {} |
| </script> |
| |
| </html> |