开发者中心

Hello, OSGi!

概述

这个章节讲述了运行在OSGi体系上的Hello, world!。你需要不低于版本3.7.1的Eclipse来运行。 如果你已经有Eclipse, 先查看"About Eclipse"。

这个例子包含下面的步骤:

  • 在Eclipse里,安装QuarkIoE客户端库作为OSGi runtime。
  • 在Eclipse里,给你的agent配置一个OSGi plugin项目。
  • 编写agent代码。
  • 运行agent。

安装客户端库

下面是配置Eclipse和下载需要的客户端软件的步骤:

  • 转到"Preferences"菜单,然后选择"Plug-in Development", "Target Platform"。 点击"Add..."。
  • 确认选择"Nothing: Start with an empty target definition.",然后点击"Next"。输入"Quarkioe runtime"到"Name"栏。点击"Add..."。
  • 选择"Software Site",然后点击"Next"。
  • 为了获得Quarkioe runtime repository,点击"Add...",用"Quarkioe repository" 作为 "Name",然后"http://download.cumulocity.com/p2/repository" 作为 "Location"。点击"Ok"。
  • 在"Work with"下拉列表里,确认选择"Quarkioe repository"。选择"Quarkioe",然后点击"Finish"。 再次选择"Finish"关闭对话框。在"Target definitions"列表里选择"Quarkioe runtime"入口,然后点击"Ok"。
  • 这个流程,每个Eclipse workspace都需要执行一次。
QuarkIoE作为OSGi runtime配置

请不要使用"Install New Software"来下载客户端软件。这样会安装一个客户端,作为你使用的IDE的一部分。使用上面描述的"Target Platform", 单独安装SDK目标平台。

如果你想安装一个特定版本的OSGi runtime, 请先用http://download.cumulocity.com/p2/repository-version (用需要的版本号来替换 "version" ,例如"5.9.0")。

建立一个agent项目

选择 "New", "Project", "Plug-in Project"。例如,用"c8y.helloagent"作为项目名称,选择 "an OSGi framework", 点击 "Next",然后"Finish". (如果有询问,点击"Yes"来改变视图。)

打开manifest编辑器,点击"Dependencies"页面,用"Imported Packages"下面最右边的"Add" 按钮来添加下面的依赖关系。

  • c8y
  • com.cumulocity.rest.representation
  • com.cumulocity.rest.representation.inventory
  • com.cumulocity.sdk.client
  • com.cumulocity.sdk.client.inventory
  • com.cumulocity.model.authentication
  • org.slf4j
  • org.svenson

保存manifest文件。

编写agent代码

在src/c8y.helloagent/Activator.java里选择Activator类。 Eclipse自动生成代码后,在"start"方法里粘贴下面的代码。


  Platform platform = new PlatformImpl("<<your URL>>", new CumulocityCredentials("<<user>>", "<<password>>"));
    InventoryApi inventory = platform.getInventoryApi();
    ManagedObjectRepresentation mo = new ManagedObjectRepresentation();
    mo.setName("Hello, OSGi!");
    mo.set(new IsDevice());
    mo = inventory.create(mo);
    System.out.println("URL: " + mo.getSelf());
              

用你的URL (例如"https://myurl.cumulocity.com"), username 和 password 替换"<<yourUrl>>", "<<yourUser>>" and "<<yourPassword>>"。在编辑器里右键点击选择"Source", "Organize Imports"。这段代码做了什么, 参见basic "Hello, world!"

运行agent

右键点击"c8y.helloagent"项目,然后选择"Run as", "OSGi Framework"来运行agent。过一会,你将在控制台里看到创建的托管对象的URL。


URL: https://<<your URL>>/inventory/managedObjects/<<ID>>
              

显示一个错误信息? 查看故障排除部分

改进agent

做完了第一步,可以继续章节开发Java客户端 或者 完整示例

升级软件

如果你需要升级或者重新加载客户端软件, 按照下面的步骤:

  • 在preferences里,打开"Target Platform"页面, 选择"Quarkioe runtime",然后点击"Edit"。
  • 选择在位置列表里的链接,然后点击"Edit"。
  • 选择"Work with the list of software sites", 选择"Quarkioe repository" ,然后点击"Reload"。 点击"Ok", "Finish" ,然后再次"Finish"来关闭对话框。
  • 在目标平台列表里点击"Reload",然后点击"Ok"离开preferences对话框。
  • 你需要重新创建你的运行时配置, 就是说转到 "Run", "Run Configurations", 然后如果你有问题,双击"OSGi Framework"来创建新的运行配置。