Create a JS fragment or similar that includes all JS necessary files
--------------------------------------------------------------------
Key: MOJO-1139
URL: http://jira.codehaus.org/browse/MOJO-1139
Project: Mojo
Issue Type: New Feature
Components: javascript-tools
Environment: n/a
Reporter: Harlan Iverson
Create a JS fragment or similar that includes all JS necessary files.
Please leave feedback, maybe discuss on list.
The end result of this is two things:
- convenience and a (more) compelling reason to use Maven for JS builds (where
MAKE seems to have a lot of traction, what the?)
- the foundation for functionality needed to create the biggest, most bad-assed
Google AJAX API killer ever.
Think:
Mate Maven JS artifacts with the Dojo dependency system
This would be the use case:
I have MyCoolLib that depends on Prototype and Scriptaculous.
MyCoolLib is broken into core, and sub-functionalities A and B. Scriptaculous
and possibly Prototype are further broken up using this same model.
I want to be able to include MyCoolLib (any sub module) and everything that it
requires to run without explicitly knowing assembly/file names of packages that
are depended upon within the HTML file.
===================================
Prototype
|
+- prototype.js
Scriptaculous
|
+- scriptaculous.js
|
+- dragdrop.js
|
+- slider.js
MyCoolLibrary
|
+- coolstuff_core.js
|
+- coolstuff_a.js
|
+- coolstuff_b.js
===================================
Order matters for both dependencies and local files (assemblies). MyCoolLib
might be one or more JS files, and the order of its own files matter--likewise
for each dependency.
- One possible solution could be to always assume that every artifact has only
one assembly.
- Another would be to add an intra-assembly dependency extension to the
assembler document, in its own namespace.
===================================
<assembler
xmlns:dep="http://mojo.codehaus.org/javascript-maven-tools/#assembly-dependency">
<scripts>
<script>
<dep:dep script="prototype.js" groupId="com.prototype"
artifactId="prototype"/>
<fileName>coolstuff_core.js</fileName>
<includes><!-- ... --></includes>
</script>
<script>
<dep:dep script="coolstuff_core.js"/>
<!-- slider depends on dragdrop, depends on scriptaculous, depends on
prototype (which is already depended on by core) -->
<dep:dep script="slider.js" groupId="com.scriptaculous"
artifactId="scriptaculous"/>
<fileName>coolstuff_a.js</fileName>
<includes><!-- ... --></includes>
</script>
<script>
<dep:dep script="coolstuff_core.js"/>
<fileName>coolstuff_a.js</fileName>
<includes><!-- ... --></includes>
</script>
</scripts>
</assembler>
===================================
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email