我无法从代码中找到有关 启动 和 使用 Apache Felix的 信息。
我想做我可以 (或无法 做)的事情,可以用Apache Felix的Shell做。
例如,如何启动模块?
请帮忙。
因此,经过很多时间的尝试,这是 一个可能的解决方案 。
我们将有两个项目:
package module.a;
import org.osgi.framework.*;
public class Activator
implements BundleActivator, ServiceListener {
@Override
public void start(BundleContext bc)
throws Exception {
System.out.println("*** started");
bc.addServiceListener(this);
}
@Override
public void stop(BundleContext bc)
throws Exception {
bc.removeServiceListener(this);
System.out.println("*** stopped");
}
@Override
public void serviceChanged(ServiceEvent se) {
String s;
switch (se.getType()) {
case ServiceEvent.MODIFIED:
s = "modified";
break;
case ServiceEvent.REGISTERED:
s = "registered";
break;
case ServiceEvent.UNREGISTERING:
s = "unregistered";
break;
default:
s = "unknown";
}
System.out.println("= = = service changed: " + s);
}
}
Manifest-Version: 1.0
X-COMMENT: Main-Class will be added automatically by build
Bundle-Name: Module A
Bundle-Description: Module A
Bundle-Vendor: me
Bundle-Version: 1.0.0
Bundle-Activator: module.a.Activator
Import-Package: org.osgi.framework
package usage;
import java.util.*;
import org.apache.felix.framework.*;
import org.apache.felix.framework.util.*;
import org.osgi.framework.*;
public class Main {
static class HostActivator
implements BundleActivator {
private BundleContext context = null;
@Override
public void start(BundleContext bc) {
context = bc;
}
@Override
public void stop(BundleContext bc) {
context = null;
}
public BundleContext getContext() {
return context;
}
}
public static void main(String[] args)
throws Exception {
Map<String, Object> map = new HashMap<String, Object>();
map.put(Constants.FRAMEWORK_SYSTEMPACKAGES_EXTRA,
"some.module.i.dont.know; version=1.0.0");
HostActivator activator = new HostActivator();
List<Object> list = new LinkedList<Object>();
list.add(activator);
map.put(FelixConstants.SYSTEMBUNDLE_ACTIVATORS_PROP, list);
Felix f = new Felix(map);
System.out.println("starting OSGI...");
f.start();
Bundle b = f.getBundleContext().installBundle(
"file:../OsgiModuleA/dist/OsgiModuleA.jar"); // dirty path ;)
String bName = b.getLocation();
System.out.println("starting bundle " + bName);
b.start();
Set<String> inUse = new HashSet<String>();
for (ServiceReference sr : f.getServicesInUse()) {
inUse.add(sr.toString());
}
for (ServiceReference sr : f.getRegisteredServices()) {
String flag = (inUse.contains(sr.toString()) ? "[in use]" : "[ ]");
System.out.println("+ registered service: " + flag + " " + sr.toString());
}
System.out.println("stopping bundle " + bName);
b.stop();
System.out.println("uninstalling bundle " + bName);
b.uninstall();
System.out.println("stopping...");
f.stop();
f.waitForStop(1000);
}
}
starting OSGI...
starting bundle file:../OsgiModuleA/dist/OsgiModuleA.jar
*** started
+ registered service: [in use] [org.osgi.service.startlevel.StartLevel]
+ registered service: [ ] [org.osgi.service.packageadmin.PackageAdmin]
stopping bundle file:../OsgiModuleA/dist/OsgiModuleA.jar
*** stopped
uninstalling bundle file:../OsgiModuleA/dist/OsgiModuleA.jar
stopping...
我正在编写一个spring批处理应用程序,由需要按照特定顺序执行的不同作业组成。为此,我通过JobLauncher手动运行作业,并通过在属性文件中添加以下属性来禁用Spring批处理提供的自动启动特性:
问题内容: 我写了一个脚本来备份我的MySQL数据库,方法是: 一个cron每天晚上启动它,并将结果发送到另一台服务器。 清晰地显示在我的脚本中,每个人都可以以适当的权限查看它。我也被告知有关/ proc问题(可以在哪里查看cmd运行)。 MySQL文档说: 在命令行上指定密码应该被认为是不安全的。请参见第7.6节“保持密码安全”。 我在任何地方都找不到这个神奇的7.6节。 处理自动mysqldu
我想使用Java代码启动weblogic服务器,并尝试了许多选项。在我的计算机中,startweBlogic.cmd文件位于 D:\Oracle\Middleware\user_projects\domains\ass1\startweBlogic.cmd
根据 https://stackoverflow.com/a/13329907/3286489,我们可以更改 TextView 的字体系列。但是我如何使用 Java 代码进行设置呢?我找不到 API。
我已经为我的应用程序实现了材质设计,我希望用户能够自定义colorPrimary、colorPrimaryDark和colorAccent的颜色。怎么做? 我想有一个设置活动,用户可以选择自己的颜色,更改将应用于我的所有活动。谢谢
问题内容: 有什么方法可以使用C#以编程方式启用或禁用SQL SERVER触发器,还是我必须修改触发器本身以控制我的代码是否调用它? 问题答案: 通过SqlCommand执行DISABLE TRIGGER