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.
|