Skip to content

Latest commit

 

History

History
97 lines (88 loc) · 5.02 KB

todo.org

File metadata and controls

97 lines (88 loc) · 5.02 KB

Separate tasks into xjc and jaxb-generate-dependency-graph

Add xjc dependsOn(jaxb-generate-dependency-graph)

add the extra external binding files until I figure out a way to share memory between tasks??

if there could be some way to share memory between tasks, I could eliminate the need for this

Fix the external binding,

need to take away that propert externalBindings in the Extension class

do it in code because not every namespace needs that external set and needs to be dynamic

get the file location that the external import lists, if not gives location, don’t put in the list

go through the external import file, find imports and go to those files and find imports

go through externam import file and locate includs and find the imports there as well

Add the includes xsd processing, not there yet

Once done with the includes processing, check for empty xsdFiles fields and if there are, then:

Remove from nsCollection

add a configuration in the Plugin class for the jaxb configuration

Add error checkers and throw specific errors if things aren’t where they should be

add groovy docs to the methods and variables

add inputs and outputs dependencies to maybe not run a task if you don’t need to

add the binding includes portion

is it reasonable to add anything for external include statements??

Can’t check for namespace, becuase includes doesn’t use that, but could check the startingDir

I don’t think it is reasonable, who would include something in a different top level directory?

put processing in for illegal arguments in the XJC tasks, and throw errors.

Like that every episode file binding actually exists

That directories exist

Binding Diretory

Episodes directoty

etc.

jaxbSchemaDestinationDirectory is defaulted to

jaxbSchemaDestinationDirectory = “src/main/java” in Plugin configruation. it should be something more like “${project.dir}/src/main/java” because currently you can only run it from it’s subproject dir, not the top level.

This is ok, the task knows that the relative path is project.projectDir, but the sanityChecks() didn’t know that distincation until now

Make a utility class with methods like isAlreadyInList etc.

Instead of populating a map as an intermediary, populate the NamespaceMetaData appropriately

if @targetNamespace is empty, will populate with a “null”, then should throw a warning if encountering a null when running XJC

apply plugin JavaPlugin

Lose one extra line of code in build.gradle or whatee

The extra code that is in the XJCTask could be factored out and could have better tests written for it

Make a better test suite covering

xsd imports

xsd includes

xsd external imported namespaces

override set namespace in NamespaceMetaData to additionally convert namespace to episode name automatically

Fix the failing test case that shifts a namespace down, but it must also shift the namespace that this depends on down as well.

Accidentally deleted the NamespaceData equals and hashCode methods messing around with magit. Put them back in there.

Tree node hash and equals need to be cleaned up

mock antbuilder so can write integration tests all the way through

Task -> Task configuration through dependencies

Done through the addDependsOn* method in JaxbPlugin. If there is a configuration that depends on the jaxb configuration, then the ‘xjc’ task depends on the ‘graph’ task like always. But now the ‘graph’ task will depend on the ‘:common:xjc’ task, or whatever the project is named, that will in turn depend on it’s own ‘graph’ task. So projects can depend on each other to be parsed first so the dependency is there. Yea.

Figure out a way to incrementally execute these tasks. especially if projA depends on projB. Project B should be executed twice!