mocklib-checkins Mailing List for mocklib (Page 20)
Brought to you by:
bittwidler,
fastdragon
You can subscribe to this list here.
2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(6) |
Jul
(1) |
Aug
(5) |
Sep
(3) |
Oct
|
Nov
|
Dec
(46) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
(54) |
Feb
(120) |
Mar
(31) |
Apr
(11) |
May
(8) |
Jun
(5) |
Jul
|
Aug
(22) |
Sep
(295) |
Oct
(6) |
Nov
(10) |
Dec
|
2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(9) |
Jun
|
Jul
(2) |
Aug
(2) |
Sep
|
Oct
|
Nov
(2) |
Dec
(8) |
2008 |
Jan
|
Feb
(1) |
Mar
|
Apr
(8) |
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(2) |
Nov
|
Dec
|
2009 |
Jan
|
Feb
(17) |
Mar
|
Apr
|
May
(3) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Nobody <fas...@us...> - 2006-02-21 10:48:00
|
Update of /cvsroot/mocklib/osgimgr/input/javasrc/osgi/test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5023/input/javasrc/osgi/test Added Files: MockBundle.java MockGetComponent.java MockSvcReference.java TestActivator.java Log Message: add osgimgr to mocklib project for now. --- NEW FILE: MockGetComponent.java --- package osgi.test; import biz.xsoftware.api.osgimgr.ConfigService; import biz.xsoftware.api.osgimgr.GetComponent; public class MockGetComponent implements GetComponent { private ConfigService svc; public MockGetComponent(ConfigService svc) { this.svc = svc; } public ConfigService getConfigService() { return svc; } } --- NEW FILE: TestActivator.java --- package osgi.test; import java.util.Dictionary; import java.util.Hashtable; import javax.management.ObjectName; import junit.framework.TestCase; import org.osgi.framework.BundleContext; import org.osgi.framework.BundleEvent; import org.osgi.framework.BundleListener; import org.ungoverned.gravity.servicebinder.impl.ArchitectureServiceImpl; import osgi.Activator; import osgi.BundleManager; import osgi.BundleManagerMBean; import osgi.Lifecycle; import osgi.LifecycleMBean; import biz.xsoftware.api.osgimgr.ConfigService; import biz.xsoftware.api.osgimgr.GetComponent; import biz.xsoftware.mock.CalledMethod; import biz.xsoftware.mock.MockObject; import biz.xsoftware.mock.MockObjectFactory; public class TestActivator extends TestCase { private MockObject mockCtx; private MockObject mockConfig; private MockBundle[] installed; private String osgiMgrBundleName = "osgibundleName"; private long osgiMgrId = 56; private long[] bundleIds; private String[] bundleNames; private Activator a; private BundleListener bundleList; private MockBundle osgiMgrBundle; public TestActivator() { super(); } public void setUp() throws Exception { mockCtx = MockObjectFactory.createMock(BundleContext.class); mockCtx.setIgnoredMethods(new String[] {"getBundle"}); mockConfig = MockObjectFactory.createMock(ConfigService.class); MockGetComponent mockGet = new MockGetComponent((ConfigService)mockConfig); new ArchitectureServiceImpl(); a = new Activator((GetComponent)mockGet); Dictionary<String, String> d = new Hashtable<String, String>(); d.put("Bundle-Name", osgiMgrBundleName); osgiMgrBundle = new MockBundle(d, osgiMgrId); //create already up and running Bundles.... installed = new MockBundle[3]; bundleIds = new long[2]; bundleIds[0] = 7; bundleIds[1] = 8; bundleNames = new String[2]; bundleNames[0] = "bundle0"; bundleNames[1] = "bundle1"; //mock bundle 1.... Dictionary<String, String> d1 = new Hashtable<String, String>(); d1.put("Bundle-Name", bundleNames[0]); installed[0] = new MockBundle(d1, bundleIds[0]); //mock bundle 2 has 2 ServiceReferences.... Dictionary<String, String> d2 = new Hashtable<String, String>(); d2.put("Bundle-Name", bundleNames[1]); installed[1] = new MockBundle(d2, bundleIds[1]); installed[2] = osgiMgrBundle; start(); } public void tearDown() throws Exception { a.stop((BundleContext)mockCtx); mockConfig.expectCall(MockObject.NONE); mockCtx.expectCall(MockObject.NONE); } public void testBasic() { //this is just setUp and teardown } public void testUnregisterAlreadyInstalledBundle() { BundleEvent evt = new BundleEvent(BundleEvent.UNINSTALLED, installed[1]); bundleList.bundleChanged(evt); CalledMethod m = mockConfig.expectCall("unregisterBean"); ObjectName name = (ObjectName)m.getAllParams()[0]; assertEquals(bundleNames[1], name.getKeyProperty("name")); assertEquals(bundleIds[1]+"", name.getKeyProperty("BundleId")); } public void testRegistrationOfNewBundle() { String bundleName = "xyz"; long bundleId = 101; Dictionary<String, String> d2 = new Hashtable<String, String>(); d2.put("Bundle-Name", bundleName); MockBundle bundle = new MockBundle(d2, bundleId); BundleEvent evt = new BundleEvent(BundleEvent.INSTALLED, bundle); bundleList.bundleChanged(evt); CalledMethod m = mockConfig.expectCall("registerBean"); Class c = (Class)m.getAllParams()[0]; ObjectName beanName = (ObjectName)m.getAllParams()[1]; Object bean = m.getAllParams()[2]; assertEquals(LifecycleMBean.class, c); assertEquals(bundleName, beanName.getKeyProperty("name")); assertEquals(bundleId+"", beanName.getKeyProperty("BundleId")); assertEquals(Lifecycle.class, bean.getClass()); evt = new BundleEvent(BundleEvent.UNINSTALLED, bundle); bundleList.bundleChanged(evt); m = mockConfig.expectCall("unregisterBean"); ObjectName name = (ObjectName)m.getAllParams()[0]; assertEquals(bundleName, name.getKeyProperty("name")); assertEquals(bundleId+"", name.getKeyProperty("BundleId")); } private void start() throws Exception { for(int i = 0; i < 10; i++) { mockCtx.addReturnValue("getBundle", osgiMgrBundle); } mockCtx.addReturnValue("getBundles", installed); a.start((BundleContext)mockCtx); String[] methodNames = new String[3]; methodNames[0] = "registerService"; methodNames[1] = "addBundleListener"; methodNames[2] = "getBundles"; CalledMethod[] methods = mockCtx.expectOrderedCalls(methodNames); bundleList = (BundleListener)methods[1].getAllParams()[0]; methodNames = new String[4]; for(int i = 0; i < methodNames.length; i++) { methodNames[i] = "registerBean"; } methods = mockConfig.expectOrderedCalls(methodNames); //first two bundles are BundleManagerMBean and LifecycleMBean for osgimgr bundle Class c = (Class)methods[0].getAllParams()[0]; ObjectName beanName = (ObjectName)methods[0].getAllParams()[1]; Object bean = methods[0].getAllParams()[2]; assertEquals(BundleManagerMBean.class, c); assertEquals("BundleManager", beanName.getKeyProperty("name")); assertEquals(BundleManager.class, bean.getClass()); //lifecycle mbean c = (Class)methods[1].getAllParams()[0]; beanName = (ObjectName)methods[1].getAllParams()[1]; bean = methods[1].getAllParams()[2]; assertEquals(LifecycleMBean.class, c); assertEquals(osgiMgrBundleName, beanName.getKeyProperty("name")); assertEquals(osgiMgrId+"", beanName.getKeyProperty("BundleId")); assertEquals(Lifecycle.class, bean.getClass()); //already installed bundle 1.... c = (Class)methods[2].getAllParams()[0]; beanName = (ObjectName)methods[2].getAllParams()[1]; bean = methods[2].getAllParams()[2]; assertEquals(LifecycleMBean.class, c); assertEquals(bundleNames[0], beanName.getKeyProperty("name")); assertEquals(bundleIds[0]+"", beanName.getKeyProperty("BundleId")); assertEquals(Lifecycle.class, bean.getClass()); //already installed bundle 2.... c = (Class)methods[3].getAllParams()[0]; beanName = (ObjectName)methods[3].getAllParams()[1]; bean = methods[3].getAllParams()[2]; assertEquals(LifecycleMBean.class, c); assertEquals(bundleNames[1], beanName.getKeyProperty("name")); assertEquals(bundleIds[1]+"", beanName.getKeyProperty("BundleId")); assertEquals(Lifecycle.class, bean.getClass()); } } --- NEW FILE: MockSvcReference.java --- package osgi.test; import org.osgi.framework.Bundle; import org.osgi.framework.ServiceReference; public class MockSvcReference implements ServiceReference { public Object getProperty(String arg0) { throw new UnsupportedOperationException("not supported"); } public String[] getPropertyKeys() { throw new UnsupportedOperationException("not supported"); } public Bundle getBundle() { throw new UnsupportedOperationException("not supported"); } public Bundle[] getUsingBundles() { throw new UnsupportedOperationException("not supported"); } } --- NEW FILE: MockBundle.java --- package osgi.test; import java.io.InputStream; import java.net.URL; import java.util.Dictionary; import org.osgi.framework.Bundle; import org.osgi.framework.BundleException; import org.osgi.framework.ServiceReference; public class MockBundle implements Bundle { private Dictionary dic; private long id; private ServiceReference[] registered; public MockBundle(Dictionary dic, long id) { this.dic = dic; this.id = id; } public MockBundle(Dictionary dic, long id, ServiceReference[] registered) { this.dic = dic; this.id = id; this.registered = registered; } public int getState() { throw new UnsupportedOperationException("not supported"); } public void start() throws BundleException { throw new UnsupportedOperationException("not supported"); } public void stop() throws BundleException { throw new UnsupportedOperationException("not supported"); } public void update() throws BundleException { throw new UnsupportedOperationException("not supported"); } public void update(InputStream arg0) throws BundleException { throw new UnsupportedOperationException("not supported"); } public void uninstall() throws BundleException { throw new UnsupportedOperationException("not supported"); } public Dictionary getHeaders() { return dic; } public long getBundleId() { return id; } public String getLocation() { throw new UnsupportedOperationException("not supported"); } public ServiceReference[] getRegisteredServices() { return registered; } public ServiceReference[] getServicesInUse() { throw new UnsupportedOperationException("not supported"); } public boolean hasPermission(Object arg0) { throw new UnsupportedOperationException("not supported"); } public URL getResource(String arg0) { throw new UnsupportedOperationException("not supported"); } } |
From: Nobody <fas...@us...> - 2006-02-21 10:48:00
|
Update of /cvsroot/mocklib/osgimgr/input/javasrc/biz/xsoftware/osgimgr In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5023/input/javasrc/biz/xsoftware/osgimgr Added Files: BundleRegistrar.java ConfigServiceImpl.java GetComponentImpl.java MBeanInvokeHandler.java OsgiStandardMBean.java ServerFactoryImpl.java Testing.java TestingMBean.java Log Message: add osgimgr to mocklib project for now. --- NEW FILE: ServerFactoryImpl.java --- package biz.xsoftware.osgimgr; import java.io.IOException; import java.util.Map; import javax.management.MBeanServer; import javax.management.MBeanServerFactory; import javax.management.remote.JMXConnectorServerFactory; import javax.management.remote.JMXConnectorServerMBean; import javax.management.remote.JMXServiceURL; import biz.xsoftware.api.osgimgr.ServerFactory; public class ServerFactoryImpl implements ServerFactory { public MBeanServer createServer() { return MBeanServerFactory.createMBeanServer(); } public JMXConnectorServerMBean createJMXConnector(JMXServiceURL address, Map<String, ?> environment, MBeanServer server) throws IOException { return JMXConnectorServerFactory.newJMXConnectorServer(address, environment, server); } } --- NEW FILE: ConfigServiceImpl.java --- package biz.xsoftware.osgimgr; import java.lang.reflect.Proxy; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; import javax.management.MalformedObjectNameException; import javax.management.NotCompliantMBeanException; import javax.management.ObjectName; import biz.xsoftware.api.osgimgr.ConfigService; import biz.xsoftware.api.mgmt.Domain; import biz.xsoftware.api.osgimgr.ServerFactory; public class ConfigServiceImpl implements ConfigService { private static final Logger log = Logger.getLogger(ConfigServiceImpl.class.getName()); private static ConfigServiceImpl lastRef; private BundleRegistrar registrar; private ServerFactory factory; //lifecycle of both maps is from register to uninstall(not register to unregister) private Map<Key, Value> keyToProxy = new HashMap<Key, Value>(); private Map<String, List<Key>> idToKeyList = new HashMap<String, List<Key>>(); public ConfigServiceImpl() { this.factory = new ServerFactoryImpl(); registrar = new BundleRegistrar(factory); lastRef = this; } public ConfigServiceImpl(ServerFactory factory) { this.factory = factory; registrar = new BundleRegistrar(factory); lastRef = this; } public void start() throws Exception { registrar.start("ConfigurationService"); } public void stop() throws Exception { registrar.stop(); registrar = null; lastRef = null; } //should be called before starting a service so config can all be //applied while service is not running(in case there are certain things //that can't be set while running which many services have that problem public void configureAndRegisterService(Object svc, String id) throws Exception { if(log.isLoggable(Level.FINE)) log.fine("register service="+svc.getClass().getName()+" id="+id); List<Class> beanInterfaces = getBeanInterfaces(svc); List<Key> keys = idToKeyList.get(id); if(keys == null) { keys = new ArrayList<Key>(); idToKeyList.put(id, keys); } for(Class beanInterface : beanInterfaces) { ObjectName name = getObjectName(id, beanInterface); //check if proxy already exists. If exists place this real service //in the proxy, so user changes immediately have affect Key key = new Key(beanInterface.getName(), id); Value v = keyToProxy.get(key); if(v != null) { //setting the real svc in the proxy should config the service and //deal with race conditions with the user setting new config options //and us applying the old configuration. MBeanInvokeHandler handler = v.getInvokeHandler(); handler.setRealService(svc); return; } //create proxy Class[] interfaces = new Class[] { beanInterface }; MBeanInvokeHandler handler = new MBeanInvokeHandler(); handler.setRealService(svc); Object proxy = Proxy.newProxyInstance(beanInterface.getClassLoader(), interfaces, handler); registerBean(beanInterface, name, proxy); v = new Value(handler, proxy, name); keyToProxy.put(key, v); keys.add(key); } } private ObjectName getObjectName(String id, Class<?> beanInterface) throws MalformedObjectNameException { Domain dom = beanInterface.getAnnotation(Domain.class); String domainName = "Zeus.Level3."; if(dom != null) domainName = domainName+dom.value()+":name="; else domainName = domainName+"Services:name="; //register proxy ObjectName name = new ObjectName(domainName+beanInterface.getName()+",id="+id); return name; } public void unregisterService(Object svc, String id) { if(log.isLoggable(Level.FINE)) log.fine("unregister service="+svc.getClass().getName()); List<Class> beanInterfaces = getBeanInterfaces(svc); for(Class beanInterface : beanInterfaces) { //find proxy, remove real svc from proxy Value v = keyToProxy.get(new Key(beanInterface.getName(), id)); if(v == null) return; if(log.isLoggable(Level.FINE)) log.fine("set proxy to null"); v.getInvokeHandler().setRealService(null); } } public void uninstalled(String id) { List<Key> keys = idToKeyList.remove(id); if(keys == null) return; for(Key key : keys) { Value v = keyToProxy.remove(key); unregisterBean(v.getObjectName()); } } private List<Class> getBeanInterfaces(Object possibleBean) { if(log.isLoggable(Level.FINE)) log.fine("introspecting service="+possibleBean.getClass().getName()); List<Class> beanInterfaces = new ArrayList<Class>(); Class[] classes = possibleBean.getClass().getInterfaces(); for(Class c : classes) { if(log.isLoggable(Level.FINE)) log.fine("introspecting interface="+c.getName()); if(c.getName().endsWith("MBean")) { beanInterfaces.add(c); } } return beanInterfaces; } private static class Key { private String id; private String svcName; public Key(String svcName, String id) { this.id = id; this.svcName = svcName; } @Override public boolean equals(Object obj) { if(!(obj instanceof Key)) { return false; } Key right = (Key)obj; if(!id.equals(right.id)) { return false; } else if(!svcName.equals(right.svcName)) { return false; } return true; } @Override public int hashCode() { int hash = id.hashCode(); int hash2 = svcName.hashCode(); return 17*hash2+hash; } } private static class Value { private MBeanInvokeHandler invokeHandler; private Object proxy; private ObjectName name; public Value(MBeanInvokeHandler invokeHandler, Object proxy, ObjectName name) { this.invokeHandler = invokeHandler; this.proxy = proxy; this.name = name; } public MBeanInvokeHandler getInvokeHandler() { return invokeHandler; } public Object getProxy() { return proxy; } public ObjectName getObjectName() { return name; } } public static ConfigServiceImpl getLastRef() { return lastRef; } public void registerBean(Class beanInterface, ObjectName name, Object realBean) throws NotCompliantMBeanException { OsgiStandardMBean bean = new OsgiStandardMBean(realBean, beanInterface); registrar.registerBean(name, bean); } public void unregisterBean(ObjectName name) { registrar.unregisterBean(name); } } --- NEW FILE: OsgiStandardMBean.java --- package biz.xsoftware.osgimgr; import java.lang.reflect.Method; import java.util.HashMap; import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; import javax.management.MBeanAttributeInfo; import javax.management.MBeanInfo; import javax.management.MBeanOperationInfo; import javax.management.MBeanParameterInfo; import javax.management.NotCompliantMBeanException; import javax.management.StandardMBean; import biz.xsoftware.api.mgmt.Documentation; public class OsgiStandardMBean extends StandardMBean { private static final Logger log = Logger.getLogger(OsgiStandardMBean.class.getName()); private final Map<String, Class> nameToPrimitiveClass = new HashMap<String, Class>(); public OsgiStandardMBean(Object implementation, Class mbeanInterface) throws NotCompliantMBeanException { super(implementation, mbeanInterface); if(log.isLoggable(Level.FINE)) log.fine("mbean interface="+mbeanInterface.getClass()); nameToPrimitiveClass.put("boolean",Boolean.TYPE); nameToPrimitiveClass.put("byte",Byte.TYPE); nameToPrimitiveClass.put("char",Character.TYPE); nameToPrimitiveClass.put("short",Short.TYPE); nameToPrimitiveClass.put("int",Integer.TYPE); nameToPrimitiveClass.put("long",Long.TYPE); nameToPrimitiveClass.put("float",Float.TYPE); nameToPrimitiveClass.put("double",Double.TYPE); } @Override protected String getDescription(MBeanAttributeInfo info) { Class c = getMBeanInterface(); String doc = getDoc(c, "get", info); if(doc == null) doc = getDoc(c, "is", info); if(doc == null) return "No @Documentation annotation on get/is method for property="+info.getName(); return doc; } private String getDoc(Class c, String methodPrefix, MBeanAttributeInfo info) { Method m = null; try { m = c.getMethod("get"+info.getName(), (Class[])null); } catch(NoSuchMethodException e) {} try { if(m == null) m = c.getMethod("is"+info.getName(), (Class[])null); } catch(NoSuchMethodException e) {} if(m == null) return "Neither method=get"+info.getName()+" not method=is"+info.getName()+" exist on mbean="+c.getName()+" so unable to retrieve documentation"; Documentation doc = (Documentation)m.getAnnotation(Documentation.class); if(doc == null) return "No documentation present on get/is method of property"; return doc.value(); } // @Override // protected String getDescription(MBeanConstructorInfo ctor, MBeanParameterInfo param, int sequence) { // return "ctor, param, seq description"; // } // // @Override // protected String getDescription(MBeanConstructorInfo info) { // return "constructor description"; // } // // @Override // protected String getDescription(MBeanFeatureInfo info) { // return "feature description"; // } @Override protected String getDescription(MBeanInfo info) { Class<?> c = getMBeanInterface(); Documentation doc = c.getAnnotation(Documentation.class); if(log.isLoggable(Level.FINE)) log.finer("doc="+doc); if(doc == null) return "No description specified using @Documentation Annotation"; return doc.value(); } // @Override // protected String getDescription(MBeanOperationInfo op, MBeanParameterInfo param, int sequence) { // // TODO Auto-generated method stub // return "TODO: operation param description"; // } @Override protected String getDescription(MBeanOperationInfo info) { Class c = getMBeanInterface(); try { MBeanParameterInfo[] paramInfos = info.getSignature(); Class[] classes = new Class[paramInfos.length]; for(int i = 0; i < paramInfos.length; i++) { classes[i] = nameToPrimitiveClass.get(paramInfos[i].getType()); if(classes[i] == null) classes[i] = c.getClassLoader().loadClass(paramInfos[i].getType()); } Method m = c.getMethod(info.getName(), classes); Documentation doc = (Documentation)m.getAnnotation(Documentation.class); if(doc == null) return "No documentation for this operation"; return doc.value(); } catch(NoSuchMethodException e) { return "Could not find operation="+info.getName()+" on class="+c.getName(); } catch (Exception e) { log.log(Level.WARNING, "Could not find method", e); return "Exception trying to get documentation on operation="+info.getName(); } } } --- NEW FILE: Testing.java --- package biz.xsoftware.osgimgr; import java.util.logging.Logger; public class Testing implements TestingMBean { private static final Logger log = Logger.getLogger(Testing.class.getName()); public Testing() { } public String echo(int number) { //slog.log(LogService.LOG_WARNING, "runLog number="+number); log.info("jdk logger. runLog number="+number); return "The number you entered was="+number; } } --- NEW FILE: GetComponentImpl.java --- package biz.xsoftware.osgimgr; import biz.xsoftware.api.osgimgr.ConfigService; import biz.xsoftware.api.osgimgr.GetComponent; public class GetComponentImpl implements GetComponent { public ConfigService getConfigService() { return ConfigServiceImpl.getLastRef(); } } --- NEW FILE: MBeanInvokeHandler.java --- package biz.xsoftware.osgimgr; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.util.logging.Level; import java.util.logging.Logger; public class MBeanInvokeHandler implements InvocationHandler { private static final Logger log = Logger.getLogger(MBeanInvokeHandler.class.getName()); private Object realSvc; public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { if(log.isLoggable(Level.FINE)) log.fine("o="+realSvc); //TODO: fix this so we return real values.... if(realSvc == null) throw new UnsupportedOperationException("Can't get/set properties while service is stopped yet...i need to implement that"); String name = method.getName(); Class[] paramClasses = method.getParameterTypes(); ClassLoader cl = realSvc.getClass().getClassLoader(); //must copy Class to String and then load the Class again //as the Class's may actually be different //because they were loaded from a different class loaders. for(int i = 0; i < paramClasses.length; i++) { if(!paramClasses[i].isPrimitive()) { String className = paramClasses[i].getName(); paramClasses[i] = cl.loadClass(className); } } Method m = realSvc.getClass().getMethod(name, paramClasses); Object retVal = m.invoke(realSvc, args); return retVal; } public void setRealService(Object o) { this.realSvc = o; } } --- NEW FILE: TestingMBean.java --- package biz.xsoftware.osgimgr; public interface TestingMBean { public String echo(int number); } --- NEW FILE: BundleRegistrar.java --- package biz.xsoftware.osgimgr; import java.lang.management.GarbageCollectorMXBean; import java.lang.management.ManagementFactory; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.logging.Level; import java.util.logging.LogManager; import java.util.logging.Logger; import javax.management.Attribute; import javax.management.InstanceAlreadyExistsException; import javax.management.InstanceNotFoundException; import javax.management.MBeanRegistrationException; import javax.management.MBeanServer; import javax.management.NotCompliantMBeanException; import javax.management.ObjectName; import javax.management.remote.JMXConnectorServerMBean; import javax.management.remote.JMXServiceURL; import biz.xsoftware.api.osgimgr.ConfigService; import biz.xsoftware.api.osgimgr.ServerFactory; import mx4j.tools.adaptor.http.HttpAdaptor; import mx4j.tools.adaptor.http.XSLTProcessor; public class BundleRegistrar { private static final Logger log = Logger.getLogger(BundleRegistrar.class.getName()); private MBeanServer server; private HttpAdaptor adapter; private JMXConnectorServerMBean cntorServer; private List<ObjectName> registrarsBeans; private ServerFactory factory; public BundleRegistrar(ServerFactory factory) { this.factory = factory; } public void start(String id) throws Exception { if(log.isLoggable(Level.FINE)) log.fine("Starting BundleRegistrar"); server = factory.createServer(); registrarsBeans = new ArrayList<ObjectName>(); ObjectName beanName = new ObjectName(ConfigService.SERVER_LEVEL1+"TestBean"); ObjectName httpBeanName = new ObjectName(ConfigService.SERVER_LEVEL1+"HttpAdaptor"); ObjectName processorName = new ObjectName(ConfigService.SERVER_LEVEL1+"XSLTProcessor"); ObjectName logBean = new ObjectName(LogManager.LOGGING_MXBEAN_NAME); ObjectName memBean = new ObjectName(ManagementFactory.MEMORY_MXBEAN_NAME); ObjectName thread = new ObjectName(ManagementFactory.THREAD_MXBEAN_NAME); ObjectName osBean = new ObjectName(ManagementFactory.OPERATING_SYSTEM_MXBEAN_NAME); ObjectName javaVMBean = new ObjectName(ManagementFactory.RUNTIME_MXBEAN_NAME); ObjectName clBean = new ObjectName(ManagementFactory.CLASS_LOADING_MXBEAN_NAME); //here are the beans created Testing bean = new Testing(); XSLTProcessor processor = new XSLTProcessor(); adapter = new HttpAdaptor(); List<GarbageCollectorMXBean> beans = ManagementFactory.getGarbageCollectorMXBeans(); for(int i = 0; i < beans.size(); i++) { GarbageCollectorMXBean gcBean = beans.get(i); String tmp = ManagementFactory.GARBAGE_COLLECTOR_MXBEAN_DOMAIN_TYPE+", name=GarbageCollector["+i+"]"; ObjectName gcBeanName = new ObjectName(tmp); registerBean(gcBean, gcBeanName); } registerBean(ManagementFactory.getMemoryMXBean(), memBean); registerBean(ManagementFactory.getThreadMXBean(), thread); registerBean(ManagementFactory.getOperatingSystemMXBean(), osBean); registerBean(ManagementFactory.getRuntimeMXBean(), javaVMBean); registerBean(ManagementFactory.getClassLoadingMXBean(), clBean); registerBean(LogManager.getLoggingMXBean(), logBean); registerBean(bean, beanName); registerBean(adapter, httpBeanName); registerBean(processor, processorName); server.setAttribute(httpBeanName, new Attribute("ProcessorName", processorName)); //set port to 9000 for now... adapter.setHost("127.0.0.1"); adapter.setPort(9000); adapter.start(); //The address of the connector server // JMXServiceURL address = new JMXServiceURL("service:jmx:rmi://localhost"); JMXServiceURL address = new JMXServiceURL("rmi", "localhost", 1099); //The environment map, null in this case Map<String, ?> environment = null; cntorServer = factory.createJMXConnector(address, environment, server); //Start the JMXConnectorServer cntorServer.start(); System.out.println("~"+cntorServer.getAddress()+"~"); } public synchronized void stop() throws Exception { cntorServer.stop(); cntorServer = null; adapter.stop(); for(int i = registrarsBeans.size()-1; i >= 0; i--) { unregisterBean(registrarsBeans.get(i)); } server = null; } private void registerBean(Object bean, ObjectName name) throws InstanceAlreadyExistsException, MBeanRegistrationException, NotCompliantMBeanException { server.registerMBean(bean, name); registrarsBeans.add(name); } public void registerBean(ObjectName name, Object bean) { if(name == null || bean == null) throw new IllegalArgumentException("name and bean must be supplied"); try { server.registerMBean(bean, name); registrarsBeans.add(name); } catch (Exception e) { log.log(Level.WARNING, "Registering MBean failed", e); } } public synchronized void unregisterBean(ObjectName name) { if(name == null) throw new IllegalArgumentException("name cannot be null"); try { //if bean not registered, return and ignore..... if(!registrarsBeans.contains(name)) return; server.unregisterMBean(name); registrarsBeans.remove(name); } catch (InstanceNotFoundException e) { //so what, who cares } catch (Exception e) { log.log(Level.WARNING, "Unregistration failure", e); } } } |
From: Nobody <fas...@us...> - 2006-02-21 10:47:59
|
Update of /cvsroot/mocklib/osgimgr/input/javasrc/biz/xsoftware/test/osgimgr In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5023/input/javasrc/biz/xsoftware/test/osgimgr Added Files: MockInterface.java TestBeanStuff.java TestOsgiMgr.java TestProxy.java Log Message: add osgimgr to mocklib project for now. --- NEW FILE: TestBeanStuff.java --- package biz.xsoftware.test.osgimgr; import java.util.logging.Level; import java.util.logging.Logger; import javax.management.MBeanAttributeInfo; import javax.management.MBeanInfo; import javax.management.MBeanOperationInfo; import javax.management.MBeanServer; import javax.management.StandardMBean; import javax.management.remote.JMXConnectorServerMBean; import javax.management.remote.JMXServiceURL; import junit.framework.TestCase; import biz.xsoftware.api.osgimgr.ConfigService; import biz.xsoftware.api.osgimgr.ServerFactory; import biz.xsoftware.api.osgimgr.Bootstrap; import biz.xsoftware.mock.CalledMethod; import biz.xsoftware.mock.MockObject; import biz.xsoftware.mock.MockObjectFactory; import biz.xsoftware.test.osgimgr.mock.ADummyInterface; import biz.xsoftware.test.osgimgr.mock.Mock2MBean; import biz.xsoftware.test.osgimgr.mock.MockMBean; public class TestBeanStuff extends TestCase { private static final Logger log = Logger.getLogger(TestBeanStuff.class.getName()); private MockObject svc2; private MockMBean theBean; private String bundleId = "1"; private StandardMBean stdBean; private MockObject mockFactory; private MockObject mockServer; private MockObject mockJMXConnect; private ConfigService svc; public TestBeanStuff(String arg0) { super(arg0); } public void setUp() throws Exception { mockFactory = MockObjectFactory.createMock(ServerFactory.class); mockServer = MockObjectFactory.createMock(MBeanServer.class); mockJMXConnect = MockObjectFactory.createMock(JMXConnectorServerMBean.class); mockJMXConnect.setIgnoredMethods(new String[] { "getAddress" }); svc = Bootstrap.createConfigService((ServerFactory)mockFactory); start(); Class[] classes = new Class[] { ADummyInterface.class, MockMBean.class, Mock2MBean.class }; svc2 = MockObjectFactory.createMock(classes); svc.configureAndRegisterService(svc2, bundleId); String[] methodNames = new String[2]; methodNames[0] = "registerMBean"; methodNames[1] = "registerMBean"; CalledMethod[] methods = mockServer.expectOrderedCalls(methodNames); stdBean = (StandardMBean)methods[0].getAllParams()[0]; theBean = (MockMBean)stdBean.getImplementation(); } public void tearDown() throws Exception { svc.unregisterService(svc2, bundleId); mockServer.expectCall(MockObject.NONE); svc.uninstalled(bundleId); String[] methodNames = new String[2]; methodNames[0] = "unregisterMBean"; methodNames[1] = "unregisterMBean"; mockServer.expectOrderedCalls(methodNames); //because proxies stay registered while service is unregistered, stop //will unregiser the two additional proxies too. stop(11); svc2.expectCall(MockObject.NONE); mockFactory.expectCall(MockObject.NONE); mockServer.expectCall(MockObject.NONE); mockJMXConnect.expectCall(MockObject.NONE); } //TODO: write this test case public void testConfigureServiceWhileStopped() { } //TODO: write this test case public void testGetSetFullBlownObject() { } public void testConfigureServiceWhileRunning() throws Exception { int expectedProp = 5; svc2.addReturnValue("getProperty", expectedProp); int actualProp = theBean.getProperty(); svc2.expectCall("getProperty"); assertEquals(expectedProp, actualProp); expectedProp = 9; theBean.setProperty(expectedProp); CalledMethod m = svc2.expectCall("setProperty"); actualProp = ((Integer)m.getAllParams()[0]).intValue(); assertEquals(expectedProp, actualProp); } public void testGetDocumentation() throws Exception { MBeanInfo info = stdBean.getMBeanInfo(); String actual = info.getDescription(); assertEquals("Test Documentation", actual); MBeanAttributeInfo[] attrInfo = info.getAttributes(); assertEquals("array should only contain one property", 1, attrInfo.length); assertEquals("Test get method docs", attrInfo[0].getDescription()); MBeanOperationInfo[] operInfo = info.getOperations(); assertEquals("Should only be one operation", 1, operInfo.length); assertEquals("Test for some operation", operInfo[0].getDescription()); } private void start() throws Exception { if(log.isLoggable(Level.FINE)) log.fine("mockSvc="+mockServer); mockFactory.addReturnValue("createServer", mockServer); mockFactory.addReturnValue("createJMXConnector", mockJMXConnect); svc.start(); String[] methodNames = new String[2]; methodNames[0] = "createServer"; methodNames[1] = "createJMXConnector"; CalledMethod[] methods = mockFactory.expectOrderedCalls(methodNames); JMXServiceURL url = (JMXServiceURL)methods[1].getAllParams()[0]; assertEquals("port should be correct", 1099, url.getPort()); assertEquals("host should be correct", "localhost", url.getHost()); MBeanServer svr = (MBeanServer)methods[1].getAllParams()[2]; assertEquals("Should be correct server", mockServer, svr); methodNames = new String[12]; for(int i = 0; i < 11; i++) { methodNames[i] = "registerMBean"; } methodNames[11] = "setAttribute"; mockServer.expectOrderedCalls(methodNames); mockJMXConnect.expectCall("start"); } private CalledMethod[] stop(int numUnreg) throws Exception { svc.stop(); String[] methodNames = new String[numUnreg]; for(int i = 0; i < numUnreg; i++) { methodNames[i] = "unregisterMBean"; } CalledMethod[] methods = mockServer.expectOrderedCalls(methodNames); mockJMXConnect.expectCall("stop"); return methods; } } --- NEW FILE: TestProxy.java --- package biz.xsoftware.test.osgimgr; import junit.framework.TestCase; public class TestProxy extends TestCase { public TestProxy(String arg0) { super(arg0); } public void testProxy() { // MBeanInvokeHandler proxy = new MBeanInvokeHandler(); // Class[] classes = new Class[] {MockInterface.class}; // MockInterface mock = (MockInterface)Proxy.newProxyInstance(TestProxy.class.getClassLoader(), classes, proxy); // // mock.someMethod(); // // String s = "hello"; // proxy.setRealService(s); // // mock.someMethod(); } } --- NEW FILE: TestOsgiMgr.java --- package biz.xsoftware.test.osgimgr; import java.util.logging.Level; import java.util.logging.Logger; import javax.management.MBeanServer; import javax.management.ObjectName; import javax.management.StandardMBean; import javax.management.remote.JMXConnectorServerMBean; import javax.management.remote.JMXServiceURL; import junit.framework.TestCase; import biz.xsoftware.api.osgimgr.ConfigService; import biz.xsoftware.api.osgimgr.ServerFactory; import biz.xsoftware.api.osgimgr.Bootstrap; import biz.xsoftware.mock.CalledMethod; import biz.xsoftware.mock.MockObject; import biz.xsoftware.mock.MockObjectFactory; import biz.xsoftware.test.osgimgr.mock.ADummyInterface; import biz.xsoftware.test.osgimgr.mock.Mock2MBean; import biz.xsoftware.test.osgimgr.mock.MockMBean; import biz.xsoftware.test.osgimgr.mock.MockService1; public class TestOsgiMgr extends TestCase { private MockObject mockFactory; private MockObject mockServer; private MockObject mockJMXConnect; private ConfigService svc; public TestOsgiMgr(String arg0) { super(arg0); } public void setUp() throws Exception { mockFactory = MockObjectFactory.createMock(ServerFactory.class); mockServer = MockObjectFactory.createMock(MBeanServer.class); mockJMXConnect = MockObjectFactory.createMock(JMXConnectorServerMBean.class); mockJMXConnect.setIgnoredMethods(new String[] { "getAddress" }); svc = Bootstrap.createConfigService((ServerFactory)mockFactory); start(); } public void tearDown() throws Exception { mockFactory.expectCall(MockObject.NONE); mockServer.expectCall(MockObject.NONE); mockJMXConnect.expectCall(MockObject.NONE); } public void testBasic() throws Exception { //start was done in setup for all tests... stop(11); } public void testAddingRemovingBundle() throws Exception { //use one bundleId for both services which can happen sometimes.... String bundleId = "1"; Class[] classes = new Class[] { ADummyInterface.class, MockMBean.class, Mock2MBean.class }; MockObject svc2 = MockObjectFactory.createMock(classes); MockService1 svc1 = new MockService1(); svc.configureAndRegisterService(svc1, bundleId); mockServer.expectCall(MockObject.NONE); svc.configureAndRegisterService(svc2, bundleId); String[] methodNames = new String[2]; methodNames[0] = "registerMBean"; methodNames[1] = "registerMBean"; CalledMethod[] methods = mockServer.expectOrderedCalls(methodNames); StandardMBean stdBean = (StandardMBean)methods[0].getAllParams()[0]; ObjectName beanName = (ObjectName)methods[0].getAllParams()[1]; assertTrue(stdBean.getImplementation() instanceof MockMBean); assertEquals(MockMBean.class, stdBean.getMBeanInterface()); assertEquals("Zeus.Level3.TestDomain", beanName.getDomain()); assertEquals(MockMBean.class.getName(), beanName.getKeyProperty("name")); assertEquals(bundleId, beanName.getKeyProperty("id")); stdBean = (StandardMBean)methods[1].getAllParams()[0]; beanName = (ObjectName)methods[1].getAllParams()[1]; assertTrue(stdBean.getImplementation() instanceof Mock2MBean); assertEquals(Mock2MBean.class, stdBean.getMBeanInterface()); assertEquals("Zeus.Level3.Services", beanName.getDomain()); assertEquals(Mock2MBean.class.getName(), beanName.getKeyProperty("name")); assertEquals(bundleId, beanName.getKeyProperty("id")); svc.unregisterService(svc1, bundleId); svc.unregisterService(svc2, bundleId); mockServer.expectCall(MockObject.NONE); svc.uninstalled(bundleId); methodNames = new String[2]; methodNames[0] = "unregisterMBean"; methodNames[1] = "unregisterMBean"; methods = mockServer.expectOrderedCalls(methodNames); //because proxies stay registered while service is unregistered, stop //will unregiser the two additional proxies too. stop(11); } //TODO: finish this test case public void testUninstalledWithoutUnregister() { } private static final Logger log = Logger.getLogger(TestOsgiMgr.class.getName()); private void start() throws Exception { if(log.isLoggable(Level.FINE)) log.fine("mockSvc="+mockServer); mockFactory.addReturnValue("createServer", mockServer); mockFactory.addReturnValue("createJMXConnector", mockJMXConnect); svc.start(); String[] methodNames = new String[2]; methodNames[0] = "createServer"; methodNames[1] = "createJMXConnector"; CalledMethod[] methods = mockFactory.expectOrderedCalls(methodNames); JMXServiceURL url = (JMXServiceURL)methods[1].getAllParams()[0]; assertEquals("port should be correct", 1099, url.getPort()); assertEquals("host should be correct", "localhost", url.getHost()); MBeanServer svr = (MBeanServer)methods[1].getAllParams()[2]; assertEquals("Should be correct server", mockServer, svr); methodNames = new String[12]; for(int i = 0; i < 11; i++) { methodNames[i] = "registerMBean"; } methodNames[11] = "setAttribute"; mockServer.expectOrderedCalls(methodNames); mockJMXConnect.expectCall("start"); } private CalledMethod[] stop(int numUnreg) throws Exception { svc.stop(); String[] methodNames = new String[numUnreg]; for(int i = 0; i < numUnreg; i++) { methodNames[i] = "unregisterMBean"; } CalledMethod[] methods = mockServer.expectOrderedCalls(methodNames); mockJMXConnect.expectCall("stop"); return methods; } } --- NEW FILE: MockInterface.java --- package biz.xsoftware.test.osgimgr; public interface MockInterface { public void someMethod(); } |
From: Nobody <fas...@us...> - 2006-02-21 10:47:59
|
Update of /cvsroot/mocklib/osgimgr/input/javasrc/biz/xsoftware/test/osgimgr/mock In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5023/input/javasrc/biz/xsoftware/test/osgimgr/mock Added Files: ADummyInterface.java Mock2MBean.java MockMBean.java MockService1.java Log Message: add osgimgr to mocklib project for now. --- NEW FILE: ADummyInterface.java --- package biz.xsoftware.test.osgimgr.mock; public interface ADummyInterface { } --- NEW FILE: MockService1.java --- package biz.xsoftware.test.osgimgr.mock; public class MockService1 { } --- NEW FILE: Mock2MBean.java --- package biz.xsoftware.test.osgimgr.mock; public interface Mock2MBean { } --- NEW FILE: MockMBean.java --- package biz.xsoftware.test.osgimgr.mock; import biz.xsoftware.api.mgmt.Documentation; import biz.xsoftware.api.mgmt.Domain; @Domain("TestDomain") @Documentation("Test Documentation") public interface MockMBean { @Documentation("Test set method docs") public void setProperty(int i); @Documentation("Test get method docs") public int getProperty(); @Documentation("Test for some operation") public void someOperation(int i, String s); } |
From: Nobody <fas...@us...> - 2006-02-21 10:47:58
|
Update of /cvsroot/mocklib/osgimgr/input/javasrc/biz/xsoftware/api/osgimgr In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5023/input/javasrc/biz/xsoftware/api/osgimgr Added Files: Bootstrap.java ConfigService.java GetComponent.java ServerFactory.java Log Message: add osgimgr to mocklib project for now. --- NEW FILE: ConfigService.java --- package biz.xsoftware.api.osgimgr; import javax.management.NotCompliantMBeanException; import javax.management.ObjectName; import org.ungoverned.gravity.servicebinder.ConfigurationService; public interface ConfigService extends ConfigurationService { public static final String SERVER_LEVEL1 = "Zeus.Level1:name="; public void start() throws Exception; public void stop() throws Exception; //Another route to directly register a bean public void registerBean(Class beanInterface, ObjectName name, Object realBean) throws NotCompliantMBeanException; public void unregisterBean(ObjectName beanName); } --- NEW FILE: ServerFactory.java --- package biz.xsoftware.api.osgimgr; import java.io.IOException; import java.util.Map; import javax.management.MBeanServer; import javax.management.remote.JMXConnectorServerMBean; import javax.management.remote.JMXServiceURL; public interface ServerFactory { public MBeanServer createServer(); public JMXConnectorServerMBean createJMXConnector(JMXServiceURL address, Map<String, ?> environment, MBeanServer server) throws IOException; } --- NEW FILE: GetComponent.java --- package biz.xsoftware.api.osgimgr; public interface GetComponent { public ConfigService getConfigService(); } --- NEW FILE: Bootstrap.java --- package biz.xsoftware.api.osgimgr; import java.lang.reflect.Constructor; public final class Bootstrap { public static final String CONFIG_NAME = "biz.xsoftware.osgimgr.ConfigServiceImpl"; private Bootstrap() {} public static ConfigService createConfigService(ServerFactory factory) throws Exception { Class<? extends ConfigService> theClass = Class.forName(CONFIG_NAME).asSubclass(ConfigService.class); Constructor con = theClass.getConstructor(ServerFactory.class); ConfigService svc = (ConfigService)con.newInstance(factory); return svc; } public static GetComponent createGetComponent() throws Exception { String className = "biz.xsoftware.osgimgr.GetComponentImpl"; Class<? extends GetComponent> theClass = Class.forName(className).asSubclass(GetComponent.class); GetComponent svc = theClass.newInstance(); return svc; } } |
From: Nobody <fas...@us...> - 2006-02-21 10:47:58
|
Update of /cvsroot/mocklib/osgimgr/input/javasrc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5023/input/javasrc Added Files: overview.html Log Message: add osgimgr to mocklib project for now. --- NEW FILE: overview.html --- <html> <body> </body> </html> |
From: Nobody <fas...@us...> - 2006-02-21 10:42:45
|
Update of /cvsroot/mocklib/osgimgr/tools/ant In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4638/tools/ant Log Message: Directory /cvsroot/mocklib/osgimgr/tools/ant added to the repository |
From: Nobody <fas...@us...> - 2006-02-21 10:42:45
|
Update of /cvsroot/mocklib/osgimgr/input/libexclude In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4638/input/libexclude Log Message: Directory /cvsroot/mocklib/osgimgr/input/libexclude added to the repository |
From: Nobody <fas...@us...> - 2006-02-21 10:42:45
|
Update of /cvsroot/mocklib/osgimgr/input/osgi In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4638/input/osgi Log Message: Directory /cvsroot/mocklib/osgimgr/input/osgi added to the repository |
From: Nobody <fas...@us...> - 2006-02-21 10:42:41
|
Update of /cvsroot/mocklib/osgimgr/tools/ant-contrib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4638/tools/ant-contrib Log Message: Directory /cvsroot/mocklib/osgimgr/tools/ant-contrib added to the repository |
From: Nobody <fas...@us...> - 2006-02-21 10:42:41
|
Update of /cvsroot/mocklib/osgimgr/input/javasrc/biz/xsoftware/osgimgr In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4638/input/javasrc/biz/xsoftware/osgimgr Log Message: Directory /cvsroot/mocklib/osgimgr/input/javasrc/biz/xsoftware/osgimgr added to the repository |
From: Nobody <fas...@us...> - 2006-02-21 10:42:41
|
Update of /cvsroot/mocklib/osgimgr/tools/emma In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4638/tools/emma Log Message: Directory /cvsroot/mocklib/osgimgr/tools/emma added to the repository |
From: Nobody <fas...@us...> - 2006-02-21 10:42:41
|
Update of /cvsroot/mocklib/osgimgr/tools/checkstyle In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4638/tools/checkstyle Log Message: Directory /cvsroot/mocklib/osgimgr/tools/checkstyle added to the repository |
From: Nobody <fas...@us...> - 2006-02-21 10:42:41
|
Update of /cvsroot/mocklib/osgimgr/tools/findbugs/plugin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4638/tools/findbugs/plugin Log Message: Directory /cvsroot/mocklib/osgimgr/tools/findbugs/plugin added to the repository |
From: Nobody <fas...@us...> - 2006-02-21 10:42:41
|
Update of /cvsroot/mocklib/osgimgr/input/javasrc/biz/xsoftware/api In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4638/input/javasrc/biz/xsoftware/api Log Message: Directory /cvsroot/mocklib/osgimgr/input/javasrc/biz/xsoftware/api added to the repository |
From: Nobody <fas...@us...> - 2006-02-21 10:42:41
|
Update of /cvsroot/mocklib/osgimgr/input/javasrc/biz/xsoftware In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4638/input/javasrc/biz/xsoftware Log Message: Directory /cvsroot/mocklib/osgimgr/input/javasrc/biz/xsoftware added to the repository |
From: Nobody <fas...@us...> - 2006-02-21 10:42:41
|
Update of /cvsroot/mocklib/osgimgr/tools/findbugs/bin/deprecated In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4638/tools/findbugs/bin/deprecated Log Message: Directory /cvsroot/mocklib/osgimgr/tools/findbugs/bin/deprecated added to the repository |
From: Nobody <fas...@us...> - 2006-02-21 10:42:40
|
Update of /cvsroot/mocklib/osgimgr/bldfiles In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4638/bldfiles Log Message: Directory /cvsroot/mocklib/osgimgr/bldfiles added to the repository |
From: Nobody <fas...@us...> - 2006-02-21 10:42:40
|
Update of /cvsroot/mocklib/osgimgr/tools/findbugs/src/xsl In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4638/tools/findbugs/src/xsl Log Message: Directory /cvsroot/mocklib/osgimgr/tools/findbugs/src/xsl added to the repository |
From: Nobody <fas...@us...> - 2006-02-21 10:42:40
|
Update of /cvsroot/mocklib/osgimgr/tools In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4638/tools Log Message: Directory /cvsroot/mocklib/osgimgr/tools added to the repository |
From: Nobody <fas...@us...> - 2006-02-21 10:42:40
|
Update of /cvsroot/mocklib/osgimgr/tools/package-list In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4638/tools/package-list Log Message: Directory /cvsroot/mocklib/osgimgr/tools/package-list added to the repository |
From: Nobody <fas...@us...> - 2006-02-21 10:42:40
|
Update of /cvsroot/mocklib/osgimgr/input/javasrc/biz/xsoftware/manifest In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4638/input/javasrc/biz/xsoftware/manifest Log Message: Directory /cvsroot/mocklib/osgimgr/input/javasrc/biz/xsoftware/manifest added to the repository |
From: Nobody <fas...@us...> - 2006-02-21 10:42:40
|
Update of /cvsroot/mocklib/osgimgr/input/javasrc/biz/xsoftware/api/osgimgr In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4638/input/javasrc/biz/xsoftware/api/osgimgr Log Message: Directory /cvsroot/mocklib/osgimgr/input/javasrc/biz/xsoftware/api/osgimgr added to the repository |
From: Nobody <fas...@us...> - 2006-02-21 10:42:39
|
Update of /cvsroot/mocklib/osgimgr/tools/package-list/junit In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4638/tools/package-list/junit Log Message: Directory /cvsroot/mocklib/osgimgr/tools/package-list/junit added to the repository |
From: Nobody <fas...@us...> - 2006-02-21 10:42:39
|
Update of /cvsroot/mocklib/osgimgr/tools/osgi In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4638/tools/osgi Log Message: Directory /cvsroot/mocklib/osgimgr/tools/osgi added to the repository |