Files | Admin

Notes:

Release Name: 0.7.0

Notes:
Version 0.7.0 is a significant release for Copland, increasing robustness,
adding several new features, and fixing various bugs. The highlights of this
release are:

* Installations using setup.rb were broken since they were not installing the
  package descriptors. (Was anyone running into this? I discovered it the hard
  way...hope it didn't cause anyone too much grief...)

* Refactored various non-core services into separate distributables. The
  "copland-lib" package contains non-core services of a more general
  nature, the "copland-remote" package is for dealing with remote services and
  RPC frameworks (SOAP, XML-RPC, and dRuby), and "copland-webrick" is for
  WEBrick-specific services.

* Interceptors no longer mangle the method names of the services they
  encapsulate.

* The copland.AutoLoader is now copland.Startup, with a few other minor changes
  (interface-wise).

* Added 'require' clause to package descriptor. This allows packages to depend
  on other non-core packages in the Ruby search path. (This helped make the
  refactoring of the non-core services possible.)

* Schemas may apply to array elements. In 0.6.0, schemas could only apply to
  the elements of hashes.

* Schemas may now extend other schemas. If you've named an existing schema, you
  can create other schemas that build on it. You don't have to duplicate an
  entire schema just to add one or two new fields.

* Listeners are implemented differently (and more robustly) now. This broke the
  lifecycle listener capability, but I'm debating the usefulness of the
  lifecycle listeners anyway... Listeners are now more general-purpose, and
  listener callbacks bypass any interceptors on the service.

* Ruby 1.9 compatibility patch from Michael Neumann. Thanks, Michael!

* LogFactory is available as a service. This means that services can easily get
  a reference to the active log factory instance and get new logger instances.
  (Mostly useful for service factories.)

* Copland::get_class and friends work better with ambiguous module names. Had
  some problems where the wrong module was being picked up.

* Contributions to a package-local configuration point no longer require a
  fully qualified name.

In addition, the rough draft of the manual has been completed--any feedback on
content would be appreciated.

Lastly, I added three more tutorials: service models, the logging interceptor,
and configuration points.



Changes: 2004-09-11 17:33 minam * TODO: Version information for Copland is done. 2004-09-11 15:45 minam * Rakefile, copland.gemspec: Minor change in how version is communicated to gemspec. 2004-09-11 15:22 minam * Rakefile, copland.gemspec, lib/copland.rb, lib/copland/version.rb: "rake gem" now works correctly. Added Copland version information. 2004-09-11 14:54 minam * Rakefile, copland.gemspec, doc/manual/manual.yml, tutorial/05/main.rb, tutorial/05/package.yml, tutorial/05/tutorial.rb, tutorial/05/functions/package.yml, tutorial/05/functions/services.rb: Added a rakefile, and tutorial #5 (configuration points) 2004-09-11 04:20 minam * lib/copland/interceptor-chain.rb, lib/copland/schema.rb, lib/copland/configuration/yaml/schema.rb, test/tc_package.rb, test/schema/package.yml: Allow a schema to extend another schema. Allow interceptors to intercept methods not explicitly defined on the reciever (via method_missing). 2004-09-10 13:41 minam * TODO, doc/manual/manual.yml, lib/copland/default-schema-processor.rb, lib/copland/registry.rb, lib/copland/utils.rb, lib/copland/configuration/yaml/implementor.rb, test/configuration/yaml/tc_implementor-processor.rb, tutorial/03/package.yml, tutorial/03/tutorial.rb, tutorial/04/package.yml, tutorial/04/tutorial.rb: Too long between commits! Made some minor edits to the manual, added the patch from Michael Neumann to make Copland compatible with Ruby 1.9, made the log factory defined as an (identity) service, added "class" as a translatable type, types are no longer validated during parse (to support custom type translators), and made some minor fixes to a few of the tutorials. 2004-09-05 10:48 minam * setup.rb: Setup wasn't installing package descriptors. *oops* 2004-09-04 09:52 minam * doc/manual/manual.yml, tutorial/04/main.rb, tutorial/04/package.yml, tutorial/04/tutorial.rb: Added tutorial #4: "Logging Interceptor" 2004-09-03 22:40 minam * doc/manual/manual.yml, tutorial/03/main.rb, tutorial/03/package.yml, tutorial/03/tutorial.rb: Added tutorial #3 on service models. 2004-09-03 22:03 minam * doc/manual/manual.yml: Finished rough drafts of the remaining chapters. 2004-09-03 15:48 minam * copland.gemspec: Version bump. 2004-09-03 11:16 minam * lib/copland/package.rb, test/tc_package.rb: Fixed bug in #find_schema where it would not find schemas given a fully-qualified schema name. 2004-09-03 10:50 minam * lib/copland/package.rb, lib/copland/schema.rb, lib/copland/service-point.rb, lib/copland/configuration/yaml/schema.rb, lib/copland/configuration-point/common.rb, test/mock.rb, test/tc_schema.rb, test/impl/tc_builder-factory.rb, test/schema/bad-package.yml, test/schema/package.yml, test/schema/services.rb: schemas that contained external references to other schemas were not being properly initialized. 2004-09-02 20:50 minam * TODO, lib/copland/package.rb, lib/copland/configuration-point/common.rb, lib/copland/configuration-point/list.rb, lib/copland/configuration-point/map.rb, test/tc_configuration-point-contrib.rb, test/tc_configuration-point.rb, test/configuration-point/package.yml: Contributing (to a configuration point) services (or other configuration points) that are defined within the current package no longer requires that you specify the unqualified name of those services. 2004-09-02 13:52 minam * lib/copland/models/proxy.rb: Added a custom #inspect method so that proxies are inspected a bit more legibly and much less verbosely. 2004-09-01 12:02 minam * lib/copland/utils.rb: The "get_class" methods are now friendlier when dealing with ambiguious module names. 2004-09-01 10:56 minam * lib/copland/default-schema-processor.rb, lib/copland/schema.rb, lib/copland/configuration/yaml/implementor.rb, lib/copland/configuration/yaml/schema.rb, test/tc_default-schema-processor.rb, test/configuration/yaml/tc_schema-parser.rb: Schemas may now define the expected format of array elements. 2004-09-01 03:27 minam * test/: mock.rb, configuration/yaml/tc_config-loader.rb, configuration/yaml/tc_loader.rb, configuration/yaml/tc_package-processor.rb, configuration/yaml/tc_parser.rb: Oops. A recent commit broke several test cases. 2004-09-01 02:04 minam * doc/manual/manual.yml: Updated docs to reflect existence of new require clause in package descriptor. 2004-09-01 02:01 minam * TODO, copland.gemspec, lib/copland.rb, lib/copland/registry.rb, lib/copland/configuration/loader.rb, lib/copland/configuration/yaml/loader.rb, lib/copland/configuration/yaml/package.rb, lib/copland/configuration/yaml/parser.rb: Found a better way to specify library dependencies. There is now a 'require' clause for the package descriptor, so that inter-package dependencies can be specified in the descriptor, keeping things neat and centralized. 2004-08-31 22:37 minam * doc/manual/manual.yml: Updated documentation on listeners. 2004-08-31 22:29 minam * lib/copland/impl/startup.rb, test/impl/tc_startup.rb, test/impl/startup/package.yml, test/impl/startup/services.rb: Added test case and fixed some bugs. 2004-08-31 22:19 minam * lib/copland/event-producer.rb, lib/copland/observable.rb, lib/copland/package.rb, lib/copland/registry.rb, lib/copland/service-point.rb, lib/copland/configuration/yaml/listener.rb, lib/copland/impl/autoloader.rb, lib/copland/impl/package.yml, lib/copland/impl/startup.rb, test/mock.rb, test/tc_service-point.rb, test/tc_service.rb, test/configuration/yaml/tc_listener-processor.rb, test/impl/tc_startup.rb, test/impl/startup/package.yml, test/impl/startup/services.rb, test/services/package.yml, test/services/simple.rb: Reworked the whole listener idea. I decided I liked HiveMind's approach better after all. Livecycle events are not currently available as a result, and to get anything to happen when the Registry initializes, you need to add the service to the copland.Startup configuration point. Oh, and the copland.AutoLoader service and configuration point have gone away, in favor of Startup. 2004-08-31 16:33 minam * lib/copland/: interceptor-chain.rb, service-point.rb: Applying interceptors to a service no longer do method name mangling. Instead, they wrap the service in another proxy and add methods to the proxy. This keeps the namespace cleaner, I think. 2004-08-31 13:07 minam * lib/copland/impl/class-builder-factory.rb, lib/copland/impl/env-symbol-source.rb, lib/copland/impl/multicast-factory.rb, lib/copland/impl/package.yml, lib/copland/impl/ruby-symbol-source.rb, lib/copland/impl/synchronizing-interceptor.rb, test/impl/tc_class-builder-factory.rb, test/impl/tc_multicast-factory.rb, test/impl/tc_symbol-sources.rb, test/impl/tc_synchronizing-interceptor.rb, test/impl/symbols/package.yml, test/impl/symbols/services.rb: Moved various non-core services to a new project: 'copland-lib'. 2004-08-31 11:26 minam * test/: tests.rb, configuration/yaml/tc_config-loader.rb: Fixed tests as a result of copland.remote being moved. 2004-08-30 15:16 minam * TODO: Updated TODO list. 2004-08-30 14:20 minam * lib/copland/utils.rb, lib/copland/impl/env-symbol-source.rb, lib/copland/impl/package.yml, lib/copland/impl/ruby-symbol-source.rb, lib/copland/impl/symbol-source-manager.rb, lib/copland/impl/symbol-source.rb, test/tests.rb, test/impl/tc_symbol-sources.rb, test/impl/symbols/package.yml, test/impl/symbols/services.rb: Reworked the symbol-source stuff to fit more with HiveMind's implementation, which I think is a pretty solid approach. Also added two additional symbol sources, ENVSymbolSource and RubySymbolSource. 2004-08-30 11:19 minam * TODO: Fixed documentation errors in drb-server.rb, and made soap-server use the logger from Copland, instead of creating its own. 2004-08-30 09:32 minam * lib/copland/impl/package.yml, test/tests.rb: Added new "copland.remote.DRbServiceFactory" service for wrapping remote DRb objects as Copland services. 2004-08-29 22:24 minam * doc/manual/manual.yml: Corrected some minor misinformation in the manual. 2004-08-29 21:39 minam * copland.gemspec: Added better rdoc support.