<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="http://wiki.apidesign.org/skins/common/feed.css?116"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.apidesign.org/index.php?action=history&amp;feed=atom&amp;title=Hint</id>
		<title>Hint - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.apidesign.org/index.php?action=history&amp;feed=atom&amp;title=Hint"/>
		<link rel="alternate" type="text/html" href="http://wiki.apidesign.org/index.php?title=Hint&amp;action=history"/>
		<updated>2026-05-06T08:17:24Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.12.0rc1</generator>

	<entry>
		<id>http://wiki.apidesign.org/index.php?title=Hint&amp;diff=5889&amp;oldid=prev</id>
		<title>JaroslavTulach: New page: Hint in a modular system allows expressing, default, preferred and actual solution to particular configuration problem. A module system like Jigsaw may use hints to elimina...</title>
		<link rel="alternate" type="text/html" href="http://wiki.apidesign.org/index.php?title=Hint&amp;diff=5889&amp;oldid=prev"/>
				<updated>2012-06-21T14:28:43Z</updated>
		
		<summary type="html">&lt;p&gt;New page: &lt;a href=&quot;/wiki/Hint&quot; title=&quot;Hint&quot;&gt;Hint&lt;/a&gt; in a &lt;a href=&quot;/wiki/Modular_system&quot; class=&quot;mw-redirect&quot; title=&quot;Modular system&quot;&gt;modular system&lt;/a&gt; allows expressing, default, preferred and actual solution to particular configuration problem. A module system like &lt;a href=&quot;/wiki/Jigsaw&quot; title=&quot;Jigsaw&quot;&gt;Jigsaw&lt;/a&gt; may use &lt;a href=&quot;/wiki/Hint&quot; title=&quot;Hint&quot;&gt;hints&lt;/a&gt; to elimina...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Hint]] in a [[modular system]] allows expressing, default, preferred and actual solution to particular configuration problem. A module system like [[Jigsaw]] may use [[hint]]s to eliminate the [[NP-Complete]] nature of its [[JigsawServices]].&lt;br /&gt;
&lt;br /&gt;
== Levels of Configuration ==&lt;br /&gt;
&lt;br /&gt;
The general principle should be: the one that [[SuperVsInner|knows more]] should make the &lt;br /&gt;
decision:&lt;br /&gt;
&lt;br /&gt;
# a JAXP API knows it needs an implementation of its [[API]] and it knows that [[Xerces]] module  provides one that is good enough. This is an example of [[Convention over Configuration]] - unless somebody overrides my default, use [[Xerces]].&lt;br /&gt;
# the application vendor (providing the application module) knows all the  modules in its application and all the services and can decide certain services should have different default (this is what [[Maven]] tries to do with its ''shortest'' path [[dependency]]). Also when compiling the whole application, it  should be easy to decide whether different services are compatible with the rest of modules or not as one knows the transitive closure of the whole application.&lt;br /&gt;
# a deployer should have the option to override the application defaults without coding in [[Java]] of course one needs to install com.myapp.xsltproc module into the appropriate [[Jigsaw]] [[library]] as well as org.apache.crimson module, so the resolver can enable both.&lt;br /&gt;
&lt;br /&gt;
The 3rd level could be achieved from a command line or by using configuration file of [[XML|yet undefined format]]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ java \&lt;br /&gt;
  -module com.myapp.xsltproc \&lt;br /&gt;
  -service javax.xml.parser.DocumentBuilderFactory \&lt;br /&gt;
  -default org.apache.crimson.CrimsonBuilderFactory&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>JaroslavTulach</name></author>	</entry>

	</feed>