felix-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From conflue...@apache.org
Subject [CONF] Apache Felix: Felix Integration with Eclipse (page edited)
Date Sat, 12 May 2007 23:06:00 GMT
<html>
<head>
    <base href="http://cwiki.apache.org/confluence" />
    <style type="text/css">
    <!--
    body, p, td, table, tr, .bodytext, .stepfield {
	font-family: Verdana, arial, sans-serif;
	font-size: 11px;
	line-height: 16px;
	color: #000000;
	font-weight: normal;
}
#PageContent {
	text-align: left;
	background-color: #fff;
	padding: 0px;
	margin: 0px;
    padding-bottom:20px;
}
/*
** when this stylesheet is used for the Tiny MCE Wysiwyg editor's edit area, we can't
** use an id=PageContent or class=wiki-content, so we must
** set the body style to that used for PageContent, and p to that used for wiki-content.
*/

body {
	margin: 0px;
	padding: 0px;
	text-align: center;
    background-color: #f0f0f0;
}

@media print {

body {
    background-color: #fff;
}

}

.monospaceInput {
    font:12px monospace
}

.wiki-content p, .commentblock p {
    margin: 16px 0px 16px 0px;
    padding: 0px;
}

.wiki-content-preview {
    padding: 5px;
    border-left: 1px solid #3c78b5;
    border-right: 1px solid #3c78b5;
}

ul, ol {
    margin-top: 2px;
    margin-bottom: 2px;
    padding-top: 0px;
    padding-bottom: 0px;
}

pre {
    padding: 0px;
    margin-top: 5px;
    margin-left: 15px;
    margin-bottom: 5px;
    margin-right: 5px;
    text-align: left;
}

.helpheading {
    font-weight: bold;
    background-color: #D0D9BD;
        border-bottom: 1px solid #3c78b5;
        padding: 4px 4px 4px 4px;
        margin: 0px;
        margin-top: 10px;
}
.helpcontent {
        padding: 4px 4px 20px 4px;
    background-color: #f5f7f1;
}

.code {
 	border: 1px dashed #3c78b5;
    font-size: 11px;
	font-family: Courier;
    margin: 10px;
	line-height: 13px;
}

.focusedComment {
    background: #ffffce;
}

.commentBox, .focusedComment {
    padding: 10px;
    margin: 5px 0 5px 0;
    border: 1px #bbb solid;
}

.codeHeader {
    background-color: #f0f0f0;
 	border-bottom: 1px dashed #3c78b5;
    padding: 3px;
	text-align: center;
}

.codeContent {
    text-align: left;
    background-color: #f0f0f0;
    padding: 3px;
}

.preformatted {
 	border: 1px dashed #3c78b5;
    font-size: 11px;
	font-family: Courier;
    margin: 10px;
	line-height: 13px;
}

.preformattedHeader {
    background-color: #f0f0f0;
 	border-bottom: 1px dashed #3c78b5;
    padding: 3px;
	text-align: center;
}

.preformattedContent {
    background-color: #f0f0f0;
    padding: 3px;
}

.panel {
 	border: 1px dashed #3c78b5;
    margin: 10px;
    margin-top: 0px;
}

.panelHeader {
    background-color: #f0f0f0;
 	border-bottom: 1px dashed #3c78b5;
    padding: 3px;
	text-align: center;
}

.panelContent {
    background-color: #f0f0f0;
    padding: 5px;
}

.anonymousAlert {
    background-color: #f0f0f0;
 	border: 1px dashed red;
    font-size: 11px;
    padding: 10px 5px 10px 5px;
    margin: 4px;
	line-height: 13px;
}

.lockAlert {
    background-color: #f0f0f0;
    width: 50%;
 	border: 1px dashed red;
    font-size: 11px;
    padding: 10px 5px 10px 5px;
    margin: 4px;
	line-height: 13px;
}


.code-keyword {
  color: #000091;
  background-color: inherit;
}

.code-object {
  color: #910091;
  background-color: inherit;
}

.code-quote {
  color: #009100;
  background-color: inherit;
}

.code-comment {
  color: #808080;
  background-color: inherit;
}


.code-xml .code-keyword {
  color: inherit;
  font-weight: bold;
}

.code-tag {
  color: #000091;
  background-color: inherit;
}

.breadcrumbs {
    background-color: #f0f0f0;
 	border-color: #3c78b5;
	border-width: 1px 0px 1px 0px;
	border-style: solid;
    font-size: 11px;
    padding: 3px 0px 3px 0px;
}

.navmenu {
    border: 1px solid #ccc;
}

.menuheading {
    font-weight: bold;
    background-color: #f0f0f0;
 	border-bottom: 1px solid #3c78b5;
	padding: 4px 4px 2px 4px;
}

.menuitems {
	padding: 4px 4px 20px 4px;
}

.rightpanel {
    border-left: 1px solid #ccc;
    border-bottom: 1px solid #ccc;
}

#helpheading {
    text-align: left;
    font-weight: bold;
    background-color: #D0D9BD;
 	border-bottom: 1px solid #3c78b5;
	padding: 4px 4px 4px 4px;
	margin: 0px;
}
#helpcontent {
	padding: 4px 4px 4px 4px;
    background-color: #f5f7f1;
}
.helptab-unselected {
    font-weight: bold;
	padding: 5px;
    background-color: #f5f7f1;
}
.helptab-selected {
    font-weight: bold;
    background-color: #D0D9BD;
	padding: 5px;
}
.helptabs {
    margin: 0px;
    background-color: #f5f7f1;
	padding: 5px;
}
.infopanel-heading {
    font-weight: bold;
	padding: 4px 0px 2px 0px;
}

.pagebody {
}

.pageheader {
	padding: 5px 5px 5px 0px;
 	border-bottom: 1px solid #3c78b5;
}

.pagetitle {
	font-size: 22px;
	font-weight: bold;
	font-family: Arial, sans-serif;
	color: #003366;
}

.newpagetitle {
    color: #ccc !important;
}

.steptitle {
	font-size: 18px;
	font-weight: bold;
	font-family: Arial, sans-serif;
	color: #003366;
	margin-bottom: 7px;
}

.substeptitle {
    font-size: 12px;
    font-weight: bold;
    font-family: Arial, sans-serif;
    color: #003366;
    margin: 2px 4px 4px 4px;
    padding: 2px 4px 1px 4px;
}

.stepdesc {
    font-family: Verdana, arial, sans-serif;
	font-size: 11px;
	line-height: 16px;
	font-weight: normal;
    color: #666666;
    margin-top: 7px;
    margin-bottom: 7px;
}

.steplabel {
    font-weight: bold;
    margin-right: 4px;
    color: black;
    float: left;
    width: 15%;
    text-align: right;
}

.stepfield {
    background: #f0f0f0;
    padding: 5px;
}

.submitButtons{
    margin-top:5px;
    text-align:right;
}

.formtitle {
	font-size: 12px;
	font-weight: bold;
	font-family: Arial, sans-serif;
	color: #003366;
}

.sectionbottom {
    border-bottom: 1px solid #3c78b5;
}

.topRow {
    border-top: 2px solid #3c78b5;
}

.tabletitle {
	font-size: 14px;
	font-weight: bold;
	font-family: Arial, sans-serif;
    padding: 3px 0px 2px 0px;
    margin: 8px 4px 2px 0px;
	color: #003366;
	border-bottom: 2px solid #3c78b5;
}
.pagesubheading {
    color: #666666;
    font-size: 10px;
    padding: 0px 0px 5px 0px;
}

HR {
	color: 3c78b5;
	height: 1;
}

A:link, A:visited, A:active, A:hover {
	color: #003366;
}

h1 A:link, h1 A:visited, h1 A:active {
	text-decoration: none;
}

h1 A:hover {
    border-bottom: 1px dotted #003366;
}

.wiki-content > :first-child, .commentblock > :first-child {
    margin-top: 3px;
}

.logocell {
    padding: 10px;
}

input {
	font-family: verdana, geneva, arial, sans-serif;
	font-size: 11px;
	color: #000000;
}

textarea, textarea.editor {
	font-family: verdana, geneva, arial, sans-serif;
	font-size: 11px;
	color: #333333;
}

/* use logoSpaceLink instead.
.spacenametitle {
	font: 21px/31px Impact, Arial, Helvetica;
    font-weight: 100;
    color: #999999;
	margin: 0px;
}
.spacenametitle img {
  margin: 0 0 -4px 0;
}
.spacenametitle a {
    text-decoration: none;
    color: #999999;
}
.spacenametitle a:visited {
    text-decoration: none;
    color: #999999;
}*/

.spacenametitle-printable {
	font: 20px/25px Impact, Arial, Helvetica;
    font-weight: 100;
    color: #999999;
	margin: 0px;
}
.spacenametitle-printable a {
    text-decoration: none;
    color: #999999;
}
.spacenametitle-printable a:visited {
    text-decoration: none;
    color: #999999;
}

.blogDate {
	font-weight: bold;
	text-decoration: none;
	color: black;
}

.blogSurtitle {
    background: #f0f0f0;
 	border: 1px solid #ddd;
	padding: 3px;
	margin: 1px 1px 10px 1px;
}

.blogHeading {
    font-size: 20px;
    line-height: normal;
    font-weight: bold;
    padding: 0px;
    margin: 0px;
}

.blogHeading a {
   text-decoration: none;
   color: black;
}

.endsection {
	align: right;
	color: #666666;
	margin-top: 10px;
}
.endsectionleftnav {
	align: right;
	color: #666666;
	margin-top: 10px;
}

h1 {
	font-size: 24px;
	line-height: normal;
	font-weight: bold;
	background-color: #f0f0f0;
	color: #003366;
 	border-bottom: 1px solid #3c78b5;
	padding: 2px;
	margin: 36px 0px 4px 0px;
}

h2 {
	font-size: 18px;
	line-height: normal;
	font-weight: bold;
	background-color: #f0f0f0;
 	border-bottom: 1px solid #3c78b5;
	padding: 2px;
	margin: 27px 0px 4px 0px;
}

h3 {
	font-size: 14px;
	line-height: normal;
	font-weight: bold;
	background-color: #f0f0f0;
	padding: 2px;
	margin: 21px 0px 4px 0px;
}

h4 {
	font-size: 12px;
	line-height: normal;
	font-weight: bold;
	background-color: #f0f0f0;
	padding: 2px;
	margin: 18px 0px 4px 0px;
}

h4.search {
	font-size: 12px;
	line-height: normal;
	font-weight: normal;
	background-color: #f0f0f0;
	padding: 4px;
	margin: 18px 0px 4px 0px;
}

h5 {
	font-size: 10px;
	line-height: normal;
	font-weight: bold;
	background-color: #f0f0f0;
	padding: 2px;
	margin: 14px 0px 4px 0px;
}

h6 {
	font-size: 8px;
	line-height: normal;
	font-weight: bold;
	background-color: #f0f0f0;
	padding: 2px;
	margin: 14px 0px 4px 0px;
}

.smallfont {
    font-size: 10px;
}
.descfont {
    font-size: 10px;
    color: #666666;
}
.smallerfont {
    font-size: 9px;
}
.smalltext {
    color: #666666;
    font-size: 10px;
}
.smalltext a {
    color: #666666;
}
.smalltext-blue {
    color: #3c78b5;
    font-size: 10px;
}
.surtitle {
    margin-left: 1px;
    margin-bottom: 5px;
    font-size: 14px;
    color: #666666;
}

/* css hack found here:  http://www.fo3nix.pwp.blueyonder.co.uk/tutorials/css/hacks/ */
.navItemOver { font-size: 10px; font-weight: bold; color: #ffffff; background-color: #003366; cursor: hand; voice-family: '\'}\''; voice-family:inherit; cursor: pointer;}
.navItemOver a { color: #ffffff; background-color:#003366; text-decoration: none; }
.navItemOver a:visited { color: #ffffff; background-color:#003366; text-decoration: none; }
.navItemOver a:hover { color: #ffffff; background-color:#003366; text-decoration: none; }
.navItem { font-size: 10px; font-weight: bold; color: #ffffff; background-color: #3c78b5; }
.navItem a { color: #ffffff; text-decoration: none; }
.navItem a:hover { color: #ffffff; text-decoration: none; }
.navItem a:visited { color: #ffffff; text-decoration: none; }

div.padded { padding: 4px; }
div.thickPadded { padding: 10px; }
h3.macrolibrariestitle {
    margin: 0px 0px 0px 0px;
}

div.centered { text-align: center; margin: 10px; }
div.centered table {margin: 0px auto; text-align: left; }

.tableview table {
    margin: 0;
}

.tableview th {
    text-align: left;
    color: #003366;
    font-size: 12px;
    padding: 5px 0px 0px 5px;
    border-bottom: 2px solid #3c78b5;
}
.tableview td {
    text-align: left;
    border-color: #ccc;
    border-width: 0px 0px 1px 0px;
    border-style: solid;
    margin: 0;
    padding: 4px 10px 4px 5px;
}

.grid {
    margin: 2px 0px 5px 0px;
    border-collapse: collapse;
}
.grid th  {
    border: 1px solid #ccc;
    padding: 2px 4px 2px 4px;
    background: #f0f0f0;
    text-align: center;
}
.grid td  {
    border: 1px solid #ccc;
    padding: 3px 4px 3px 4px;
}
.gridHover {
	background-color: #f9f9f9;
}

td.infocell {
    background-color: #f0f0f0;
}
.label {
	font-weight: bold;
	color: #003366;
}

label {
	font-weight: bold;
	color: #003366;
}

.error {
	background-color: #fcc;
}

.errorBox {
	background-color: #fcc;
    border: 1px solid #c00;
    padding: 5px;
    margin: 5px;
}

.errorMessage {
	color: #c00;
}

.success {
	background-color: #dfd;
}

.successBox {
	background-color: #dfd;
    border: 1px solid #090;
    padding: 5px;
    margin-top:5px;
    margin-bottom:5px;
}

blockquote {
	padding-left: 10px;
	padding-right: 10px;
	margin-left: 5px;
	margin-right: 0px;
	border-left: 1px solid #3c78b5;
}

table.confluenceTable
{
    margin: 5px;
    border-collapse: collapse;
}

/* Added as a temporary fix for CONF-4223. The table elements appear to be inheriting the border: none attribute from the sectionMacro class */
table.confluenceTable td.confluenceTd
{
    border-width: 1px;
    border-style: solid;
    border-color: #ccc;
    padding: 3px 4px 3px 4px;
}

/* Added as a temporary fix for CONF-4223. The table elements appear to be inheriting the border: none attribute from the sectionMacro class */
table.confluenceTable th.confluenceTh
{
    border-width: 1px;
    border-style: solid;
    border-color: #ccc;
    padding: 3px 4px 3px 4px;
    background-color: #f0f0f0;
    text-align: center;
}

td.confluenceTd
{
    border-width: 1px;
    border-style: solid;
    border-color: #ccc;
    padding: 3px 4px 3px 4px;
}

th.confluenceTh
{
    border-width: 1px;
    border-style: solid;
    border-color: #ccc;
    padding: 3px 4px 3px 4px;
    background-color: #f0f0f0;
    text-align: center;
}

DIV.small {
	font-size: 9px;
}

H1.pagename {
	margin-top: 0px;
}

IMG.inline  {}

.loginform {
    margin: 5px;
    border: 1px solid #ccc;
}

/* The text how the "This is a preview" comment should be shown. */
.previewnote { text-align: center;
                font-size: 11px;
                    color: red; }

/* How the preview content should be shown */
.previewcontent { background: #E0E0E0; }

/* How the system messages should be shown (DisplayMessage.jsp) */
.messagecontent { background: #E0E0E0; }

/* How the "This page has been modified..." -comment should be shown. */
.conflictnote { }

.createlink {
    color: maroon;
}
a.createlink {
    color: maroon;
}
.templateparameter {
    font-size: 9px;
    color: darkblue;
}

.diffadded {
    background: #ddffdd;
    padding: 1px 1px 1px 4px;
	border-left: 4px solid darkgreen;
}
.diffdeleted {
    color: #999;
    background: #ffdddd;
    padding: 1px 1px 1px 4px;
	border-left: 4px solid darkred;
}
.diffnochange {
    padding: 1px 1px 1px 4px;
	border-left: 4px solid lightgrey;
}
.differror {
    background: brown;
}
.diff {
    font-family: lucida console, courier new, fixed-width;
	font-size: 12px;
	line-height: 14px;
}
.diffaddedchars {
    background-color:#99ff99;
    font-weight:bolder;
}
.diffremovedchars {
    background-color:#ff9999;
    text-decoration: line-through;
    font-weight:bolder;
}

.greybackground {
    background: #f0f0f0
}

.greybox {
 	border: 1px solid #ddd;
	padding: 3px;
	margin: 1px 1px 10px 1px;
}

.borderedGreyBox {
    border: 1px solid #cccccc;
    background-color: #f0f0f0;
    padding: 10px;
}

.greyboxfilled {
 	border: 1px solid #ddd;
    background: #f0f0f0;
    padding: 3px;
	margin: 1px 1px 10px 1px;
}

.navBackgroundBox {
    padding: 5px 5px 5px 5px;
    font-size: 22px;
	font-weight: bold;
	font-family: Arial, sans-serif;
	color: white;
    background: #3c78b5;
    text-decoration: none;
}

.previewBoxTop {
	background-color: #f0f0f0;
    border-width: 1px 1px 0px 1px;
    border-style: solid;
    border-color: #3c78b5;
    padding: 5px;
    margin: 5px 0px 0px 0px;
    text-align: center;
}
.previewContent {
    background-color: #fff;
 	border-color: #3c78b5;
	border-width: 0px 1px 0px 1px;
	border-style: solid;
	padding: 10px;
	margin: 0px;
}
.previewBoxBottom {
	background-color: #f0f0f0;
    border-width: 0px 1px 1px 1px;
    border-style: solid;
    border-color: #3c78b5;
    padding: 5px;
    margin: 0px 0px 5px 0px;
    text-align: center;
}

.functionbox {
    background-color: #f0f0f0;
 	border: 1px solid #3c78b5;
	padding: 3px;
	margin: 1px 1px 10px 1px;
}

.functionbox-greyborder {
    background-color: #f0f0f0;
 	border: 1px solid #ddd;
	padding: 3px;
	margin: 1px 1px 10px 1px;
}

.search-highlight {
    background-color: #ffffcc;
}

/* normal (white) background */
.rowNormal {
    background-color: #ffffff;
 }

/* alternate (pale yellow) background */
.rowAlternate {
    background-color: #f7f7f7;
}

/* used in the list attachments table */
.rowAlternateNoBottomColor {
    background-color: #f7f7f7;
}

.rowAlternateNoBottomNoColor {
}

.rowAlternateNoBottomColor td {
    border-bottom: 0px;
}

.rowAlternateNoBottomNoColor td {
    border-bottom: 0px;
}

/* row highlight (grey) background */
.rowHighlight {
    background-color: #f0f0f0;

}

TD.greenbar {FONT-SIZE: 2px; BACKGROUND: #00df00; BORDER: 1px solid #9c9c9c; PADDING: 0px; }
TD.redbar {FONT-SIZE: 2px; BACKGROUND: #df0000; BORDER: 1px solid #9c9c9c; PADDING: 0px; }
TD.darkredbar {FONT-SIZE: 2px; BACKGROUND: #af0000; BORDER: 1px solid #9c9c9c; PADDING: 0px; }

TR.testpassed {FONT-SIZE: 2px; BACKGROUND: #ddffdd; PADDING: 0px; }
TR.testfailed {FONT-SIZE: 2px; BACKGROUND: #ffdddd; PADDING: 0px; }

.toolbar  {
    margin: 0px;
    border-collapse: collapse;
}

.toolbar td  {
    border: 1px solid #ccc;
    padding: 2px 2px 2px 2px;
    color: #ccc;
}

td.noformatting {
    border-width: 0px;
    border-style: none;
    text-align: center;
	padding: 0px;
}

.commentblock {
    margin: 12px 0 12px 0;
}

/*
 * Divs displaying the license information, if necessary.
 */
.license-eval, .license-none, .license-nonprofit {
    border-top: 1px solid #bbbbbb;
    text-align: center;
    font-size: 10px;
    font-family: Verdana, Arial, Helvetica, sans-serif;
}

.license-eval, .license-none {
    background-color: #ffcccc;
}

.license-eval b, .license-none b {
    color: #990000
}

.license-nonprofit {
    background-color: #ffffff;
}

/*
 * The shadow at the bottom of the page between the main content and the
 * "powered by" section.
 */
.bottomshadow {
    height: 12px;
    background-image: url("$req.contextPath/images/border/border_bottom.gif");
    background-repeat: repeat-x;
}

/*
 * Styling of the operations box
 */
.navmenu .operations li, .navmenu .operations ul {
    list-style: none;
    margin-left: 0;
    padding-left: 0;
}

.navmenu .operations ul {
    margin-bottom: 9px;
}

.navmenu .label {
    font-weight: inherit;
}

/*
 * Styling of ops as a toolbar
 */
.toolbar div {
    display: none;
}

.toolbar .label {
    display: none;
}

.toolbar .operations {
    display: block;
}

.toolbar .operations ul {
    display: inline;
    list-style: none;
    margin-left: 10px;
    padding-left: 0;
}

.toolbar .operations li {
    list-style: none;
    display: inline;
}

/* list page navigational tabs */
#foldertab {
padding: 3px 0px 3px 8px;
margin-left: 0;
border-bottom: 1px solid #3c78b5;
font: bold 11px Verdana, sans-serif;
}

#foldertab li {
list-style: none;
margin: 0;
display: inline;
}

#foldertab li a {
padding: 3px 0.5em;
margin-left: 3px;
border: 1px solid #3c78b5;
border-bottom: none;
background: #3c78b5;
text-decoration: none;
}

#foldertab li a:link { color: #ffffff; }
#foldertab li a:visited { color: #ffffff; }

#foldertab li a:hover {
color: #ffffff;
background: #003366;
border-color: #003366;
}

#foldertab li a.current {
background: white;
border-bottom: 1px solid white;
color: black;
}

#foldertab li a.current:link { color: black; }
#foldertab li a.current:visited { color: black; }
#foldertab li a.current:hover {
background: white;
border-bottom: 1px solid white;
color: black;
}

/* alphabet list */
ul#squaretab {
margin-left: 0;
padding-left: 0;
white-space: nowrap;
font: bold 8px Verdana, sans-serif;
}

#squaretab li {
display: inline;
list-style-type: none;
}

#squaretab a {
padding: 2px 6px;
border: 1px solid #3c78b5;
}

#squaretab a:link, #squaretab a:visited {
color: #fff;
background-color: #3c78b5;
text-decoration: none;
}

#squaretab a:hover {
color: #ffffff;
background-color: #003366;
border-color: #003366;
text-decoration: none;
}

#squaretab li a#current {
background: white;
color: black;
}

.blogcalendar * {
    font-family:verdana, arial, sans-serif;
    font-size:x-small;
    font-weight:normal;
    line-height:140%;
    padding:2px;
}


table.blogcalendar {
    border: 1px solid #3c78b5;
}

.blogcalendar th.calendarhead, a.calendarhead {
    font-size:x-small;
    font-weight:bold;
    padding:2px;
    text-transform:uppercase;
    background-color: #3c78b5;
    color: #ffffff;
    letter-spacing: .3em;
    text-transform: uppercase;
}

.calendarhead:visited {color: white;}
.calendarhead:active {color: white;}
.calendarhead:hover {color: white;}

.blogcalendar th {
    font-size:x-small;
    font-weight:bold;
    padding:2px;
    background-color:#f0f0f0;
}

.blogcalendar td {
    font-size:x-small;
    font-weight:normal;
}

.searchGroup { padding: 0 0 10px 0; background: #f0f0f0; }
.searchGroupHeading { font-size: 10px; font-weight: bold; color: #ffffff; background-color: #3c78b5; padding: 2px 4px 1px 4px; }
.searchItem { padding: 1px 4px 1px 4px; }
.searchItemSelected { padding: 1px 4px 1px 4px; font-weight: bold; background: #ddd; }

/* permissions page styles */
.permissionHeading {
    border-bottom: #bbb; border-width: 0 0 1px 0; border-style: solid; font-size: 16px; text-align: left;
}
.permissionTab {
    border-width: 0 0 0 1px; border-style: solid; background: #3c78b5; color: #ffffff; font-size: 10px;
}
.permissionSuperTab {
    border-width: 0 0 0 1px; border-style: solid; background: #003366; color: #ffffff;
}
.permissionCell {
    border-left: #bbb; border-width: 0 0 0 1px; border-style: solid;
}

/* warning panel */
.warningPanel { background: #FFFFCE; border:#F0C000 1px solid; padding: 8px; margin: 10px; }
/* alert panel */
.alertPanel { background: #FFCCCC; border:#C00 1px solid; padding: 8px; margin: 10px; }
/* info panel */
.infoPanel { background: #D8E4F1; border:#3c78b5 1px solid; padding: 8px; margin: 10px; }

/* side menu highlighting (e.g. space content screen) */
.optionPadded { padding: 2px; }
.optionSelected { background-color: #ffffcc; padding: 2px; border: 1px solid #ddd; margin: -1px; }
.optionSelected a { font-weight: bold; text-decoration: none; color: black; }

/* information macros */
.noteMacro { border-style: solid; border-width: 1px; border-color: #F0C000; background-color: #FFFFCE; text-align:left; margin-top: 5px; margin-bottom: 5px}
.warningMacro { border-style: solid; border-width: 1px; border-color: #c00; background-color: #fcc; text-align:left; margin-top: 5px; margin-bottom: 5px}
.infoMacro { border-style: solid; border-width: 1px; border-color: #3c78b5; background-color: #D8E4F1; text-align:left; margin-top: 5px; margin-bottom: 5px}
.tipMacro { border-style: solid; border-width: 1px; border-color: #090; background-color: #dfd; text-align:left; margin-top: 5px; margin-bottom: 5px}
.informationMacroPadding { padding: 5px 0 0 5px; }

table.infoMacro td, table.warningMacro td, table.tipMacro td, table.noteMacro td, table.sectionMacro td {
    border: none;
}

table.sectionMacroWithBorder td.columnMacro { border-style: dashed; border-width: 1px; border-color: #cccccc;}

.pagecontent
{
    padding: 10px;
    text-align: left;
}

/* styles for links in the top bar */
.topBarDiv a:link {color: #ffffff;}
.topBarDiv a:visited {color: #ffffff;}
.topBarDiv a:active {color: #ffffff;}
.topBarDiv a:hover {color: #ffffff;}
.topBarDiv {color: #ffffff;}

.topBar {
    background-color: #003366;
}


/* styles for extended operations */
.greyLinks a:link {color: #666666; text-decoration:underline;}
.greyLinks a:visited {color: #666666; text-decoration:underline;}
.greyLinks a:active {color: #666666; text-decoration:underline;}
.greyLinks a:hover {color: #666666; text-decoration:underline;}
.greyLinks {color: #666666; display:block; padding: 10px}

.logoSpaceLink {color: #999999; text-decoration: none}
.logoSpaceLink a:link {color: #999999; text-decoration: none}
.logoSpaceLink a:visited {color: #999999; text-decoration: none}
.logoSpaceLink a:active {color: #999999; text-decoration: none}
.logoSpaceLink a:hover {color: #003366; text-decoration: none}

/* basic panel (basicpanel.vmd) style */
.basicPanelContainer {border: 1px solid #3c78b5; margin-top: 2px; margin-bottom: 8px; width: 100%}
.basicPanelTitle {padding: 5px; margin: 0px; background-color: #f0f0f0; color: black; font-weight: bold;}
.basicPanelBody {padding: 5px; margin: 0px}

.separatorLinks a:link {color: white}
.separatorLinks a:visited {color: white}
.separatorLinks a:active {color: white}

.greynavbar {background-color: #f0f0f0; border-top: 1px solid #3c78b5; margin-top: 2px}

div.headerField {
    float: left;
    width: auto;
    height: 100%;
}

.headerFloat {
    margin-left: auto;
    width: 50%;
}

.headerFloatLeft {
    float: left;
    margin-right: 20px;
    margin-bottom: 10px;
}

#headerRow {
    padding: 10px;
}

div.license-personal {
   background-color: #003366;
   color: #ffffff;
}

div.license-personal a {
   color: #ffffff;
}

.greyFormBox {
    border: 1px solid #cccccc;
    padding: 5px;
}

/* IE automatically adds a margin before and after form tags. Use this style to remove that */
.marginlessForm {
    margin: 0px;
}

.openPageHighlight {
    background-color: #ffffcc;
    padding: 2px;
    border: 1px solid #ddd;
}

.editPageInsertLinks, .editPageInsertLinks a
{
    color: #666666;
    font-weight: bold;
    font-size: 10px;
}

/* Style for label heatmap. */
.top10 a {
    font-weight: bold;
    font-size: 2em;
    color: #003366;
}
.top25 a {
    font-weight: bold;
    font-size: 1.6em;
    color: #003366;
}
.top50 a {
    font-size: 1.4em;
    color: #003366;
}
.top100 a {
    font-size: 1.2em;
    color: #003366;
}

.heatmap {
    list-style:none;
    width: 95%;
    margin: 0px auto;
}

.heatmap a {
    text-decoration:none;
}

.heatmap a:hover {
    text-decoration:underline;
}

.heatmap li {
    display: inline;
}

.minitab {
padding: 3px 0px 3px 8px;
margin-left: 0;
margin-top: 1px;
margin-bottom: 0px;
border-bottom: 1px solid #3c78b5;
font: bold 9px Verdana, sans-serif;
text-decoration: none;
float:none;
}
.selectedminitab {
padding: 3px 0.5em;
margin-left: 3px;
margin-top: 1px;
border: 1px solid #3c78b5;
background: white;
border-bottom: 1px solid white;
color: #000000;
text-decoration: none;
}
.unselectedminitab {
padding: 3px 0.5em;
margin-left: 3px;
margin-top: 1px;
border: 1px solid #3c78b5;
border-bottom: none;
background: #3c78b5;
color: #ffffff;
text-decoration: none;
}

a.unselectedminitab:hover {
color: #ffffff;
background: #003366;
border-color: #003366;
}

a.unselectedminitab:link { color: white; }
a.unselectedminitab:visited { color: white; }

a.selectedminitab:link { color: black; }
a.selectedminitab:visited { color: black; }

.linkerror { background-color: #fcc;}

a.labelOperationLink:link {text-decoration: underline}
a.labelOperationLink:active {text-decoration: underline}
a.labelOperationLink:visited {text-decoration: underline}
a.labelOperationLink:hover {text-decoration: underline}

a.newLabel:link {background-color: #ddffdd}
a.newLabel:active {background-color: #ddffdd}
a.newLabel:visited {background-color: #ddffdd}
a.newLabel:hover {background-color: #ddffdd}

ul.square {list-style-type: square}

.inline-control-link {
    background: #ffc;
    font-size: 9px;
    color: #666;
    padding: 2px;
    text-transform: uppercase;
    text-decoration: none;
}


.inline-control-link a:link {text-decoration: none}
.inline-control-link a:active {text-decoration: none}
.inline-control-link a:visited {text-decoration: none}
.inline-control-link a:hover {text-decoration: none}

.inline-control-link {
    background: #ffc;
    font-size: 9px;
    color: #666;
    padding: 2px;
    text-transform: uppercase;
    text-decoration: none;
    cursor: pointer;
}

div.auto_complete {
    width: 350px;
    background: #fff;
}
div.auto_complete ul {
    border: 1px solid #888;
    margin: 0;
    padding: 0;
    width: 100%;
    list-style-type: none;
}
div.auto_complete ul li {
    margin: 0;
    padding: 3px;
}
div.auto_complete ul li.selected {
    background-color: #ffb;
}
div.auto_complete ul strong.highlight {
    color: #800;
    margin: 0;
    padding: 0;
}

/******* Edit Page Styles *******/
.toogleFormDiv{
    border:1px solid #A7A6AA;
    background-color:white;
    padding:5px;
    margin-top: 5px;
}

.toogleInfoDiv{
    border:1px solid #A7A6AA;
    background-color:white;
    display:none;
    padding:5px;
    margin-top: 10px;
}

.inputSection{
    margin-bottom:20px;
}

#editBox{
   border:1px solid lightgray;
   background-color:#F0F0F0;
}

/******* Left Navigation Theme Styles ********/
.leftnav li a {
    text-decoration:none;
    color:white;
    margin:0px;
    display:block;
    padding:2px;
    padding-left:5px;
    background-color: #3c78b5;
    border-top:1px solid #3c78b5;
}

.leftnav li a:active {color:white;}
.leftnav li a:visited {color:white;}
.leftnav li a:hover {background-color: #003366; color:white;}

/* Added by Shaun during i18n */
.replaced
{
    background-color: #33CC66;
}

.topPadding
{
    margin-top: 20px;
}

/* new form style */
.form-block {
    padding: 6px;
}
.form-error-block {
    padding: 6px;
    background: #fcc;
    border-top: #f0f0f0 1px solid;
    border-bottom: #f0f0f0 1px solid;
    margin-bottom: 6px;
    padding: 0 12px 0 12px;
}
.form-element-large {
    font-size: 16px;
    font-weight: bold;
    font-family: Arial, sans-serif;
    color: #003366;
}

.form-element-small {
    font-size: 12px;
    font-weight: bold;
    font-family: Arial, sans-serif;
    color: #003366;
}

.form-header {
    background: lightyellow;
    border-top: #f0f0f0 1px solid;
    border-bottom: #f0f0f0 1px solid;
    margin-bottom: 6px;
    padding: 0 12px 0 12px;
}
.form-header p, .form-block p, .form-error-block p {
    line-height: normal;
    margin: 12px 0 12px 0;
}
.form-example {
    color: #888;
    font-size: 11px;
}
.form-divider {
    border-bottom: #ccc 1px solid;
    margin-bottom: 6px;
}
.form-buttons {
    margin-top: 6px;
    border-top: #ccc 1px solid;
    border-bottom: #ccc 1px solid;
    background: #f0f0f0;
    padding: 10px;
    text-align: center;
}
.form-buttons input {
    width: 100px;
}
.form-block .error {
    padding: 6px;
    margin-bottom: 6px;
}
    -->
    </style>
</head>
<body>

<div id="PageContent">
<table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%"><tr>
<td valign="top" class="pagebody">

    <div class="pageheader">
        <span class="pagetitle">
            Page Edited :
            <a href="http://cwiki.apache.org/confluence/display/FELIX">FELIX</a> :
            <a href="http://cwiki.apache.org/confluence/display/FELIX/Felix+Integration+with+Eclipse">Felix Integration with Eclipse</a>
        </span>
    </div>

     <p>
        <a href="http://cwiki.apache.org/confluence/display/FELIX/Felix+Integration+with+Eclipse">Felix Integration with Eclipse</a>
        has been edited by             <a href="http://cwiki.apache.org/confluence/display/~heavy@ungoverned.org">Richard S. Hall</a>
            <span class="smallfont">(May 12, 2007)</span>.
     </p>
    
     <p>
                 <a href="http://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=27555&originalVersion=10&revisedVersion=11">(View changes)</a>
     </p>

    <span class="label">Content:</span><br/>
    <div class="greybox wiki-content"><h1><a name="FelixIntegrationwithEclipse-FelixintegrationinsideEclipse"></a>Felix integration inside Eclipse</h1>

<p>This tutorial describes how running Felix inside the Eclipse IDE. This tutorial is organized as follow :</p>
<ol>
	<li><a href="#FelixIntegrationwithEclipse-requirements" title="requirements on Felix Integration with Eclipse">Requirements</a></li>
	<li><a href="#FelixIntegrationwithEclipse-download" title="download on Felix Integration with Eclipse">Downloading Felix</a></li>
	<li><a href="#FelixIntegrationwithEclipse-compilation" title="compilation on Felix Integration with Eclipse">Felix Compilation</a></li>
	<li><a href="#FelixIntegrationwithEclipse-projects" title="projects on Felix Integration with Eclipse">Eclipse Projects creation</a></li>
	<li><a href="#FelixIntegrationwithEclipse-configuration" title="configuration on Felix Integration with Eclipse">Eclipse configuration</a></li>
	<li><a href="#FelixIntegrationwithEclipse-imports" title="imports on Felix Integration with Eclipse">Project imports in Eclipse</a></li>
	<li><a href="#FelixIntegrationwithEclipse-launching" title="launching on Felix Integration with Eclipse">Launching Felix</a></li>
	<li><a href="#FelixIntegrationwithEclipse-other" title="other on Felix Integration with Eclipse">Other information</a></li>
</ol>


<p>Feel free to send me an e-mail if you have some feedbacks on this tutorial to <span class="nobr"><a href="mailto:clement.escoffier@gmail.com" title="Send mail to clement.escoffier@gmail.com" rel="nofollow">clement.escoffier@gmail.com<sup><img class="rendericon" src="/confluence/images/icons/mail_small.gif" height="12" width="13" align="absmiddle" alt="" border="0"/></sup></a></span>.<br/>
<a name="FelixIntegrationwithEclipse-requirements"></a></p>
<h2><a name="FelixIntegrationwithEclipse-Requirements"></a>Requirements</h2>

<p>To integrate Felix inside Eclipse you need to install first :</p>
<ul>
	<li>Eclipse</li>
	<li>Maven</li>
	<li>Subversion</li>
</ul>


<p>This page explains briefly how to install these softwares.</p>

<h3><a name="FelixIntegrationwithEclipse-EclipseInstallation"></a>Eclipse Installation</h3>

<p>To install Eclipse, follow instructions given <span class="nobr"><a href="http://www.eclipse.org/downloads/" title="Visit page outside Confluence" rel="nofollow">here<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span>. The tutorial works with Eclipse 3.1 and 3.2.</p>

<h3><a name="FelixIntegrationwithEclipse-MavenInstallation"></a>Maven Installation</h3>

<p>Mavenis 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. To install Maven, follow instructions given <span class="nobr"><a href="http://maven.apache.org/download.html#Installation" title="Visit page outside Confluence" rel="nofollow">here<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span>.</p>

<p>Download a version superior or equal than 2.0.4. Felix compilation fails with anterior version.&nbsp; You can download Maven <span class="nobr"><a href="http://maven.apache.org/download.html" title="Visit page outside Confluence" rel="nofollow">here<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span>.</p>

<p><b><ins>TIPS :</ins></b>&nbsp;&nbsp; Maven use a local repository to store Jar files. This repository could grow up quickly. By default, this repository is in the <em>&#126;/.m2/repository directory</em>. You can create a new configuration in &lt;USER_HOME&gt;/.m2/settings.xml containing :</p>
<div class="panel"><div class="panelContent">
<p>&lt;settings&gt;<br/>
&lt;localRepository&gt;/path/to/your/desired/repository&lt;/localRepository&gt;<br/>
&lt;/settings&gt;</p>
</div></div>
<p><b><ins>TIPS :</ins></b>&nbsp;&nbsp; if you run this behind the proxy, update/create <em>~/.m2/settings.xml</em> , <span class="nobr"><a href="http://maven.apache.org/guides/mini/guide-proxies.html" title="Visit page outside Confluence" rel="nofollow">see detail<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span>.<br/>
<b><ins>TIPS :</ins></b>&nbsp;&nbsp; if you run under windows, config the <em>PATH</em> variable to be able to run "mvn".</p>

<h3><a name="FelixIntegrationwithEclipse-SubversionInstallation"></a>Subversion Installation</h3>

<p>The goal of the <span class="nobr"><a href="http://subversion.tigris.org/" title="Visit page outside Confluence" rel="nofollow">Subversion project<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span> is to build a <b>version    control system</b> that is a compelling replacement for CVS in the open source community.  The software is released under an Apache/BSD-styleopen source license. Felix sources are stores on an Subversion server. To get Felix, you need to download Felix sources on this server. Subversion is available <span class="nobr"><a href="http://subversion.tigris.org/project_packages.html" title="Visit page outside Confluence" rel="nofollow">here<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span>.</p>

<p><b><ins>Important</ins></b> <ins>:</ins> Subversion binary files need to be in the PATH variable of your system.<br/>
<a name="FelixIntegrationwithEclipse-download"></a></p>
<h2><a name="FelixIntegrationwithEclipse-DownloadingFelix"></a>Downloading Felix</h2>

<p>&nbsp;Felix sources are available&nbsp; on : <span class="nobr"><a href="https://svn.apache.org/repos/asf/incubator/felix" title="Visit page outside Confluence" rel="nofollow">https://svn.apache.org/repos/asf/incubator/felix<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span>.</p>

<p>To download sources, follow the instructions :</p>
<ul>
	<li>&nbsp;Create a directory for Felix</li>
</ul>


<ul>
	<li>&nbsp;In this directory launch the command :&nbsp;</li>
</ul>


<div class="panel"><div class="panelContent">
<p>svn co <span class="nobr"><a href="https://svn.apache.org/repos/asf/incubator/felix/trunk" title="Visit page outside Confluence" rel="nofollow">https://svn.apache.org/repos/asf/incubator/felix/trunk<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span></p>
</div></div>
<ul>
	<li>When the checkout is finished, you should see :&nbsp; [The revision number should be different]</li>
</ul>


<div class="panel"><div class="panelContent">
<p>Checked out revision 423849.</p>
</div></div>
<p>&nbsp;The Felix sources are in the trunk directory.</p>

<p><a name="FelixIntegrationwithEclipse-compilation"></a></p>
<h2><a name="FelixIntegrationwithEclipse-FelixCompilation%26nbsp%3B"></a>Felix Compilation&nbsp;</h2>

<p>&nbsp;This section describe the Felix compilation. The Felix compilation process is based on Maven. Maven has an issue with a multi-module project (as Felix). Consequently, Felix trunk has 2 pom files.</p>
<ul>
	<li>Go in the trunk directory</li>
	<li>Launch the commands :
<div class="panel"><div class="panelContent">
<p>mvn -f pom-new-plugin-xml clean install<br/>
mvn -f pom-old-plugin-xml clean install</p>
</div></div>
<p><ins>TIPS :</ins> Maven will download a lot of jar files. The network transfert can fail. So, if a <b>Build error</b> appears, re-try the command.</p></li>
</ul>


<p>After each command, you should see the a table like :<br/>
 [INFO] &#45;----------------------------------------------------------------------&#45;<br/>
 [INFO] Reactor Summary:<br/>
 [INFO] &#45;----------------------------------------------------------------------&#45;<br/>
 [INFO] Apache Felix (parent) ................................. SUCCESS [2.884s]<br/>
 [INFO] Maven OSGi Plugin ..................................... SUCCESS [2.874s]<br/>
 [INFO] Servlet 2.1 API ....................................... SUCCESS [0.541s]<br/>
 [INFO] OSGi R4 Core Bundle ................................... SUCCESS [0.210s]<br/>
 [INFO] OSGi R4 Compendium Bundle ............................. SUCCESS [0.340s]<br/>
 [INFO] Apache Felix Shell Service ............................ SUCCESS [0.161s]<br/>
 [INFO] Apache Felix OSGi Framework Implementation ............ SUCCESS [0.380s]<br/>
 [INFO] Apache Felix Shell Text Interface ..................... SUCCESS [0.130s]<br/>
 [INFO] Apache Felix Shell GUI ................................ SUCCESS [0.121s]<br/>
 [INFO] Apache Felix Bundle Repository Service ................ SUCCESS [0.240s]<br/>
 [INFO] Apache Felix Shell GUI Plugin ......................... SUCCESS [0.170s]<br/>
 [INFO] Apache Felix Daemon ................................... SUCCESS [0.110s]<br/>
 [INFO] Apache Felix Dependency Manager ....................... SUCCESS [0.681s]<br/>
 [INFO] Apache Felix Main ..................................... SUCCESS [1:38.392s]<br/>
 [INFO] Apache Felix Examples: Service Event Listener ......... SUCCESS [0.721s]<br/>
 [INFO] Apache Felix Examples: English Dictionary Service ..... SUCCESS [0.821s]<br/>
 [INFO] Apache Felix Examples: French Dictionary Service ...... SUCCESS [2.153s]<br/>
 [INFO] Apache Felix Examples: Dictionary Client .............. SUCCESS [0.601s]<br/>
 [INFO] Apache Felix Examples: Dynamic Dictionary Client ...... SUCCESS [0.941s]<br/>
 [INFO] Apache Felix Examples: Spell Check Service ............ SUCCESS [0.691s]<br/>
 [INFO] Apache Felix Examples: Spell Check Client ............. SUCCESS [2.244s]<br/>
 [INFO] Apache Felix Service Binder ........................... SUCCESS [1.402s]<br/>
 [INFO] Apache Felix Examples: Spell Check w/ Service Binder .. SUCCESS [2.052s]<br/>
 [INFO] Apache Felix WireAdmin ................................ SUCCESS [2.704s]<br/>
 [INFO] Apache Felix UPnP Extra ............................... SUCCESS [0.922s]<br/>
 [INFO] Apache Felix UPnP Base Driver ......................... SUCCESS [10.395s]<br/>
 [INFO] Apache Felix UPnP Tester .............................. SUCCESS [1.682s]<br/>
 [INFO] Apache Felix UPnP Sample TV ........................... SUCCESS [1.262s]<br/>
 [INFO] Apache Felix UPnP Sample Clock ........................ SUCCESS [1.382s]<br/>
 [INFO] Apache Felix UPnP Sample Binary-Light ................. SUCCESS [1.031s]<br/>
 [INFO] Apache Felix HTTP Service ............................. SUCCESS [2:56.354s]<br/>
 [INFO] Apache Felix Declarative Services ..................... SUCCESS [1.422s]<br/>
 [INFO] Apache Felix EventAdmin ............................... SUCCESS [1.412s]<br/>
 [INFO] Apache Felix EventAdmin Bridge UPnP ................... SUCCESS [0.761s]<br/>
 [INFO] Apache Felix EventAdmin Bridge Configuration .......... SUCCESS [0.671s]<br/>
 [INFO] Apache Felix EventAdmin Bridge UserAdmin .............. SUCCESS [1.172s]<br/>
 [INFO] Apache Felix EventAdmin Bridge WireAdmin .............. SUCCESS [0.681s]<br/>
 [INFO] Apache Felix iPOJO Metadata ........................... SUCCESS [0.641s]<br/>
 [INFO] Apache Felix iPOJO .................................... SUCCESS [16.674s]<br/>
 [INFO] Apache Felix iPOJO Maven Plugin ....................... SUCCESS [1:49.087s]<br/>
 [INFO] Apache Felix iPOJO Arch Command ....................... SUCCESS [3.274s]<br/>
 [INFO] &#45;----------------------------------------------------------------------&#45;<br/>
 [INFO] &#45;----------------------------------------------------------------------&#45;<br/>
 [INFO] BUILD SUCCESSFUL<br/>
 [INFO] &#45;----------------------------------------------------------------------&#45;<br/>
 [INFO] Total time: 7 minutes 32 seconds<br/>
 [INFO] Finished at: Tue Jul 18 09:43:13 CEST 2006<br/>
 [INFO] Final Memory: 13M/32M<br/>
 [INFO] &#45;----------------------------------------------------------------------&#45;</p>

<p><a name="FelixIntegrationwithEclipse-projects"></a></p>
<h2><a name="FelixIntegrationwithEclipse-EclipseProjectsCreation"></a>Eclipse Projects Creation</h2>

<p>&nbsp;The downloaded projects are not Eclipse projects. So you need to <em>transform</em> the projects in Eclipse project. In fact, Eclipse projects are configured with two files : .classpath (containing the classpath of the projects), and .project (descripbing the project). Of course, Maven can create these files from the pom.xml files.</p>

<p>To create Eclipse projects, launch in the trunk directory the following command :&nbsp;</p>

<div class="panel"><div class="panelContent">
<p>   mvn -Dpackaging=plugins eclipse:eclipse<br/>
   mvn -Dpackaging=bundle eclipse:eclipse<br/>
   mvn -Dpackaging=osgi-bundle eclipse:eclipse<br/>
   mvn -Dpackaging=ipojo-bundle eclipse:eclipse</p>
</div></div>

<p>After each command, you should see a table like this :<br/>
 [INFO] &#45;----------------------------------------------------------------------&#45;<br/>
 [INFO] Reactor Summary:<br/>
 [INFO] &#45;----------------------------------------------------------------------&#45;<br/>
 [INFO] Apache Felix (parent) ................................. SUCCESS [0.871s]<br/>
 [INFO] Maven OSGi Plugin ..................................... SUCCESS [3.445s]<br/>
 [INFO] Servlet 2.1 API ....................................... SUCCESS [0.160s]<br/>
 [INFO] OSGi R4 Core Bundle ................................... SUCCESS [0.051s]<br/>
 [INFO] OSGi R4 Compendium Bundle ............................. SUCCESS [0.080s]<br/>
 [INFO] Apache Felix Shell Service ............................ SUCCESS [0.050s]<br/>
 [INFO] Apache Felix OSGi Framework Implementation ............ SUCCESS [0.060s]<br/>
 [INFO] Apache Felix Shell Text Interface ..................... SUCCESS [0.060s]<br/>
 [INFO] Apache Felix Shell GUI ................................ SUCCESS [0.050s]<br/>
 [INFO] Apache Felix Bundle Repository Service ................ SUCCESS [0.070s]<br/>
 [INFO] Apache Felix Shell GUI Plugin ......................... SUCCESS [0.060s]<br/>
 [INFO] Apache Felix Daemon ................................... SUCCESS [0.100s]<br/>
 [INFO] Apache Felix Dependency Manager ....................... SUCCESS [0.040s]<br/>
 [INFO] Apache Felix Main ..................................... SUCCESS [0.281s]<br/>
 [INFO] Apache Felix Examples: Service Event Listener ......... SUCCESS [0.050s]<br/>
 [INFO] Apache Felix Examples: English Dictionary Service ..... SUCCESS [0.040s]<br/>
 [INFO] Apache Felix Examples: French Dictionary Service ...... SUCCESS [0.050s]<br/>
 [INFO] Apache Felix Examples: Dictionary Client .............. SUCCESS [0.050s]<br/>
 [INFO] Apache Felix Examples: Dynamic Dictionary Client ...... SUCCESS [0.050s]<br/>
 [INFO] Apache Felix Examples: Spell Check Service ............ SUCCESS [0.080s]<br/>
 [INFO] Apache Felix Examples: Spell Check Client ............. SUCCESS [0.050s]<br/>
 [INFO] Apache Felix Service Binder ........................... SUCCESS [0.050s]<br/>
 [INFO] Apache Felix Examples: Spell Check w/ Service Binder .. SUCCESS [0.050s]<br/>
 [INFO] Apache Felix WireAdmin ................................ SUCCESS [0.050s]<br/>
 [INFO] Apache Felix UPnP Extra ............................... SUCCESS [0.161s]<br/>
 [INFO] Apache Felix UPnP Base Driver ......................... SUCCESS [0.060s]<br/>
 [INFO] Apache Felix UPnP Tester .............................. SUCCESS [0.040s]<br/>
 [INFO] Apache Felix UPnP Sample TV ........................... SUCCESS [0.040s]<br/>
 [INFO] Apache Felix UPnP Sample Clock ........................ SUCCESS [0.040s]<br/>
 [INFO] Apache Felix UPnP Sample Binary-Light ................. SUCCESS [0.040s]<br/>
 [INFO] Apache Felix HTTP Service ............................. SUCCESS [1.232s]<br/>
 [INFO] Apache Felix Declarative Services ..................... SUCCESS [0.100s]<br/>
 [INFO] Apache Felix EventAdmin ............................... SUCCESS [0.090s]<br/>
 [INFO] Apache Felix EventAdmin Bridge UPnP ................... SUCCESS [0.090s]<br/>
 [INFO] Apache Felix EventAdmin Bridge Configuration .......... SUCCESS [0.080s]<br/>
 [INFO] Apache Felix EventAdmin Bridge UserAdmin .............. SUCCESS [0.040s]<br/>
 [INFO] Apache Felix EventAdmin Bridge WireAdmin .............. SUCCESS [0.050s]<br/>
 [INFO] Apache Felix iPOJO Metadata ........................... SUCCESS [0.041s]<br/>
 [INFO] Apache Felix iPOJO .................................... SUCCESS [0.050s]<br/>
 [INFO] Apache Felix iPOJO Maven Plugin ....................... SUCCESS [0.170s]<br/>
 [INFO] Apache Felix iPOJO Arch Command ....................... SUCCESS [0.050s]<br/>
 [INFO] &#45;----------------------------------------------------------------------&#45;<br/>
 [INFO] &#45;----------------------------------------------------------------------&#45;<br/>
 [INFO] BUILD SUCCESSFUL<br/>
 [INFO] &#45;----------------------------------------------------------------------&#45;<br/>
 [INFO] Total time: 25 seconds<br/>
 [INFO] Finished at: Tue Jul 18 09:46:57 CEST 2006<br/>
 [INFO] Final Memory: 9M/16M<br/>
 [INFO] &#45;----------------------------------------------------------------------&#45;</p>

<p><a name="FelixIntegrationwithEclipse-configuration"></a></p>
<h2><a name="FelixIntegrationwithEclipse-EclipseConfiguration"></a>Eclipse Configuration</h2>

<p>Before importing Felix projects inside Eclipse, you need to configure an Eclipse variable. This variable points on the Maven repository. Indeed, the Eclipse project creation will create project dependencies and library dependencies. These librairies should be in the Maven repository. These dependencies are described in terms of the M2_REPO variable. So you need to configure this variable in Eclipse.</p>

<p>To achieve this, go in the : Window - Preference. Then look for the Java - Build Path - ClassPath Variables<br/>
<img src="/confluence/download/attachments/27555/add_var.png" align="absmiddle" border="0" /><br/>
&nbsp;To create the variable, click on new. The variable name is <b>M2_REPO.</b> The variable point onto a folder. Select the maven repository folder (in the image : f:\maven_repo).&nbsp;</p>

<p><a name="FelixIntegrationwithEclipse-imports"></a></p>
<h2><a name="FelixIntegrationwithEclipse-ProjectsimportationinEclipse%26nbsp%3B"></a>Projects importation in Eclipse&nbsp;</h2>

<p>Now we can import Feluix projects in Eclipse. It is not useful to imports all Felix projects. To be able to run Felix inside Eclipse you need to import the following projects :</p>
<ul>
	<li>org.apache.felix.main</li>
	<li>org.apache.felix.framework</li>
	<li>org.osgi.core</li>
	<li>org.apache.felix.shell</li>
	<li>org.apache.felix.shell.tui</li>
	<li>org.apache.felix.bundlerepository</li>
</ul>


<p>To import project, click on File - Import - Existing Projects into Workspace :<br/>
<img src="/confluence/download/attachments/27555/project_import.png" align="absmiddle" border="0" /><br/>
&nbsp;Then choose the projects :</p>
<ul>
	<li>Select the trunk directory</li>
	<li>Select the wanted projects<br/>
<img src="/confluence/download/attachments/27555/felix_imports.png" align="absmiddle" border="0" /></li>
</ul>


<p>&nbsp;When you has finished to choose your projects, clic on <em>Finish.</em> When the workspaces has finish the import, you should see something like the next image in your project list :<br/>
<img src="/confluence/download/attachments/27555/felix_projects.png" align="absmiddle" border="0" />&nbsp;&nbsp;</p>

<p><a name="FelixIntegrationwithEclipse-launching"></a></p>
<h2><a name="FelixIntegrationwithEclipse-LaunchingFelix"></a>Launching Felix</h2>

<p>Now, we are able to configure Eclipse to launch Felix. To achive this go in the org.apache.felix.main project, and add the bin/felix.jar to the build path. <br/>
You should obtain something like the following structure:</p>

<p><img src="/confluence/download/attachments/27555/main_project.png" align="absmiddle" border="0" /></p>

<p>In addition, you need to update the project build path by :</p>
<ul>
	<li>Removing the link on the project org.apache.felix.framework</li>
	<li>Add a libraries point on the org.apachfe.felix.framework jar contained in the maven repository (M2_REPO/org/apache/felix/org.apache.felix.framework/0.9.0-incubator-SNAPSHOT/org.apache.felix.framework-0.9.0-incubator-SNAPSHOT.jar)</li>
</ul>


<p>Let's go configure the "Run Configuration" :</p>
<ul>
	<li>Go in the Run - Run ...</li>
	<li>Create a new Run configuration named Felix</li>
	<li>Configure the Run configuration as following</li>
</ul>


<p><img src="/confluence/download/attachments/27555/choose_Main.png" align="absmiddle" border="0" /></p>

<p><b><em>IMPORTANT :</em></b> Choose the Main class contained in the felix.jar file.</p>

<p>Then, to launch Felix, just run this configuration. You should see in the console view :</p>

<p><img src="/confluence/download/attachments/27555/console.png" align="absmiddle" border="0" /></p>

<p><a name="FelixIntegrationwithEclipse-other"></a></p>
<h2><a name="FelixIntegrationwithEclipse-OtherInformation"></a>Other Information</h2>

<p>Now your can launch Felix inside Eclipse. You can debug your bundles in Eclipse (with the Eclipse debugger too), by launching your Felix in Debug Mode and by inserting breakpoint in your bundle code.</p>

<p>Moreover, it is possible to compile your bundle with Maven directly inside Eclipse, by configuring Maven as an External Tools. See the Maven guide for further information.</p>

<p>If you have any question on this tutorial, does not hesitate to send me an e-mail. </p></div>


</td></tr></table></div>
<p>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
    <tr>
        <td height="12" background="http://cwiki.apache.org/confluence/images/border/border_bottom.gif"><img src="http://cwiki.apache.org/confluence/images/border/spacer.gif" width="1" height="1" border="0"/></td>
    </tr>
</table>

<div class="smalltext">
    Powered by
    <a href="http://www.atlassian.com/software/confluence/default.jsp?clicked=footer" class="smalltext">Atlassian Confluence</a>
    (Version: 2.2.9 Build:#527 Sep 07, 2006)
    -
    <a href="http://jira.atlassian.com/secure/BrowseProject.jspa?id=10470" class="smalltext">Bug/feature request</a><br/>
    <br>
    <a href="http://cwiki.apache.org/confluence/users/viewnotifications.action">Unsubscribe or edit your notifications preferences</a>

</div>

</body>
</html>


Mime
View raw message