blob: 91c4c276e7b1ea5085546153af34754e21804ad7 [file] [log] [blame]
<?xml version='1.0' ?><!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter>
<title>Installation and Release Notes</title>
<section id="Features">
<title>Features</title>
<para>The Virgo Tooling/IDE concept concerns the whole Virgo tooling (that was available inside SpringSource Tool Suite) being put in a separate project. The tooling supports the following: </para>
<itemizedlist>
<listitem>
<para>Bundle projects </para>
</listitem>
<listitem>
<para>Par projects </para>
</listitem>
<listitem>
<para>Plan files/projects </para>
</listitem>
<listitem>
<para>Web Bundles </para>
</listitem>
<listitem>
<para>New from release 1.5.0: PDE Plug-in projects (created via a dedicated Wizard)</para>
</listitem>
<listitem>
<para>Deployment to a Virgo Server in the server view.</para>
</listitem>
</itemizedlist>
</section>
<section id="Installation">
<title>Installation</title>
<section id="Install_Eclipse">
<title>Install Eclipse</title>
<para>If you're not installing into an existing Eclipse, you'll need one. </para>
<para>Eclipse for Java EE developers is recommended.</para>
</section>
<section id="Install_Virgo">
<title>Install Virgo</title>
<orderedlist>
<listitem>
<para>Select
<emphasis role="italic">Help&gt;Install New Software..</emphasis>
</para>
</listitem>
<listitem>
<para>Enter one of the Virgo update sites below.</para>
</listitem>
<listitem>
<para>Select &quot;Virgo Tools&quot; feature and click install.</para>
</listitem>
</orderedlist>
<para>&lt;span style=&quot;color:#FF0000&quot;&gt;&lt;b&gt;Note:&lt;/b&gt; Select &lt;i&gt;only&lt;/i&gt; Virgo Tooling. This is a composite site, and the other features are &lt;i&gt;not&lt;/i&gt; designed to work within the Eclipse IDE.&lt;/span&gt;</para>
</section>
<section id="Update_Sites">
<title>Update Sites</title>
<variablelist>
<varlistentry>
<term>Milestone: &lt;code&gt;
<ulink url="http://download.eclipse.org/virgo/milestone/tooling&amp;lt;/code&amp;gt">http://download.eclipse.org/virgo/milestone/tooling&amp;lt;/code&amp;gt</ulink>; (Recommended)
</term>
</varlistentry>
<varlistentry>
<term>Snapshot: &lt;code&gt;
<ulink url="http://download.eclipse.org/virgo/snapshot/tooling&amp;lt;/code&amp;gt">http://download.eclipse.org/virgo/snapshot/tooling&amp;lt;/code&amp;gt</ulink>; (Bleeding Edge)
</term>
</varlistentry>
</variablelist>
<para>Many users will also want to install the M2E release at: &lt;code&gt;
<ulink url="http://download.eclipse.org/technology/m2e/releases&amp;lt;/code&amp;gt">http://download.eclipse.org/technology/m2e/releases&amp;lt;/code&amp;gt</ulink>;. (You'll need this to run the greenpages examples.)
</para>
</section>
</section>
<section id="Known_Issues">
<title>Known Issues</title>
<itemizedlist>
<listitem>
<para>Manifest generation does not seem to be working properly.
<ulink url="https://bugs.eclipse.org/bugs/show_bug.cgi?id=379233">https://bugs.eclipse.org/bugs/show_bug.cgi?id=379233</ulink>
</para>
</listitem>
<listitem>
<para>Other significant bugs still exist. Please see these release train bugs for a current list, and please report any other issues you discover:</para>
<itemizedlist>
<listitem>
<para>368783: Server management UI bug train
<ulink url="https://bugs.eclipse.org/bugs/show_bug.cgi?id=368783">https://bugs.eclipse.org/bugs/show_bug.cgi?id=368783</ulink>
</para>
</listitem>
<listitem>
<para>368785: Server runtime support bug train
<ulink url="https://bugs.eclipse.org/bugs/show_bug.cgi?id=368785">https://bugs.eclipse.org/bugs/show_bug.cgi?id=368785</ulink>
</para>
</listitem>
<listitem>
<para>368782: Plugin packaging issues bug train
<ulink url="https://bugs.eclipse.org/bugs/show_bug.cgi?id=368782">https://bugs.eclipse.org/bugs/show_bug.cgi?id=368782</ulink>
</para>
</listitem>
<listitem>
<para>You can see all open bugs
<ulink url="https://bugs.eclipse.org/bugs/buglist.cgi?list_id=1289794;query_format=advanced;bug_status=NEW;bug_status=ASSIGNED;bug_status=REOPENED;component=tooling;product=Virgo">here</ulink>.
</para>
</listitem>
</itemizedlist>
</listitem>
</itemizedlist>
</section>
<section id="Maven_plugin">
<title>Maven plugin</title>
<para>To support the development of OSGi bundles for Eclipse Virgo with Maven a Maven plugin is available. This plugin is able to start/stop a local Eclipse Virgo instance. Moreover it is possible to deploy/undeploy/refresh bundles via Maven. </para>
<section id="Build">
<title>Build</title>
<para>In order to use the plugin one has to download the source code from
<ulink url="https://github.com/frieder/virgo-maven-plugin">Github</ulink>&amp;nbsp;and build the binary manually. This can be easily done by executing the following Maven command in the root folder of the plugin where the pom.xml file is located.
&lt; pre&gt;mvn clean install&lt;/pre&gt;
Moreover to generate the documentation just execute the following Maven command (or take the one provided in the repository on Github).
&lt; pre&gt;mvn clean&amp;nbsp;plugin:xdoc javadoc:javadoc jxr:jxr site
&lt; /pre&gt;
</para>
</section>
<section id="Goals">
<title>Goals</title>
<para>The plugin provides a set of Maven goals that allow different actions. </para>
<informaltable>
<tr>
<td>
<emphasis role="bold">Goal</emphasis>
</td>
<td>
<emphasis role="bold">Description</emphasis>
</td>
</tr>
<tr>
<td>&lt;code&gt;virgo:start&lt;/code&gt; </td>
<td>Starts a Virgo instance by executing the provided startup script. &lt;br&gt; </td>
</tr>
<tr>
<td>&lt;code&gt;virgo:shutdown&lt;/code&gt; </td>
<td>Stops a running Virgo instance.</td>
</tr>
<tr>
<td>&lt;code&gt;virgo:immediateShutdown&lt;/code&gt; </td>
<td>Stops a running Virgo instance immediately.</td>
</tr>
<tr>
<td>&lt;code&gt;virgo:deploy&lt;/code&gt; </td>
<td>Deploys an OSGi bundle to a running Virgo instance.</td>
</tr>
<tr>
<td>&lt;code&gt;virgo:undeploy&lt;/code&gt; </td>
<td>Undeploys an OSGi bundle from a running Virgo instance.</td>
</tr>
<tr>
<td>&lt;code&gt;virgo:refresh&lt;/code&gt; </td>
<td>Refreshs an already installed module on a running Virgo instance.</td>
</tr>
<tr>
<td>&lt;code&gt;virgo:bundleRefresh&lt;/code&gt; </td>
<td>Refreshs an already installed OSGi bundle on a running Virgo instance.</td>
</tr>
</informaltable>
</section>
<section id="Simple_example_POM">
<title>Simple example POM</title>
<para>Once the plugin has been build and installed in the local Maven repository it can be used within a Maven project. Following is a simple example of a pom file that uses the Maven plugin.&amp;nbsp;
&lt; pre&gt;&amp;lt;project xmlns=&quot;
<ulink url="http://maven.apache.org/POM/4.0.0&amp;quot">http://maven.apache.org/POM/4.0.0&amp;quot</ulink>; xmlns:xsi=&quot;
<ulink url="http://www.w3.org/2001/XMLSchema-instance&amp;quot">http://www.w3.org/2001/XMLSchema-instance&amp;quot</ulink>;
xsi:schemaLocation=&quot;
<ulink url="http://maven.apache.org/POM/4.0.0">http://maven.apache.org/POM/4.0.0</ulink>
<ulink url="http://maven.apache.org/xsd/maven-4.0.0.xsd&amp;quot;&amp;amp;gt">http://maven.apache.org/xsd/maven-4.0.0.xsd&amp;quot;&amp;amp;gt</ulink>;
&amp;lt;modelVersion&amp;gt;4.0.0&amp;lt;/modelVersion&amp;gt;
&amp;lt;groupId&amp;gt;org.example.osgi&amp;lt;/groupId&amp;gt;
&amp;lt;artifactId&amp;gt;test-bundle&amp;lt;/artifactId&amp;gt;
&amp;lt;version&amp;gt;0.0.1-SNAPSHOT&amp;lt;/version&amp;gt;
&amp;lt;packaging&amp;gt;bundle&amp;lt;/packaging&amp;gt;
&amp;lt;name&amp;gt;OSGi Test Bundle&amp;lt;/name&amp;gt;
&amp;lt;properties&amp;gt;
&amp;lt;project.build.sourceEncoding&amp;gt;UTF-8&amp;lt;/project.build.sourceEncoding&amp;gt;
&amp;lt;/properties&amp;gt;
&amp;lt;build&amp;gt;
&amp;lt;plugins&amp;gt;
&amp;lt;plugin&amp;gt;
&amp;lt;groupId&amp;gt;org.apache.felix&amp;lt;/groupId&amp;gt;
&amp;lt;artifactId&amp;gt;maven-bundle-plugin&amp;lt;/artifactId&amp;gt;
&amp;lt;version&amp;gt;2.3.6&amp;lt;/version&amp;gt;
&amp;lt;extensions&amp;gt;true&amp;lt;/extensions&amp;gt;
&amp;lt;configuration&amp;gt;
&amp;lt;instructions&amp;gt;
&amp;lt;Bundle-SymbolicName&amp;gt;${project.groupId}.${project.artifactId}&amp;lt;/Bundle-SymbolicName&amp;gt;
&amp;lt;Bundle-Name&amp;gt;${project.name}&amp;lt;/Bundle-Name&amp;gt;
&amp;lt;Bundle-Version&amp;gt;${project.version}&amp;lt;/Bundle-Version&amp;gt;
&amp;lt;/instructions&amp;gt;
&amp;lt;/configuration&amp;gt;
&amp;lt;/plugin&amp;gt;
&amp;lt;plugin&amp;gt;
&amp;lt;groupId&amp;gt;net.flybyte.virgo&amp;lt;/groupId&amp;gt;
&amp;lt;artifactId&amp;gt;virgo-maven-plugin&amp;lt;/artifactId&amp;gt;
&amp;lt;version&amp;gt;1.0.0&amp;lt;/version&amp;gt;
&amp;lt;configuration&amp;gt;
&amp;lt;virgoRoot&amp;gt;C:/Java/virgo-tomcat-server-3.0.2.RELEASE&amp;lt;/virgoRoot&amp;gt;
&amp;lt;/configuration&amp;gt;
&amp;lt;/plugin&amp;gt;
&amp;lt;/plugins&amp;gt;
&amp;lt;/build&amp;gt;
&amp; lt;/project&amp;gt;
&lt; /pre&gt;
More examples can be found in the documentation. Following are some exemplary Maven commands.
&lt; pre&gt;mvn virgo:start &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;-- will start a Virgo instance
mvn clean package virgo:deploy &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;-- will create an artifact and deploy it to Virgo&lt;/pre&gt;
</para>
</section>
</section>
<section id="Importing_Virgo_Projects_into_Eclipse">
<title>Importing Virgo Projects into Eclipse</title>
<para>See
<ulink url="http://wiki.eclipse.org/Virgo/Committers#Eclipse_Setup">Eclipse Setup</ulink> under the Committers tab.
</para>
</section>
<section id="FAQ">
<title>FAQ</title>
<itemizedlist>
<listitem>
<para>
<emphasis role="bold">How do I turn on (or turn off) automatic Manifest generation? (Bundlor)</emphasis>
</para>
</listitem>
</itemizedlist>
<para>Bundlor is not used by default, you must create you own template file and then turn on incremental manifest generation. Right-click your Virgo project, select the Virgo subcategory from the context menu and select Enable (or Disable) Incremental Generation of MANIFEST.MF File. You can also modify this setting from the Overview page of the Bundle Manifest Editor, under the Bundle Actions section.</para>
<itemizedlist>
<listitem>
<para>
<emphasis role="bold">Sometimes I'd like to automatically update my Manifest without having to turn on the automatic Manifest setting. How can I do this?</emphasis>
</para>
</listitem>
</itemizedlist>
<para>Right-click your Virgo project, select the Virgo subcategory from the context menu and select Run Generation of MANIFEST.MF File. This command has a keybinding that you may customize through Eclipse's Keys preferences. You can also perform an automatic update of the Manifest from the Overview page of the Bundle Manifest Editor, under the Bundle Actions section.</para>
<itemizedlist>
<listitem>
<para>
<emphasis role="bold">Automatic Manifest generation doesn't appear to picking up changes to my source files.</emphasis>
</para>
</listitem>
</itemizedlist>
<para>Sometimes Manifest generation may behave differently depending on whether the tools are configured to scan source folders or to scan output folders. To modify this setting right-click your Virgo project, select properties and select the Virgo -&gt; Manifest Generation subcategory. If Manifest generation isn't working correctly for you, uncheck the &quot;Scan output folders instead of source folders to generate MANIFEST.MF&quot; setting and re-run the Manifest generation. If your Manifest is not being properly generated under either setting, please file a bug.</para>
<para>
<ulink url="/wiki/image:virgo-manifest-generation.png">image:virgo-manifest-generation.png</ulink>
</para>
<itemizedlist>
<listitem>
<para>
<emphasis role="bold">My Virgo project is validating its dependencies against the wrong Virgo runtime! How do I manage server runtimes for my Virgo projects?</emphasis>
</para>
</listitem>
</itemizedlist>
<para>If you've deployed your Virgo projects to multiple Virgo runtimes the tools will associate the project with each runtime, but will only validate against one runtime. In order to manage which Virgo runtime your bundle dependencies are validated against, right-click on the project, select Properties and select the Targeted Runtimes category. From this dialog you can give priority to a particular Virgo runtime.</para>
<para>
<ulink url="/wiki/image:virgo-targeted-runtimes.png">image:virgo-targeted-runtimes.png</ulink>
</para>
<itemizedlist>
<listitem>
<para>
<emphasis role="bold">How do I create a Web Application Bundle?</emphasis>
</para>
</listitem>
</itemizedlist>
<para>To create a web application bundle choose to create a normal bundle project, but on the Bundle Content panel select the additional property entitled &quot;Web Application Bundle&quot;. On the Bundle Properties panel enter a suitable context path for the application as the Web-ContextPath.</para>
<itemizedlist>
<listitem>
<para>
<emphasis role="bold">How do I export a Web Application Bundle (WAB)? Export -&gt; Bundle Project produces an incorrect product.</emphasis>
</para>
</listitem>
</itemizedlist>
<para>To export a WAB invoke Export -&gt; Web -&gt; WAR File</para>
<itemizedlist>
<listitem>
<para>
<emphasis role="bold">Virgo Jetty Server (VJS) does not startup correctly and I see a 503 error when I go to
<ulink url="http://localhost:8080/admin">http://localhost:8080/admin</ulink>
</emphasis>
</para>
</listitem>
</itemizedlist>
<para>This can happen after starting VJS clean because VJS is looking for a directory at $KERNEL_HOME/work/tmp but no tmp directory exists. A workaround is to start VJS from the command line without the -clean command, which will create the tmp directory. VJS can then be used from the tools. This bug and workaround are documented at
<ulink url="https://bugs.eclipse.org/bugs/show_bug.cgi?id=384288">https://bugs.eclipse.org/bugs/show_bug.cgi?id=384288</ulink>
</para>
<itemizedlist>
<listitem>
<para>
<emphasis role="bold">Can I get a deeper look into the state of the server from the Virgo Tools?</emphasis>
</para>
</listitem>
</itemizedlist>
<para>Yes! If you double-click a Virgo server runtime in the Servers view, you'll open up the server editor, with several pages of information. The Repository, Bundle Overview, Bundle Dependency Graph, and Server Console pages all give valuable insight into the state of the server. The Virgo perspective also provides several views into the Virgo Repository, Virgo Properties and Virgo Logs. See the Virgo Tooling Guide for more information.</para>
<itemizedlist>
<listitem>
<para>
<emphasis role="bold">I want to install Virgo Tools. Should I install all of this neat looking stuff under Virgo Add-ons?</emphasis>
</para>
</listitem>
</itemizedlist>
<para>We really don't recommend doing so (see
<link linkend="Install_Virgo">Install_Virgo</link>). Select only Virgo Tooling and Eclipse will take care of installing anything the tooling relies on.
</para>
<para>
<ulink url="/wiki/Category:Virgo">Category:Virgo</ulink>
<ulink url="/wiki/Category:EclipseRT">Category:EclipseRT</ulink>&lt;/rev&gt;&lt;/revisions&gt;&lt;/page&gt;&lt;/pages&gt;&lt;/query&gt;&lt;/api&gt;
</para>
</section>
</chapter>