|
From: James E. <jam...@gm...> - 2005-03-08 14:43:22
|
I'm on a project now that is using ATG Dynamo. While I don't like Dynamo so much, I do think there IoC container, Nucleus, while very simple, is pretty nice. I especially like the way it handles namespacing. I was just wondering if the list had any experience with it/opinions on it? It has been around since 1997 and handles constructor-based and setter-based injection. I still prefer Spring...but I do think that Nucleus has some ideas worth looking at. In a nutshell, the container is provided a list of folders to use a its search path. The folders contain .properties files that hold the bean definitions (one file per bean). The location of the file in the folder + the file name (minus .properties) becomes the bean's fully qualified name. For example, if you have /com/foo/Test.properties, then the container has a bean whose id is /com/foo/Test and the bean is defined by the properties in the file. There is a special $class property that identifies the class to instantiate, then the other properties are injected into the bean. You can refer to other beans in the container too: dataSource=/com/foo/DataSource If a bean definition is located in multiple folders in the search path, the files are combined in memory...where properties defined later will overwrite those defined earlier in the path. There is also a lifecycle the beans can participate in, but they require the use of Marker Interfaces. Pretty much the entire Server is built on top of Nucleus. There is an admin console that you can use to browse the container at runtime and modify the values (configured and live) for the beans (even the beans for webapps). I keep seeing it as a cross between JNDI, IoC container, and JMX...at least conceptually. It sounds a bit in the same vein as what is happening with Geronimo (at least from the very little I've heard). Again, just wondering what other people thought. I'd never heard of it before 2 weeks ago even thought its been around for 8 years. I guess that should be expected since it is proprietary and specific to ATG. I really think it would have served ATG better to open source Nucleus and Repository (their ORM framework...similar to hibernate). As it stands there is a huge learning curve for developers coming in...having it out there would have reduced that some...if people picked it up and liked it that is ;). If interested, you can read the details at http://www.atg.com/repositories/ContentCatalogRepository_en/manuals/ATG7.0/dynprog/index.html Chapter 2. James |