Look at rheise.os 0.1.5. Ryan has already resolved the namespace conflict. Packages in rheise.os product are back in the rheise.* namespace. This namespace conflict was resolved appropriately. The rheise.os product no longer defines classes in the jos.system package. http://www.jos.org/redist/rheise.os/ Please allow me speak with my own voice. My objection is about the successful integration of multiple products, specifically the integration of decaf and rheise.os. Let rheise.os 0.1.5 serve as an example of how it should be done. (Actually, it has little to do with perfect backward compatibility and stable/unstable products.) Rule #1: You should not re-define a package published by another member. Corrolary: Likewise, your package should not be re-defined by another member. Packages are "owned" by the person who first defines them. Otherwise, total chaos would result and no product could be integrated with any other product. Rule #2: You can re-define your package if you must; but, beware the hazards. Corrolary: Likewise, your applications can't trust packages written by anyone who practices such re-definition. Re-defining a package is likely to break all other packages that depend upon it. Many, many packages depend on the operating system. We can't afford to rewrite all applications with each minor release of the operating system, can we? There aren't enough hours in the day to re-write, re-document and re-test all applications that depend on the operating system. And, this is especially so when most applications are written by third parties. It is unnecessary and undesireable for multiple products to knowingly and intentionally use the same package name for different packages. Computers hate ambiguity. When two or more packages have the same name, bad things happen. They cannot be compiled together. They cannot be integrated. Their dependencies cannot be resolved. They cannot participate in the same CLASSPATH. Documentation and is far more expensive. It is unnecessary because Java has a very large namespace. There is no compelling reason for one application to reuse the namespace of another. And, there is no compelling reason for one member of the JOS project to overwrite another member's package. As far as rules, we should be quick to point out the conflict in namespace so that products are as compatible as possible. All applications must be integrated into JOS because JOS is an operating system. If a member wants to, they are allowed to overwrite their own package. But, they are not allowed to overwrite the package of another member. Say whatever you want about compatibility. We cannot afford to create a culture where we remain silent while one member destroys the hard work of another. I felt it necessary to warn anyone trying to use rheise.os 0.1.4 with decaf that /both/ products define the jos.system package. Since decaf published the package first, decaf wins. Subsequently, Ryan put his packages back in the rheise.* namespace. It is as it should be. _______________________________________________ Kernel maillist - [EMAIL PROTECTED] http://jos.org/mailman/listinfo/kernel
[JOS-Kernel] [rheise.os 0.1.5] Resolved
Gilbert Carl Herschberger II Mon, 18 Sep 2000 19:10:10 -0700
