Dove scrivere e memorizzare la mappa mongoDB / ridurre le funzioni nel progetto java

Qualcuno ha qualche consiglio o conosce delle migliori pratiche per where e come in un progetto Java scrivere e memorizzare mappe javascript / ridurre le funzioni per l'utilizzo con un database MongoDB?

I criteri che cerco sono:

Durante la scrittura e la modifica delle funzioni vorrei il vantaggio di evidenziare la syntax e verificare gli errori forniti da un IDE (che sto utilizzando Eclipse).

Non voglio copiare le funzioni in una posizione diversa quando ho finito di modificarle, se ansible.

Preferisco memorizzare le funzioni nel codice sorgente rispetto al DB stesso, per facilitare il riferimento, il controllo delle versioni, ecc.

Qualsiasi esempio di come hai risolto questo problema sarebbe grande.

EDIT: Non sono sicuro di aver spiegato correttamente, quindi è un altro passo:

Non sto chiedendo la gestione delle risorse di base. Quello che sto dopo è, se ansible, un ambiente di lavoro che mi consente i vantaggi del mio IDE durante la modifica delle funzioni 'in place'. Devi scusarmi se manca qualcosa che è ovvio.

Quello che voglio evitare sono cose come si potrebbe vedere con SQL, ad esempio quando è memorizzata come una string in un file di class:

private static final String MAP_FUNC = "function() { " + " emit(this.id, {total : this.total}); " + "};"; 

o in un file di properties; di java:

 map.func=function() { \ emit(this.id, {total : this.total}); \ }; 

where devi inserire un numero di caratteri estranei come "s" e "s". Dovete scrivere in qualche altra parte, quindi copiarla e incollarla e aggiungere questi caratteri (o puoi avere uno strumento che lo fa per te – dovrai ancora farlo).

Poiché JavaScript è validationto da Eclipse quando è scritto in file .js, non voglio fare nulla di questo. Vorrei memorizzare le funzioni in file .js in modo tale da essere pronti per un consumo facile da una mappa / ridurre la chiamata quando necessario.

Qualcuno fa questo, o simile? La mia idea iniziale era solo di creare un singolo file js per each function, tuttavia un file .js con nient'altro che una function anonima in esso non valida la validation in eclipse, che lo rende inutile – devi assegnarlo ad un var – la sua non è nella forma corretta per il consumo per mappa / riduzione. Suppongo di poter creare file solo del contenuto delle funzioni? Ma tutto questo suona un po 'disordinato e speravo che qualcun altro avrebbe potuto affrontare il problema e avere una soluzione ordinata.

La convenzione che uso e ho visto nella maggior parte dei progetti open source (inclusi Spring et al) è quello di mettere tutti i file non java in una directory di risorse, sotto una directory descrittiva:

 module-root/ src/ main/ java/ (Java sources go here) resources/ log4j.xml spring/ (spring xmls go here) sql/ (sql scripts go here) mongo/ (<-- seems like a good place for mongoDB functions) test/ unit/ java/ (unit test java sources go here) resources/ (unit test specific resources - usually none) integration/ java/ (integration test java sources go here) resources/ spring/ (usually an ITestAssembly.xml goes here) 

Il file buildfile quindi raggruppa le risorse in un jar di risorse, che viene distribuito insieme con tutti gli altri vasetti.

Mettiamo i file JS come risorse dell'applicazione nel progetto (Eclipse) e, dopo l'initialization dell'applicazione, i file vengono letti dalle applicazioni Java (applicazioni web o demoni nel nostro caso), memorizzati in una class di gestione singleton e utilizzati secondo necessità quando invocando, ad esempio, una mappa / riduzione.

È una gestione delle risorse relativamente semplice.