svn commit: r951868 [2/3] - in /forrest/trunk/whiteboard/f9: ./ bin/ lib/ project/ project/boot/ project/boot/scala-2.7.7/ project/boot/scala-2.7.7/lib/ project/boot/scala-2.7.7/org.scala-tools.sbt/ project/boot/scala-2.7.7/org.scala-tools.sbt/sbt/ pro...

[email protected]
Newsgroups gmane.text.xml.forrest.cvs
Message-ID <[email protected]>
Added: forrest/trunk/whiteboard/f9/src/conf/mime.types
URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/f9/src/conf/mime.types?rev=951868&view=auto
==============================================================================
--- forrest/trunk/whiteboard/f9/src/conf/mime.types (added)
+++ forrest/trunk/whiteboard/f9/src/conf/mime.types Sun Jun  6 14:38:12 2010
@@ -0,0 +1,1351 @@
+# This file maps Internet media types to unique file extension(s).
+# Although created for httpd, this file is used by many software systems
+# and has been placed in the public domain for unlimited redisribution.
+#
+# The table below contains both registered and (common) unregistered types.
+# A type that has no unique extension can be ignored -- they are listed
+# here to guide configurations toward known types and to make it easier to
+# identify "new" types.  File extensions are also commonly used to indicate
+# content languages and encodings, so choose them carefully.
+#
+# Internet media types should be registered as described in RFC 4288.
+# The registry is at <http://www.iana.org/assignments/media-types/>.
+#
+# MIME type					Extensions
+# application/3gpp-ims+xml
+# application/activemessage
+application/andrew-inset			ez
+# application/applefile
+application/applixware				aw
+application/atom+xml				atom
+application/atomcat+xml				atomcat
+# application/atomicmail
+application/atomsvc+xml				atomsvc
+# application/auth-policy+xml
+# application/batch-smtp
+# application/beep+xml
+# application/cals-1840
+application/ccxml+xml				ccxml
+# application/cea-2018+xml
+# application/cellml+xml
+# application/cnrp+xml
+# application/commonground
+# application/conference-info+xml
+# application/cpl+xml
+# application/csta+xml
+# application/cstadata+xml
+application/cu-seeme				cu
+# application/cybercash
+application/davmount+xml			davmount
+# application/dca-rft
+# application/dec-dx
+# application/dialog-info+xml
+# application/dicom
+# application/dns
+application/dssc+der				dssc
+application/dssc+xml				xdssc
+# application/dvcs
+application/ecmascript				ecma
+# application/edi-consent
+# application/edi-x12
+# application/edifact
+application/emma+xml				emma
+# application/epp+xml
+application/epub+zip				epub
+# application/eshop
+# application/example
+# application/fastinfoset
+# application/fastsoap
+# application/fits
+application/font-tdpfr				pfr
+# application/h224
+# application/held+xml
+# application/http
+application/hyperstudio				stk
+# application/ibe-key-request+xml
+# application/ibe-pkg-reply+xml
+# application/ibe-pp-data
+# application/iges
+# application/im-iscomposing+xml
+# application/index
+# application/index.cmd
+# application/index.obj
+# application/index.response
+# application/index.vnd
+# application/iotp
+application/ipfix				ipfix
+# application/ipp
+# application/isup
+application/java-archive			jar
+application/java-serialized-object		ser
+application/java-vm				class
+application/javascript				js
+application/json				json
+# application/kpml-request+xml
+# application/kpml-response+xml
+application/lost+xml				lostxml
+application/mac-binhex40			hqx
+application/mac-compactpro			cpt
+# application/macwriteii
+application/marc				mrc
+application/mathematica				ma nb mb
+application/mathml+xml				mathml
+# application/mbms-associated-procedure-description+xml
+# application/mbms-deregister+xml
+# application/mbms-envelope+xml
+# application/mbms-msk+xml
+# application/mbms-msk-response+xml
+# application/mbms-protection-description+xml
+# application/mbms-reception-report+xml
+# application/mbms-register+xml
+# application/mbms-register-response+xml
+# application/mbms-user-service-description+xml
+application/mbox				mbox
+# application/media_control+xml
+application/mediaservercontrol+xml		mscml
+# application/mikey
+# application/moss-keys
+# application/moss-signature
+# application/mosskey-data
+# application/mosskey-request
+application/mp4					mp4s
+# application/mpeg4-generic
+# application/mpeg4-iod
+# application/mpeg4-iod-xmt
+application/msword				doc dot
+application/mxf					mxf
+# application/nasdata
+# application/news-checkgroups
+# application/news-groupinfo
+# application/news-transmission
+# application/nss
+# application/ocsp-request
+# application/ocsp-response
+application/octet-stream	bin dms lha lrf lzh so iso dmg dist distz pkg bpk dump elc deploy
+application/oda					oda
+application/oebps-package+xml			opf
+application/ogg					ogx
+application/onenote				onetoc onetoc2 onetmp onepkg
+# application/parityfec
+application/patch-ops-error+xml			xer
+application/pdf					pdf
+application/pgp-encrypted			pgp
+# application/pgp-keys
+application/pgp-signature			asc sig
+application/pics-rules				prf
+# application/pidf+xml
+# application/pidf-diff+xml
+application/pkcs10				p10
+application/pkcs7-mime				p7m p7c
+application/pkcs7-signature			p7s
+application/pkix-cert				cer
+application/pkix-crl				crl
+application/pkix-pkipath			pkipath
+application/pkixcmp				pki
+application/pls+xml				pls
+# application/poc-settings+xml
+application/postscript				ai eps ps
+# application/prs.alvestrand.titrax-sheet
+application/prs.cww				cww
+# application/prs.nprend
+# application/prs.plucker
+# application/qsig
+application/rdf+xml				rdf
+application/reginfo+xml				rif
+application/relax-ng-compact-syntax		rnc
+# application/remote-printing
+application/resource-lists+xml			rl
+application/resource-lists-diff+xml		rld
+# application/riscos
+# application/rlmi+xml
+application/rls-services+xml			rs
+application/rsd+xml				rsd
+application/rss+xml				rss
+application/rtf					rtf
+# application/rtx
+# application/samlassertion+xml
+# application/samlmetadata+xml
+application/sbml+xml				sbml
+application/scvp-cv-request			scq
+application/scvp-cv-response			scs
+application/scvp-vp-request			spq
+application/scvp-vp-response			spp
+application/sdp					sdp
+# application/set-payment
+application/set-payment-initiation		setpay
+# application/set-registration
+application/set-registration-initiation		setreg
+# application/sgml
+# application/sgml-open-catalog
+application/shf+xml				shf
+# application/sieve
+# application/simple-filter+xml
+# application/simple-message-summary
+# application/simplesymbolcontainer
+# application/slate
+# application/smil
+application/smil+xml				smi smil
+# application/soap+fastinfoset
+# application/soap+xml
+application/sparql-query			rq
+application/sparql-results+xml			srx
+# application/spirits-event+xml
+application/srgs				gram
+application/srgs+xml				grxml
+application/ssml+xml				ssml
+# application/timestamp-query
+# application/timestamp-reply
+# application/tve-trigger
+# application/ulpfec
+# application/vemmi
+# application/vividence.scriptfile
+# application/vnd.3gpp.bsf+xml
+application/vnd.3gpp.pic-bw-large		plb
+application/vnd.3gpp.pic-bw-small		psb
+application/vnd.3gpp.pic-bw-var			pvb
+# application/vnd.3gpp.sms
+# application/vnd.3gpp2.bcmcsinfo+xml
+# application/vnd.3gpp2.sms
+application/vnd.3gpp2.tcap			tcap
+application/vnd.3m.post-it-notes		pwn
+application/vnd.accpac.simply.aso		aso
+application/vnd.accpac.simply.imp		imp
+application/vnd.acucobol			acu
+application/vnd.acucorp				atc acutc
+application/vnd.adobe.air-application-installer-package+zip	air
+# application/vnd.adobe.partial-upload
+application/vnd.adobe.xdp+xml			xdp
+application/vnd.adobe.xfdf			xfdf
+# application/vnd.aether.imp
+application/vnd.airzip.filesecure.azf		azf
+application/vnd.airzip.filesecure.azs		azs
+application/vnd.amazon.ebook			azw
+application/vnd.americandynamics.acc		acc
+application/vnd.amiga.ami			ami
+application/vnd.android.package-archive		apk
+application/vnd.anser-web-certificate-issue-initiation	cii
+application/vnd.anser-web-funds-transfer-initiation	fti
+application/vnd.antix.game-component		atx
+application/vnd.apple.installer+xml		mpkg
+application/vnd.apple.mpegurl			m3u8
+# application/vnd.arastra.swi
+application/vnd.aristanetworks.swi		swi
+application/vnd.audiograph			aep
+# application/vnd.autopackage
+# application/vnd.avistar+xml
+application/vnd.blueice.multipass		mpm
+# application/vnd.bluetooth.ep.oob
+application/vnd.bmi				bmi
+application/vnd.businessobjects			rep
+# application/vnd.cab-jscript
+# application/vnd.canon-cpdl
+# application/vnd.canon-lips
+# application/vnd.cendio.thinlinc.clientconf
+application/vnd.chemdraw+xml			cdxml
+application/vnd.chipnuts.karaoke-mmd		mmd
+application/vnd.cinderella			cdy
+# application/vnd.cirpack.isdn-ext
+application/vnd.claymore			cla
+application/vnd.cloanto.rp9			rp9
+application/vnd.clonk.c4group			c4g c4d c4f c4p c4u
+# application/vnd.commerce-battelle
+application/vnd.commonspace			csp
+application/vnd.contact.cmsg			cdbcmsg
+application/vnd.cosmocaller			cmc
+application/vnd.crick.clicker			clkx
+application/vnd.crick.clicker.keyboard		clkk
+application/vnd.crick.clicker.palette		clkp
+application/vnd.crick.clicker.template		clkt
+application/vnd.crick.clicker.wordbank		clkw
+application/vnd.criticaltools.wbs+xml		wbs
+application/vnd.ctc-posml			pml
+# application/vnd.ctct.ws+xml
+# application/vnd.cups-pdf
+# application/vnd.cups-postscript
+application/vnd.cups-ppd			ppd
+# application/vnd.cups-raster
+# application/vnd.cups-raw
+application/vnd.curl.car			car
+application/vnd.curl.pcurl			pcurl
+# application/vnd.cybank
+application/vnd.data-vision.rdz			rdz
+application/vnd.denovo.fcselayout-link		fe_launch
+# application/vnd.dir-bi.plate-dl-nosuffix
+application/vnd.dna				dna
+application/vnd.dolby.mlp			mlp
+# application/vnd.dolby.mobile.1
+# application/vnd.dolby.mobile.2
+application/vnd.dpgraph				dpg
+application/vnd.dreamfactory			dfac
+# application/vnd.dvb.esgcontainer
+# application/vnd.dvb.ipdcdftnotifaccess
+# application/vnd.dvb.ipdcesgaccess
+# application/vnd.dvb.ipdcroaming
+# application/vnd.dvb.iptv.alfec-base
+# application/vnd.dvb.iptv.alfec-enhancement
+# application/vnd.dvb.notif-aggregate-root+xml
+# application/vnd.dvb.notif-container+xml
+# application/vnd.dvb.notif-generic+xml
+# application/vnd.dvb.notif-ia-msglist+xml
+# application/vnd.dvb.notif-ia-registration-request+xml
+# application/vnd.dvb.notif-ia-registration-response+xml
+# application/vnd.dvb.notif-init+xml
+# application/vnd.dxr
+application/vnd.dynageo				geo
+# application/vnd.ecdis-update
+application/vnd.ecowin.chart			mag
+# application/vnd.ecowin.filerequest
+# application/vnd.ecowin.fileupdate
+# application/vnd.ecowin.series
+# application/vnd.ecowin.seriesrequest
+# application/vnd.ecowin.seriesupdate
+# application/vnd.emclient.accessrequest+xml
+application/vnd.enliven				nml
+application/vnd.epson.esf			esf
+application/vnd.epson.msf			msf
+application/vnd.epson.quickanime		qam
+application/vnd.epson.salt			slt
+application/vnd.epson.ssf			ssf
+# application/vnd.ericsson.quickcall
+application/vnd.eszigno3+xml			es3 et3
+# application/vnd.etsi.aoc+xml
+# application/vnd.etsi.cug+xml
+# application/vnd.etsi.iptvcommand+xml
+# application/vnd.etsi.iptvdiscovery+xml
+# application/vnd.etsi.iptvprofile+xml
+# application/vnd.etsi.iptvsad-bc+xml
+# application/vnd.etsi.iptvsad-cod+xml
+# application/vnd.etsi.iptvsad-npvr+xml
+# application/vnd.etsi.iptvueprofile+xml
+# application/vnd.etsi.mcid+xml
+# application/vnd.etsi.sci+xml
+# application/vnd.etsi.simservs+xml
+# application/vnd.etsi.tsl+xml
+# application/vnd.etsi.tsl.der
+# application/vnd.eudora.data
+application/vnd.ezpix-album			ez2
+application/vnd.ezpix-package			ez3
+# application/vnd.f-secure.mobile
+application/vnd.fdf				fdf
+application/vnd.fdsn.mseed			mseed
+application/vnd.fdsn.seed			seed dataless
+# application/vnd.ffsns
+# application/vnd.fints
+application/vnd.flographit			gph
+application/vnd.fluxtime.clip			ftc
+# application/vnd.font-fontforge-sfd
+application/vnd.framemaker			fm frame maker book
+application/vnd.frogans.fnc			fnc
+application/vnd.frogans.ltf			ltf
+application/vnd.fsc.weblaunch			fsc
+application/vnd.fujitsu.oasys			oas
+application/vnd.fujitsu.oasys2			oa2
+application/vnd.fujitsu.oasys3			oa3
+application/vnd.fujitsu.oasysgp			fg5
+application/vnd.fujitsu.oasysprs		bh2
+# application/vnd.fujixerox.art-ex
+# application/vnd.fujixerox.art4
+# application/vnd.fujixerox.hbpl
+application/vnd.fujixerox.ddd			ddd
+application/vnd.fujixerox.docuworks		xdw
+application/vnd.fujixerox.docuworks.binder	xbd
+# application/vnd.fut-misnet
+application/vnd.fuzzysheet			fzs
+application/vnd.genomatix.tuxedo		txd
+# application/vnd.geocube+xml
+application/vnd.geogebra.file			ggb
+application/vnd.geogebra.tool			ggt
+application/vnd.geometry-explorer		gex gre
+application/vnd.geonext				gxt
+application/vnd.geoplan				g2w
+application/vnd.geospace			g3w
+# application/vnd.globalplatform.card-content-mgt
+# application/vnd.globalplatform.card-content-mgt-response
+application/vnd.gmx				gmx
+application/vnd.google-earth.kml+xml		kml
+application/vnd.google-earth.kmz		kmz
+application/vnd.grafeq				gqf gqs
+# application/vnd.gridmp
+application/vnd.groove-account			gac
+application/vnd.groove-help			ghf
+application/vnd.groove-identity-message		gim
+application/vnd.groove-injector			grv
+application/vnd.groove-tool-message		gtm
+application/vnd.groove-tool-template		tpl
+application/vnd.groove-vcard			vcg
+application/vnd.handheld-entertainment+xml	zmm
+application/vnd.hbci				hbci
+# application/vnd.hcl-bireports
+application/vnd.hhe.lesson-player		les
+application/vnd.hp-hpgl				hpgl
+application/vnd.hp-hpid				hpid
+application/vnd.hp-hps				hps
+application/vnd.hp-jlyt				jlt
+application/vnd.hp-pcl				pcl
+application/vnd.hp-pclxl			pclxl
+# application/vnd.httphone
+application/vnd.hydrostatix.sof-data		sfd-hdstx
+application/vnd.hzn-3d-crossword		x3d
+# application/vnd.ibm.afplinedata
+# application/vnd.ibm.electronic-media
+application/vnd.ibm.minipay			mpy
+application/vnd.ibm.modcap			afp listafp list3820
+application/vnd.ibm.rights-management		irm
+application/vnd.ibm.secure-container		sc
+application/vnd.iccprofile			icc icm
+application/vnd.igloader			igl
+application/vnd.immervision-ivp			ivp
+application/vnd.immervision-ivu			ivu
+# application/vnd.informedcontrol.rms+xml
+# application/vnd.informix-visionary
+application/vnd.intercon.formnet		xpw xpx
+# application/vnd.intertrust.digibox
+# application/vnd.intertrust.nncp
+application/vnd.intu.qbo			qbo
+application/vnd.intu.qfx			qfx
+# application/vnd.iptc.g2.conceptitem+xml
+# application/vnd.iptc.g2.knowledgeitem+xml
+# application/vnd.iptc.g2.newsitem+xml
+# application/vnd.iptc.g2.packageitem+xml
+application/vnd.ipunplugged.rcprofile		rcprofile
+application/vnd.irepository.package+xml		irp
+application/vnd.is-xpr				xpr
+application/vnd.jam				jam
+# application/vnd.japannet-directory-service
+# application/vnd.japannet-jpnstore-wakeup
+# application/vnd.japannet-payment-wakeup
+# application/vnd.japannet-registration
+# application/vnd.japannet-registration-wakeup
+# application/vnd.japannet-setstore-wakeup
+# application/vnd.japannet-verification
+# application/vnd.japannet-verification-wakeup
+application/vnd.jcp.javame.midlet-rms		rms
+application/vnd.jisp				jisp
+application/vnd.joost.joda-archive		joda
+application/vnd.kahootz				ktz ktr
+application/vnd.kde.karbon			karbon
+application/vnd.kde.kchart			chrt
+application/vnd.kde.kformula			kfo
+application/vnd.kde.kivio			flw
+application/vnd.kde.kontour			kon
+application/vnd.kde.kpresenter			kpr kpt
+application/vnd.kde.kspread			ksp
+application/vnd.kde.kword			kwd kwt
+application/vnd.kenameaapp			htke
+application/vnd.kidspiration			kia
+application/vnd.kinar				kne knp
+application/vnd.koan				skp skd skt skm
+application/vnd.kodak-descriptor		sse
+# application/vnd.liberty-request+xml
+application/vnd.llamagraphics.life-balance.desktop	lbd
+application/vnd.llamagraphics.life-balance.exchange+xml	lbe
+application/vnd.lotus-1-2-3			123
+application/vnd.lotus-approach			apr
+application/vnd.lotus-freelance			pre
+application/vnd.lotus-notes			nsf
+application/vnd.lotus-organizer			org
+application/vnd.lotus-screencam			scm
+application/vnd.lotus-wordpro			lwp
+application/vnd.macports.portpkg		portpkg
+# application/vnd.marlin.drm.actiontoken+xml
+# application/vnd.marlin.drm.conftoken+xml
+# application/vnd.marlin.drm.license+xml
+# application/vnd.marlin.drm.mdcf
+application/vnd.mcd				mcd
+application/vnd.medcalcdata			mc1
+application/vnd.mediastation.cdkey		cdkey
+# application/vnd.meridian-slingshot
+application/vnd.mfer				mwf
+application/vnd.mfmp				mfm
+application/vnd.micrografx.flo			flo
+application/vnd.micrografx.igx			igx
+application/vnd.mif				mif
+# application/vnd.minisoft-hp3000-save
+# application/vnd.mitsubishi.misty-guard.trustweb
+application/vnd.mobius.daf			daf
+application/vnd.mobius.dis			dis
+application/vnd.mobius.mbk			mbk
+application/vnd.mobius.mqy			mqy
+application/vnd.mobius.msl			msl
+application/vnd.mobius.plc			plc
+application/vnd.mobius.txf			txf
+application/vnd.mophun.application		mpn
+application/vnd.mophun.certificate		mpc
+# application/vnd.motorola.flexsuite
+# application/vnd.motorola.flexsuite.adsi
+# application/vnd.motorola.flexsuite.fis
+# application/vnd.motorola.flexsuite.gotap
+# application/vnd.motorola.flexsuite.kmr
+# application/vnd.motorola.flexsuite.ttc
+# application/vnd.motorola.flexsuite.wem
+# application/vnd.motorola.iprm
+application/vnd.mozilla.xul+xml			xul
+application/vnd.ms-artgalry			cil
+# application/vnd.ms-asf
+application/vnd.ms-cab-compressed		cab
+application/vnd.ms-excel			xls xlm xla xlc xlt xlw
+application/vnd.ms-excel.addin.macroenabled.12		xlam
+application/vnd.ms-excel.sheet.binary.macroenabled.12	xlsb
+application/vnd.ms-excel.sheet.macroenabled.12		xlsm
+application/vnd.ms-excel.template.macroenabled.12	xltm
+application/vnd.ms-fontobject			eot
+application/vnd.ms-htmlhelp			chm
+application/vnd.ms-ims				ims
+application/vnd.ms-lrm				lrm
+application/vnd.ms-pki.seccat			cat
+application/vnd.ms-pki.stl			stl
+# application/vnd.ms-playready.initiator+xml
+application/vnd.ms-powerpoint			ppt pps pot
+application/vnd.ms-powerpoint.addin.macroenabled.12		ppam
+application/vnd.ms-powerpoint.presentation.macroenabled.12	pptm
+application/vnd.ms-powerpoint.slide.macroenabled.12		sldm
+application/vnd.ms-powerpoint.slideshow.macroenabled.12		ppsm
+application/vnd.ms-powerpoint.template.macroenabled.12		potm
+application/vnd.ms-project			mpp mpt
+# application/vnd.ms-tnef
+# application/vnd.ms-wmdrm.lic-chlg-req
+# application/vnd.ms-wmdrm.lic-resp
+# application/vnd.ms-wmdrm.meter-chlg-req
+# application/vnd.ms-wmdrm.meter-resp
+application/vnd.ms-word.document.macroenabled.12	docm
+application/vnd.ms-word.template.macroenabled.12	dotm
+application/vnd.ms-works			wps wks wcm wdb
+application/vnd.ms-wpl				wpl
+application/vnd.ms-xpsdocument			xps
+application/vnd.mseq				mseq
+# application/vnd.msign
+# application/vnd.multiad.creator
+# application/vnd.multiad.creator.cif
+# application/vnd.music-niff
+application/vnd.musician			mus
+application/vnd.muvee.style			msty
+# application/vnd.ncd.control
+# application/vnd.ncd.reference
+# application/vnd.nervana
+# application/vnd.netfpx
+application/vnd.neurolanguage.nlu		nlu
+application/vnd.noblenet-directory		nnd
+application/vnd.noblenet-sealer			nns
+application/vnd.noblenet-web			nnw
+# application/vnd.nokia.catalogs
+# application/vnd.nokia.conml+wbxml
+# application/vnd.nokia.conml+xml
+# application/vnd.nokia.isds-radio-presets
+# application/vnd.nokia.iptv.config+xml
+# application/vnd.nokia.landmark+wbxml
+# application/vnd.nokia.landmark+xml
+# application/vnd.nokia.landmarkcollection+xml
+# application/vnd.nokia.n-gage.ac+xml
+application/vnd.nokia.n-gage.data		ngdat
+application/vnd.nokia.n-gage.symbian.install	n-gage
+# application/vnd.nokia.ncd
+# application/vnd.nokia.pcd+wbxml
+# application/vnd.nokia.pcd+xml
+application/vnd.nokia.radio-preset		rpst
+application/vnd.nokia.radio-presets		rpss
+application/vnd.novadigm.edm			edm
+application/vnd.novadigm.edx			edx
+application/vnd.novadigm.ext			ext
+# application/vnd.ntt-local.file-transfer
+application/vnd.oasis.opendocument.chart		odc
+application/vnd.oasis.opendocument.chart-template	otc
+application/vnd.oasis.opendocument.database		odb
+application/vnd.oasis.opendocument.formula		odf
+application/vnd.oasis.opendocument.formula-template	odft
+application/vnd.oasis.opendocument.graphics		odg
+application/vnd.oasis.opendocument.graphics-template	otg
+application/vnd.oasis.opendocument.image		odi
+application/vnd.oasis.opendocument.image-template	oti
+application/vnd.oasis.opendocument.presentation		odp
+application/vnd.oasis.opendocument.presentation-template	otp
+application/vnd.oasis.opendocument.spreadsheet		ods
+application/vnd.oasis.opendocument.spreadsheet-template	ots
+application/vnd.oasis.opendocument.text			odt
+application/vnd.oasis.opendocument.text-master		otm
+application/vnd.oasis.opendocument.text-template	ott
+application/vnd.oasis.opendocument.text-web		oth
+# application/vnd.obn
+application/vnd.olpc-sugar			xo
+# application/vnd.oma-scws-config
+# application/vnd.oma-scws-http-request
+# application/vnd.oma-scws-http-response
+# application/vnd.oma.bcast.associated-procedure-parameter+xml
+# application/vnd.oma.bcast.drm-trigger+xml
+# application/vnd.oma.bcast.imd+xml
+# application/vnd.oma.bcast.ltkm
+# application/vnd.oma.bcast.notification+xml
+# application/vnd.oma.bcast.provisioningtrigger
+# application/vnd.oma.bcast.sgboot
+# application/vnd.oma.bcast.sgdd+xml
+# application/vnd.oma.bcast.sgdu
+# application/vnd.oma.bcast.simple-symbol-container
+# application/vnd.oma.bcast.smartcard-trigger+xml
+# application/vnd.oma.bcast.sprov+xml
+# application/vnd.oma.bcast.stkm
+# application/vnd.oma.dcd
+# application/vnd.oma.dcdc
+application/vnd.oma.dd2+xml			dd2
+# application/vnd.oma.drm.risd+xml
+# application/vnd.oma.group-usage-list+xml
+# application/vnd.oma.poc.detailed-progress-report+xml
+# application/vnd.oma.poc.final-report+xml
+# application/vnd.oma.poc.groups+xml
+# application/vnd.oma.poc.invocation-descriptor+xml
+# application/vnd.oma.poc.optimized-progress-report+xml
+# application/vnd.oma.push
+# application/vnd.oma.scidm.messages+xml
+# application/vnd.oma.xcap-directory+xml
+# application/vnd.omads-email+xml
+# application/vnd.omads-file+xml
+# application/vnd.omads-folder+xml
+# application/vnd.omaloc-supl-init
+application/vnd.openofficeorg.extension		oxt
+# application/vnd.openxmlformats-officedocument.custom-properties+xml
+# application/vnd.openxmlformats-officedocument.customxmlproperties+xml
+# application/vnd.openxmlformats-officedocument.drawing+xml
+# application/vnd.openxmlformats-officedocument.drawingml.chart+xml
+# application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml
+# application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml
+# application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml
+# application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml
+# application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml
+# application/vnd.openxmlformats-officedocument.extended-properties+xml
+# application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml
+# application/vnd.openxmlformats-officedocument.presentationml.comments+xml
+# application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml
+# application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml
+# application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml
+application/vnd.openxmlformats-officedocument.presentationml.presentation	pptx
+# application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml
+# application/vnd.openxmlformats-officedocument.presentationml.presprops+xml
+application/vnd.openxmlformats-officedocument.presentationml.slide	sldx
+# application/vnd.openxmlformats-officedocument.presentationml.slide+xml
+# application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml
+# application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml
+application/vnd.openxmlformats-officedocument.presentationml.slideshow	ppsx
+# application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml
+# application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml
+# application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml
+# application/vnd.openxmlformats-officedocument.presentationml.tags+xml
+application/vnd.openxmlformats-officedocument.presentationml.template	potx
+# application/vnd.openxmlformats-officedocument.presentationml.template.main+xml
+# application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml
+application/vnd.openxmlformats-officedocument.spreadsheetml.sheet	xlsx
+# application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml
+application/vnd.openxmlformats-officedocument.spreadsheetml.template	xltx
+# application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml
+# application/vnd.openxmlformats-officedocument.theme+xml
+# application/vnd.openxmlformats-officedocument.themeoverride+xml
+# application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml
+application/vnd.openxmlformats-officedocument.wordprocessingml.document	docx
+# application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml
+# application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml
+# application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml
+# application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml
+# application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml
+# application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml
+# application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml
+# application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml
+# application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml
+application/vnd.openxmlformats-officedocument.wordprocessingml.template	dotx
+# application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml
+# application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml
+# application/vnd.openxmlformats-package.core-properties+xml
+# application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml
+# application/vnd.osa.netdeploy
+# application/vnd.osgi.bundle
+application/vnd.osgi.dp				dp
+# application/vnd.otps.ct-kip+xml
+application/vnd.palm				pdb pqa oprc
+# application/vnd.paos.xml
+application/vnd.pawaafile			paw
+application/vnd.pg.format			str
+application/vnd.pg.osasli			ei6
+# application/vnd.piaccess.application-licence
+application/vnd.picsel				efif
+application/vnd.pmi.widget			wg
+# application/vnd.poc.group-advertisement+xml
+application/vnd.pocketlearn			plf
+application/vnd.powerbuilder6			pbd
+# application/vnd.powerbuilder6-s
+# application/vnd.powerbuilder7
+# application/vnd.powerbuilder7-s
+# application/vnd.powerbuilder75
+# application/vnd.powerbuilder75-s
+# application/vnd.preminet
+application/vnd.previewsystems.box		box
+application/vnd.proteus.magazine		mgz
+application/vnd.publishare-delta-tree		qps
+application/vnd.pvi.ptid1			ptid
+# application/vnd.pwg-multiplexed
+# application/vnd.pwg-xhtml-print+xml
+# application/vnd.qualcomm.brew-app-res
+application/vnd.quark.quarkxpress		qxd qxt qwd qwt qxl qxb
+# application/vnd.radisys.moml+xml
+# application/vnd.radisys.msml+xml
+# application/vnd.radisys.msml-audit+xml
+# application/vnd.radisys.msml-audit-conf+xml
+# application/vnd.radisys.msml-audit-conn+xml
+# application/vnd.radisys.msml-audit-dialog+xml
+# application/vnd.radisys.msml-audit-stream+xml
+# application/vnd.radisys.msml-conf+xml
+# application/vnd.radisys.msml-dialog+xml
+# application/vnd.radisys.msml-dialog-base+xml
+# application/vnd.radisys.msml-dialog-fax-detect+xml
+# application/vnd.radisys.msml-dialog-fax-sendrecv+xml
+# application/vnd.radisys.msml-dialog-group+xml
+# application/vnd.radisys.msml-dialog-speech+xml
+# application/vnd.radisys.msml-dialog-transform+xml
+# application/vnd.rapid
+application/vnd.realvnc.bed			bed
+application/vnd.recordare.musicxml		mxl
+application/vnd.recordare.musicxml+xml		musicxml
+# application/vnd.renlearn.rlprint
+application/vnd.rim.cod				cod
+application/vnd.rn-realmedia			rm
+application/vnd.route66.link66+xml		link66
+# application/vnd.ruckus.download
+# application/vnd.s3sms
+application/vnd.sailingtracker.track		st
+# application/vnd.sbm.cid
+# application/vnd.sbm.mid2
+# application/vnd.scribus
+# application/vnd.sealed.3df
+# application/vnd.sealed.csf
+# application/vnd.sealed.doc
+# application/vnd.sealed.eml
+# application/vnd.sealed.mht
+# application/vnd.sealed.net
+# application/vnd.sealed.ppt
+# application/vnd.sealed.tiff
+# application/vnd.sealed.xls
+# application/vnd.sealedmedia.softseal.html
+# application/vnd.sealedmedia.softseal.pdf
+application/vnd.seemail				see
+application/vnd.sema				sema
+application/vnd.semd				semd
+application/vnd.semf				semf
+application/vnd.shana.informed.formdata		ifm
+application/vnd.shana.informed.formtemplate	itp
+application/vnd.shana.informed.interchange	iif
+application/vnd.shana.informed.package		ipk
+application/vnd.simtech-mindmapper		twd twds
+application/vnd.smaf				mmf
+# application/vnd.smart.notebook
+application/vnd.smart.teacher			teacher
+# application/vnd.software602.filler.form+xml
+# application/vnd.software602.filler.form-xml-zip
+application/vnd.solent.sdkm+xml			sdkm sdkd
+application/vnd.spotfire.dxp			dxp
+application/vnd.spotfire.sfs			sfs
+# application/vnd.sss-cod
+# application/vnd.sss-dtf
+# application/vnd.sss-ntf
+application/vnd.stardivision.calc		sdc
+application/vnd.stardivision.draw		sda
+application/vnd.stardivision.impress		sdd
+application/vnd.stardivision.math		smf
+application/vnd.stardivision.writer		sdw
+application/vnd.stardivision.writer		vor
+application/vnd.stardivision.writer-global	sgl
+# application/vnd.street-stream
+application/vnd.sun.xml.calc			sxc
+application/vnd.sun.xml.calc.template		stc
+application/vnd.sun.xml.draw			sxd
+application/vnd.sun.xml.draw.template		std
+application/vnd.sun.xml.impress			sxi
+application/vnd.sun.xml.impress.template	sti
+application/vnd.sun.xml.math			sxm
+application/vnd.sun.xml.writer			sxw
+application/vnd.sun.xml.writer.global		sxg
+application/vnd.sun.xml.writer.template		stw
+# application/vnd.sun.wadl+xml
+application/vnd.sus-calendar			sus susp
+application/vnd.svd				svd
+# application/vnd.swiftview-ics
+application/vnd.symbian.install			sis sisx
+application/vnd.syncml+xml			xsm
+application/vnd.syncml.dm+wbxml			bdm
+application/vnd.syncml.dm+xml			xdm
+# application/vnd.syncml.dm.notification
+# application/vnd.syncml.ds.notification
+application/vnd.tao.intent-module-archive	tao
+application/vnd.tmobile-livetv			tmo
+application/vnd.trid.tpt			tpt
+application/vnd.triscape.mxs			mxs
+application/vnd.trueapp				tra
+# application/vnd.truedoc
+application/vnd.ufdl				ufd ufdl
+application/vnd.uiq.theme			utz
+application/vnd.umajin				umj
+application/vnd.unity				unityweb
+application/vnd.uoml+xml			uoml
+# application/vnd.uplanet.alert
+# application/vnd.uplanet.alert-wbxml
+# application/vnd.uplanet.bearer-choice
+# application/vnd.uplanet.bearer-choice-wbxml
+# application/vnd.uplanet.cacheop
+# application/vnd.uplanet.cacheop-wbxml
+# application/vnd.uplanet.channel
+# application/vnd.uplanet.channel-wbxml
+# application/vnd.uplanet.list
+# application/vnd.uplanet.list-wbxml
+# application/vnd.uplanet.listcmd
+# application/vnd.uplanet.listcmd-wbxml
+# application/vnd.uplanet.signal
+application/vnd.vcx				vcx
+# application/vnd.vd-study
+# application/vnd.vectorworks
+# application/vnd.vidsoft.vidconference
+application/vnd.visio				vsd vst vss vsw
+application/vnd.visionary			vis
+# application/vnd.vividence.scriptfile
+application/vnd.vsf				vsf
+# application/vnd.wap.sic
+# application/vnd.wap.slc
+application/vnd.wap.wbxml			wbxml
+application/vnd.wap.wmlc			wmlc
+application/vnd.wap.wmlscriptc			wmlsc
+application/vnd.webturbo			wtb
+# application/vnd.wfa.wsc
+# application/vnd.wmc
+# application/vnd.wmf.bootstrap
+# application/vnd.wolfram.mathematica
+# application/vnd.wolfram.mathematica.package
+application/vnd.wolfram.player			nbp
+application/vnd.wordperfect			wpd
+application/vnd.wqd				wqd
+# application/vnd.wrq-hp3000-labelled
+application/vnd.wt.stf				stf
+# application/vnd.wv.csp+wbxml
+# application/vnd.wv.csp+xml
+# application/vnd.wv.ssp+xml
+application/vnd.xara				xar
+application/vnd.xfdl				xfdl
+# application/vnd.xfdl.webform
+# application/vnd.xmi+xml
+# application/vnd.xmpie.cpkg
+# application/vnd.xmpie.dpkg
+# application/vnd.xmpie.plan
+# application/vnd.xmpie.ppkg
+# application/vnd.xmpie.xlim
+application/vnd.yamaha.hv-dic			hvd
+application/vnd.yamaha.hv-script		hvs
+application/vnd.yamaha.hv-voice			hvp
+application/vnd.yamaha.openscoreformat			osf
+application/vnd.yamaha.openscoreformat.osfpvg+xml	osfpvg
+application/vnd.yamaha.smaf-audio		saf
+application/vnd.yamaha.smaf-phrase		spf
+application/vnd.yellowriver-custom-menu		cmp
+application/vnd.zul				zir zirz
+application/vnd.zzazz.deck+xml			zaz
+application/voicexml+xml			vxml
+# application/watcherinfo+xml
+# application/whoispp-query
+# application/whoispp-response
+application/winhlp				hlp
+# application/wita
+# application/wordperfect5.1
+application/wsdl+xml				wsdl
+application/wspolicy+xml			wspolicy
+application/x-abiword				abw
+application/x-ace-compressed			ace
+application/x-authorware-bin			aab x32 u32 vox
+application/x-authorware-map			aam
+application/x-authorware-seg			aas
+application/x-bcpio				bcpio
+application/x-bittorrent			torrent
+application/x-bzip				bz
+application/x-bzip2				bz2 boz
+application/x-cdlink				vcd
+application/x-chat				chat
+application/x-chess-pgn				pgn
+# application/x-compress
+application/x-cpio				cpio
+application/x-csh				csh
+application/x-debian-package			deb udeb
+application/x-director			dir dcr dxr cst cct cxt w3d fgd swa
+application/x-doom				wad
+application/x-dtbncx+xml			ncx
+application/x-dtbook+xml			dtb
+application/x-dtbresource+xml			res
+application/x-dvi				dvi
+application/x-font-bdf				bdf
+# application/x-font-dos
+# application/x-font-framemaker
+application/x-font-ghostscript			gsf
+# application/x-font-libgrx
+application/x-font-linux-psf			psf
+application/x-font-otf				otf
+application/x-font-pcf				pcf
+application/x-font-snf				snf
+# application/x-font-speedo
+# application/x-font-sunos-news
+application/x-font-ttf				ttf ttc
+application/x-font-type1			pfa pfb pfm afm
+# application/x-font-vfont
+application/x-futuresplash			spl
+application/x-gnumeric				gnumeric
+application/x-gtar				gtar
+# application/x-gzip
+application/x-hdf				hdf
+application/x-java-jnlp-file			jnlp
+application/x-latex				latex
+application/x-mobipocket-ebook			prc mobi
+application/x-ms-application			application
+application/x-ms-wmd				wmd
+application/x-ms-wmz				wmz
+application/x-ms-xbap				xbap
+application/x-msaccess				mdb
+application/x-msbinder				obd
+application/x-mscardfile			crd
+application/x-msclip				clp
+application/x-msdownload			exe dll com bat msi
+application/x-msmediaview			mvb m13 m14
+application/x-msmetafile			wmf
+application/x-msmoney				mny
+application/x-mspublisher			pub
+application/x-msschedule			scd
+application/x-msterminal			trm
+application/x-mswrite				wri
+application/x-netcdf				nc cdf
+application/x-pkcs12				p12 pfx
+application/x-pkcs7-certificates		p7b spc
+application/x-pkcs7-certreqresp			p7r
+application/x-rar-compressed			rar
+application/x-sh				sh
+application/x-shar				shar
+application/x-shockwave-flash			swf
+application/x-silverlight-app			xap
+application/x-stuffit				sit
+application/x-stuffitx				sitx
+application/x-sv4cpio				sv4cpio
+application/x-sv4crc				sv4crc
+application/x-tar				tar
+application/x-tcl				tcl
+application/x-tex				tex
+application/x-tex-tfm				tfm
+application/x-texinfo				texinfo texi
+application/x-ustar				ustar
+application/x-wais-source			src
+application/x-x509-ca-cert			der crt
+application/x-xfig				fig
+application/x-xpinstall				xpi
+# application/x400-bp
+# application/xcap-att+xml
+# application/xcap-caps+xml
+# application/xcap-el+xml
+# application/xcap-error+xml
+# application/xcap-ns+xml
+# application/xcon-conference-info-diff+xml
+# application/xcon-conference-info+xml
+application/xenc+xml				xenc
+application/xhtml+xml				xhtml xht
+# application/xhtml-voice+xml
+application/xml					xml xsl
+application/xml-dtd				dtd
+# application/xml-external-parsed-entity
+# application/xmpp+xml
+application/xop+xml				xop
+application/xslt+xml				xslt
+application/xspf+xml				xspf
+application/xv+xml				mxml xhvml xvml xvm
+application/zip					zip
+# audio/32kadpcm
+# audio/3gpp
+# audio/3gpp2
+# audio/ac3
+audio/adpcm					adp
+# audio/amr
+# audio/amr-wb
+# audio/amr-wb+
+# audio/asc
+# audio/atrac-advanced-lossless
+# audio/atrac-x
+# audio/atrac3
+audio/basic					au snd
+# audio/bv16
+# audio/bv32
+# audio/clearmode
+# audio/cn
+# audio/dat12
+# audio/dls
+# audio/dsr-es201108
+# audio/dsr-es202050
+# audio/dsr-es202211
+# audio/dsr-es202212
+# audio/dvi4
+# audio/eac3
+# audio/evrc
+# audio/evrc-qcp
+# audio/evrc0
+# audio/evrc1
+# audio/evrcb
+# audio/evrcb0
+# audio/evrcb1
+# audio/evrcwb
+# audio/evrcwb0
+# audio/evrcwb1
+# audio/example
+# audio/g719
+# audio/g722
+# audio/g7221
+# audio/g723
+# audio/g726-16
+# audio/g726-24
+# audio/g726-32
+# audio/g726-40
+# audio/g728
+# audio/g729
+# audio/g7291
+# audio/g729d
+# audio/g729e
+# audio/gsm
+# audio/gsm-efr
+# audio/ilbc
+# audio/l16
+# audio/l20
+# audio/l24
+# audio/l8
+# audio/lpc
+audio/midi					mid midi kar rmi
+# audio/mobile-xmf
+audio/mp4					mp4a
+# audio/mp4a-latm
+# audio/mpa
+# audio/mpa-robust
+audio/mpeg					mpga mp2 mp2a mp3 m2a m3a
+# audio/mpeg4-generic
+audio/ogg					oga ogg spx
+# audio/parityfec
+# audio/pcma
+# audio/pcma-wb
+# audio/pcmu-wb
+# audio/pcmu
+# audio/prs.sid
+# audio/qcelp
+# audio/red
+# audio/rtp-enc-aescm128
+# audio/rtp-midi
+# audio/rtx
+# audio/smv
+# audio/smv0
+# audio/smv-qcp
+# audio/sp-midi
+# audio/speex
+# audio/t140c
+# audio/t38
+# audio/telephone-event
+# audio/tone
+# audio/uemclip
+# audio/ulpfec
+# audio/vdvi
+# audio/vmr-wb
+# audio/vnd.3gpp.iufp
+# audio/vnd.4sb
+# audio/vnd.audiokoz
+# audio/vnd.celp
+# audio/vnd.cisco.nse
+# audio/vnd.cmles.radio-events
+# audio/vnd.cns.anp1
+# audio/vnd.cns.inf1
+audio/vnd.digital-winds				eol
+# audio/vnd.dlna.adts
+# audio/vnd.dolby.heaac.1
+# audio/vnd.dolby.heaac.2
+# audio/vnd.dolby.mlp
+# audio/vnd.dolby.mps
+# audio/vnd.dolby.pl2
+# audio/vnd.dolby.pl2x
+# audio/vnd.dolby.pl2z
+# audio/vnd.dolby.pulse.1
+audio/vnd.dra					dra
+audio/vnd.dts					dts
+audio/vnd.dts.hd				dtshd
+# audio/vnd.everad.plj
+# audio/vnd.hns.audio
+audio/vnd.lucent.voice				lvp
+audio/vnd.ms-playready.media.pya		pya
+# audio/vnd.nokia.mobile-xmf
+# audio/vnd.nortel.vbk
+audio/vnd.nuera.ecelp4800			ecelp4800
+audio/vnd.nuera.ecelp7470			ecelp7470
+audio/vnd.nuera.ecelp9600			ecelp9600
+# audio/vnd.octel.sbc
+# audio/vnd.qcelp
+# audio/vnd.rhetorex.32kadpcm
+# audio/vnd.sealedmedia.softseal.mpeg
+# audio/vnd.vmx.cvsd
+# audio/vorbis
+# audio/vorbis-config
+audio/x-aac					aac
+audio/x-aiff					aif aiff aifc
+audio/x-mpegurl					m3u
+audio/x-ms-wax					wax
+audio/x-ms-wma					wma
+audio/x-pn-realaudio				ram ra
+audio/x-pn-realaudio-plugin			rmp
+audio/x-wav					wav
+chemical/x-cdx					cdx
+chemical/x-cif					cif
+chemical/x-cmdf					cmdf
+chemical/x-cml					cml
+chemical/x-csml					csml
+# chemical/x-pdb
+chemical/x-xyz					xyz
+image/bmp					bmp
+image/cgm					cgm
+# image/example
+# image/fits
+image/g3fax					g3
+image/gif					gif
+image/ief					ief
+# image/jp2
+image/jpeg					jpeg jpg jpe
+# image/jpm
+# image/jpx
+# image/naplps
+image/png					png
+image/prs.btif					btif
+# image/prs.pti
+image/svg+xml					svg svgz
+# image/t38
+image/tiff					tiff tif
+# image/tiff-fx
+image/vnd.adobe.photoshop			psd
+# image/vnd.cns.inf2
+image/vnd.djvu					djvu djv
+image/vnd.dwg					dwg
+image/vnd.dxf					dxf
+image/vnd.fastbidsheet				fbs
+image/vnd.fpx					fpx
+image/vnd.fst					fst
+image/vnd.fujixerox.edmics-mmr			mmr
+image/vnd.fujixerox.edmics-rlc			rlc
+# image/vnd.globalgraphics.pgb
+# image/vnd.microsoft.icon
+# image/vnd.mix
+image/vnd.ms-modi				mdi
+image/vnd.net-fpx				npx
+# image/vnd.radiance
+# image/vnd.sealed.png
+# image/vnd.sealedmedia.softseal.gif
+# image/vnd.sealedmedia.softseal.jpg
+# image/vnd.svf
+image/vnd.wap.wbmp				wbmp
+image/vnd.xiff					xif
+image/x-cmu-raster				ras
+image/x-cmx					cmx
+image/x-freehand				fh fhc fh4 fh5 fh7
+image/x-icon					ico
+image/x-pcx					pcx
+image/x-pict					pic pct
+image/x-portable-anymap				pnm
+image/x-portable-bitmap				pbm
+image/x-portable-graymap			pgm
+image/x-portable-pixmap				ppm
+image/x-rgb					rgb
+image/x-xbitmap					xbm
+image/x-xpixmap					xpm
+image/x-xwindowdump				xwd
+# message/cpim
+# message/delivery-status
+# message/disposition-notification
+# message/example
+# message/external-body
+# message/global
+# message/global-delivery-status
+# message/global-disposition-notification
+# message/global-headers
+# message/http
+# message/imdn+xml
+# message/news
+# message/partial
+message/rfc822					eml mime
+# message/s-http
+# message/sip
+# message/sipfrag
+# message/tracking-status
+# message/vnd.si.simp
+# model/example
+model/iges					igs iges
+model/mesh					msh mesh silo
+model/vnd.dwf					dwf
+# model/vnd.flatland.3dml
+model/vnd.gdl					gdl
+# model/vnd.gs-gdl
+# model/vnd.gs.gdl
+model/vnd.gtw					gtw
+# model/vnd.moml+xml
+model/vnd.mts					mts
+# model/vnd.parasolid.transmit.binary
+# model/vnd.parasolid.transmit.text
+model/vnd.vtu					vtu
+model/vrml					wrl vrml
+# multipart/alternative
+# multipart/appledouble
+# multipart/byteranges
+# multipart/digest
+# multipart/encrypted
+# multipart/example
+# multipart/form-data
+# multipart/header-set
+# multipart/mixed
+# multipart/parallel
+# multipart/related
+# multipart/report
+# multipart/signed
+# multipart/voice-message
+text/calendar					ics ifb
+text/css					css
+text/csv					csv
+# text/directory
+# text/dns
+# text/ecmascript
+# text/enriched
+# text/example
+text/html					html htm
+# text/javascript
+# text/parityfec
+text/plain					txt text conf def list log in
+# text/prs.fallenstein.rst
+text/prs.lines.tag				dsc
+# text/vnd.radisys.msml-basic-layout
+# text/red
+# text/rfc822-headers
+text/richtext					rtx
+# text/rtf
+# text/rtp-enc-aescm128
+# text/rtx
+text/sgml					sgml sgm
+# text/t140
+text/tab-separated-values			tsv
+text/troff					t tr roff man me ms
+# text/ulpfec
+text/uri-list					uri uris urls
+# text/vnd.abc
+text/vnd.curl					curl
+text/vnd.curl.dcurl				dcurl
+text/vnd.curl.scurl				scurl
+text/vnd.curl.mcurl				mcurl
+# text/vnd.dmclientscript
+# text/vnd.esmertec.theme-descriptor
+text/vnd.fly					fly
+text/vnd.fmi.flexstor				flx
+text/vnd.graphviz				gv
+text/vnd.in3d.3dml				3dml
+text/vnd.in3d.spot				spot
+# text/vnd.iptc.newsml
+# text/vnd.iptc.nitf
+# text/vnd.latex-z
+# text/vnd.motorola.reflex
+# text/vnd.ms-mediapackage
+# text/vnd.net2phone.commcenter.command
+# text/vnd.si.uricatalogue
+text/vnd.sun.j2me.app-descriptor		jad
+# text/vnd.trolltech.linguist
+# text/vnd.wap.si
+# text/vnd.wap.sl
+text/vnd.wap.wml				wml
+text/vnd.wap.wmlscript				wmls
+text/x-asm					s asm
+text/x-c					c cc cxx cpp h hh dic
+text/x-fortran					f for f77 f90
+text/x-pascal					p pas
+text/x-java-source				java
+text/x-setext					etx
+text/x-uuencode					uu
+text/x-vcalendar				vcs
+text/x-vcard					vcf
+# text/xml
+# text/xml-external-parsed-entity
+video/3gpp					3gp
+# video/3gpp-tt
+video/3gpp2					3g2
+# video/bmpeg
+# video/bt656
+# video/celb
+# video/dv
+# video/example
+video/h261					h261
+video/h263					h263
+# video/h263-1998
+# video/h263-2000
+video/h264					h264
+video/jpeg					jpgv
+# video/jpeg2000
+video/jpm					jpm jpgm
+video/mj2					mj2 mjp2
+# video/mp1s
+# video/mp2p
+# video/mp2t
+video/mp4					mp4 mp4v mpg4
+# video/mp4v-es
+video/mpeg					mpeg mpg mpe m1v m2v
+# video/mpeg4-generic
+# video/mpv
+# video/nv
+video/ogg					ogv
+# video/parityfec
+# video/pointer
+video/quicktime					qt mov
+# video/raw
+# video/rtp-enc-aescm128
+# video/rtx
+# video/smpte292m
+# video/ulpfec
+# video/vc1
+# video/vnd.cctv
+# video/vnd.dlna.mpeg-tts
+video/vnd.fvt					fvt
+# video/vnd.hns.video
+# video/vnd.iptvforum.1dparityfec-1010
+# video/vnd.iptvforum.1dparityfec-2005
+# video/vnd.iptvforum.2dparityfec-1010
+# video/vnd.iptvforum.2dparityfec-2005
+# video/vnd.iptvforum.ttsavc
+# video/vnd.iptvforum.ttsmpeg2
+# video/vnd.motorola.video
+# video/vnd.motorola.videop
+video/vnd.mpegurl				mxu m4u
+video/vnd.ms-playready.media.pyv		pyv
+# video/vnd.nokia.interleaved-multimedia
+# video/vnd.nokia.videovoip
+# video/vnd.objectvideo
+# video/vnd.sealed.mpeg1
+# video/vnd.sealed.mpeg4
+# video/vnd.sealed.swf
+# video/vnd.sealedmedia.softseal.mov
+video/vnd.vivo					viv
+video/x-f4v					f4v
+video/x-fli					fli
+video/x-flv					flv
+video/x-m4v					m4v
+video/x-ms-asf					asf asx
+video/x-ms-wm					wm
+video/x-ms-wmv					wmv
+video/x-ms-wmx					wmx
+video/x-ms-wvx					wvx
+video/x-msvideo					avi
+video/x-sgi-movie				movie
+x-conference/x-cooltalk				ice

Propchange: forrest/trunk/whiteboard/f9/src/conf/mime.types
------------------------------------------------------------------------------
    svn:eol-style = native

Added: forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/AppState.scala
URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/AppState.scala?rev=951868&view=auto
==============================================================================
--- forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/AppState.scala (added)
+++ forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/AppState.scala Sun Jun  6 14:38:12 2010
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.forrest.f9
+
+import java.io.File
+import scala.collection.immutable.Stack
+
+
+class AppState(val projectDir: File) {
+  var state = Map[String,Any]()
+  
+  var dependents:Stack[Task] = new Stack()
+  
+}
\ No newline at end of file

Added: forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/Main.scala
URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/Main.scala?rev=951868&view=auto
==============================================================================
--- forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/Main.scala (added)
+++ forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/Main.scala Sun Jun  6 14:38:12 2010
@@ -0,0 +1,76 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.forrest.f9
+
+import java.io.File
+import scala.io.Source
+
+import org.apache.forrest.f9.task._
+
+object Main {
+  private val caret = "f9> "
+  private val appState = new AppState(new File("."))
+	  
+  def main(args: Array[String]): Unit = {  
+	  //var state = if(args.length>0) args(0) else "init"
+	  //The above will be cool with dependent states, until then,
+	  // we have to always init first, so ignore CL args
+	  var state = "init"
+	  var next = ""
+	  val currDir = new File(".")
+	  
+	  while(true) {
+	   state match {
+	  	  case InitTask.text =>
+	  	    if(ok(InitTask)) state = retState else state = "exit"
+	 	  case BuildTask.text => 
+	  	    ok(BuildTask)
+	
+	 	 	state = retState
+	 	  case CleanTask.text =>
+	 	 	ok(CleanTask)
+	 	 	
+	 	 	state = retState
+	 	  case RunTask.text =>
+	 	 	ok(RunTask)
+	 	 	
+	 	 	state = retState
+	 	  case StopTask.text =>
+	 	 	ok(StopTask)
+	 	 	
+	 	 	state = retState
+	 	  case "exit" =>
+	 	 	Pipeline.exit
+	 	    return
+	 	  case _ =>
+	 	    println("unknown(" + state + ").")
+	 	    state = retState
+	 	   
+	   }
+	  } 
+  } 
+  
+  def retState():String = {
+	  print(caret)
+	  readLine
+  }
+  def ok(task: Task):Boolean = {
+	  println("ok(" + task.text + ").")
+	  
+	  task.call(appState)
+  }
+}

Added: forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/Pipeline.scala
URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/Pipeline.scala?rev=951868&view=auto
==============================================================================
--- forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/Pipeline.scala (added)
+++ forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/Pipeline.scala Sun Jun  6 14:38:12 2010
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.forrest.f9
+
+import java.io.File
+import org.apache.forrest.f9.filters._
+
+object Pipeline {
+	  val pipeline:List[Filter] = List(
+	 		  new SourceLocatorFilter(new File(".")),
+	 		  new SourceTypeFilter(),
+	 		  new NormalizingFilter(),
+	 		  new OutputTypeFilter("./output"))
+	 		  
+	def init() {
+      pipeline.foreach(p => p.start)
+	}
+	  
+	def exit() {
+	  pipeline.foreach(p => p ! "exit_now")
+	}
+	
+	def pump(r: Map[String,Any]) {
+	  println("Pumping " + r("requestUri") + " across " + pipeline.length + " pipes.")
+      pipeline(0) ! (r, pipeline.drop(1))
+	}
+}
\ No newline at end of file

Added: forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/filters/EchoFilter.scala
URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/filters/EchoFilter.scala?rev=951868&view=auto
==============================================================================
--- forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/filters/EchoFilter.scala (added)
+++ forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/filters/EchoFilter.scala Sun Jun  6 14:38:12 2010
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.forrest.f9.filters
+
+import scala.xml.Elem
+
+object EchoFilter extends Filter {
+ 	def process(model: Map[String, Any]) = {
+	  println("Begin echo>>")
+	  println(model)
+	  println("<<End echo.")
+	  model
+	}
+}
\ No newline at end of file

Added: forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/filters/Filter.scala
URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/filters/Filter.scala?rev=951868&view=auto
==============================================================================
--- forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/filters/Filter.scala (added)
+++ forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/filters/Filter.scala Sun Jun  6 14:38:12 2010
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.forrest.f9.filters
+
+import scala.actors.Actor
+import scala.actors.Actor._
+import scala.xml.Elem
+
+trait Filter extends Actor {
+    
+	def act() {
+	  loop {
+	   react {
+	     case (model: Map[String, Any], p: List[Filter]) if p.length == 0 =>
+	       process(model)
+	     case(model: Map[String, Any], p: List[Filter]) if model.contains("status") =>
+	        println("Shortcircuit pipeline for code: " + model("status"))
+	        
+	        p.last ! (model, List())
+         case (model: Map[String, Any], p: List[Filter]) =>
+	       val data = process(model)
+	       p(0) ! (data, p.drop(1))
+         case "exit_now" =>
+	        println("Exiting pipe: " + this.getClass.getName)
+	        exit_hook()
+         	exit()
+	     case msg =>
+	       println("Filter not understood." + msg)
+	   }
+     }
+	}
+	def process(model: Map[String, Any]): Map[String, Any] 
+	def exit_hook() {}
+}

Added: forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/filters/HtmlFileSink.scala
URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/filters/HtmlFileSink.scala?rev=951868&view=auto
==============================================================================
--- forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/filters/HtmlFileSink.scala (added)
+++ forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/filters/HtmlFileSink.scala Sun Jun  6 14:38:12 2010
@@ -0,0 +1,44 @@
+package org.apache.forrest.f9.filters
+
+import scala.actors.AbstractActor
+import scala.xml.Elem
+import scala.xml.Node
+import java.io.File
+import java.io.FileWriter
+
+
+class HtmlFileSink(base: String) extends Filter {
+  private val xmldecl = "<?xml version='1.0' encoding='UTF-8'?>\n"
+  private val extension = ".xhtml"
+  private val pinst = "<?xml-stylesheet type=\"text/xsl\" href=\"/resources/site.xsl\"?>\n"
+  
+  def process(model: Map[String, Any]) = {
+    println("Processing HtmlFileSink: " + model("requestUri"))	
+  	if (model.contains("status")) {
+  		println("Error: " + model)
+  		model
+  	} else {
+  		  val e = model("entityBody").asInstanceOf[Elem]
+  		  val path = model("resourceUri").asInstanceOf[String]
+  		  try {
+  		 	val f = new File(base + path)
+  		 	f.getParentFile.mkdirs
+  		 	
+  		 	val fwriter = new FileWriter(f + extension)
+  		 	fwriter.write(xmldecl)
+  		 	fwriter.write(pinst)
+  		    scala.xml.XML.write(fwriter, e, "UTF-8", false, null)
+  		    fwriter.flush
+  		    fwriter.close
+  		    
+  		  } catch {
+  		 	  case ex: Exception =>
+  		 	    println("Error occurred: " + ex.toString)
+  		 	    println("Error Model: " + model)
+  		  }
+  		  model	
+  	}
+
+  }
+
+}
\ No newline at end of file

Added: forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/filters/NormalizingFilter.scala
URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/filters/NormalizingFilter.scala?rev=951868&view=auto
==============================================================================
--- forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/filters/NormalizingFilter.scala (added)
+++ forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/filters/NormalizingFilter.scala Sun Jun  6 14:38:12 2010
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.forrest.f9.filters
+
+import scala.xml.Node
+import scala.xml.Document
+
+class NormalizingFilter extends Filter {
+ 	def process(model: Map[String, Any]) = {
+ 		println("Normalized Content: " + model("requestUri"))
+ 		
+ 		//Cheat and assume input is Forrest internal format.
+ 		val d = XDocTransformer(model("entityBody").asInstanceOf[Document].docElem)
+       println("Done forwarding now.")
+	  model + ("entityBody"->d)
+	}
+}
\ No newline at end of file

Added: forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/filters/OutputTypeFilter.scala
URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/filters/OutputTypeFilter.scala?rev=951868&view=auto
==============================================================================
--- forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/filters/OutputTypeFilter.scala (added)
+++ forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/filters/OutputTypeFilter.scala Sun Jun  6 14:38:12 2010
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.forrest.f9.filters
+
+
+class OutputTypeFilter(base: String) extends Filter {
+	val supportedTypes = Map("application/xhtml+xml"->new HtmlFileSink(base))
+
+	supportedTypes.values.foreach(t => t.start)
+	
+ 	def process(model: Map[String, Any]) = {
+ 		println("Attempting output for: " + model("resourceUri"))
+ 		
+ 		val typ = model("contentType").asInstanceOf[String]
+ 		
+ 		if(supportedTypes.contains(typ)) {
+ 		   val sink = supportedTypes(typ).asInstanceOf[Filter]
+ 		
+ 		   sink ! (model, List())
+ 		} else {
+ 		   println("Not supported: " + model("resourceUri"))
+ 		}
+
+ 		model
+	}
+	
+	override def exit_hook() {
+		supportedTypes.values.foreach(t => t ! "exit_now")
+	}
+}
\ No newline at end of file

Added: forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/filters/SourceLocatorFilter.scala
URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/filters/SourceLocatorFilter.scala?rev=951868&view=auto
==============================================================================
--- forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/filters/SourceLocatorFilter.scala (added)
+++ forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/filters/SourceLocatorFilter.scala Sun Jun  6 14:38:12 2010
@@ -0,0 +1,73 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.forrest.f9.filters
+
+import org.xml.sax.SAXParseException
+import java.io.{FileNotFoundException, File}
+import scala.io.Source
+import javax.activation.MimetypesFileTypeMap
+
+class SourceLocatorFilter(baseDir: File) extends Filter {
+	val sourceDir = new File(baseDir,"sources/docs")
+	val supportedTypes = Map(".xml"->"application/xml")
+	//val typeMap = new MimetypesFileTypeMap("src/conf/mime.types")
+	
+	def process(model: Map[String, Any]) = {
+	  println("Locating source for: " + model("requestUri"))
+	  var internalModel = model
+	  val path = model("requestUri").asInstanceOf[String]
+	  val rawUri = path.substring(0,path.lastIndexOf("."))
+	  
+	  internalModel = model + ("resourceUri"->rawUri)
+	  var sourceFile = new File(sourceDir, path)
+	  println("Resolved location: " + sourceFile.getCanonicalPath)
+	  var sourceType = "Unknown"
+	 	  
+	  supportedTypes.foreach( (k) => {
+	 	  val f = new File(sourceDir,rawUri + k._1)
+	 	  println("Type testing: " + f.getCanonicalPath)
+	 	   if(f.exists) {
+	 	  	 sourceFile = f
+	 	  	 sourceType = k._2
+	 	   }
+	  })
+	  
+	 	
+	  try {
+	 	  if(sourceType == "Unknown") {
+	 	 	println("Ooops... unable to find a suitable source for: " + sourceFile.getPath)
+	 	 	internalModel+("status"->404)
+	 	  } else {
+	 	 	  
+	 	   //println("FILE TYPE: " + typeMap.getContentType(sourceFile))
+	 	   internalModel = internalModel + ("entityBody"->sourceFile) 
+	 	    
+	 	    internalModel + ("sourceType"->sourceType)	  
+	 	  }
+	 	  
+	  } catch {
+	 		case fnfe: FileNotFoundException =>
+	 			println("Ooops.. couldn't find: " + sourceFile.getPath)
+	 			internalModel + ("status"->404)
+	 		case pe: SAXParseException => 
+	 			println("Ooops... invalid document: " + pe.getMessage)
+	 			internalModel + ("status"->500)
+	  }
+	  
+	}
+
+}
\ No newline at end of file

Added: forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/filters/SourceTypeFilter.scala
URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/filters/SourceTypeFilter.scala?rev=951868&view=auto
==============================================================================
--- forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/filters/SourceTypeFilter.scala (added)
+++ forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/filters/SourceTypeFilter.scala Sun Jun  6 14:38:12 2010
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.forrest.f9.filters
+
+import java.io.File
+import scala.xml.parsing.ConstructingParser
+
+class SourceTypeFilter extends Filter {
+ 	def process(model: Map[String, Any]) = {
+ 		val f = model("entityBody").asInstanceOf[File]
+ 		try {
+ 		  //val x = scala.xml.XML.loadFile(f)
+ 			val x = ConstructingParser.fromFile(f, true)
+ 			
+ 		
+ 		  (model + ("entityBody"->x.document))
+ 		} catch {
+ 			case ex: Exception =>
+ 			  println("ERROR loading: " + f.getPath)
+ 			  println("... " + ex.toString)
+ 			  model
+ 		}
+	}
+}
\ No newline at end of file

Added: forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/filters/XMLFileSink.scala
URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/filters/XMLFileSink.scala?rev=951868&view=auto
==============================================================================
--- forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/filters/XMLFileSink.scala (added)
+++ forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/filters/XMLFileSink.scala Sun Jun  6 14:38:12 2010
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.forrest.f9.filters
+
+import scala.xml.Elem
+import java.io.File
+
+class XMLFileSink(base: String) extends Filter {
+  //val baseDir = new File(base)
+  
+  def process(model: Map[String, Any]) = {
+    	
+  	if (model.contains("status")) {
+  		println("Error: " + model)
+  		model
+  	} else {
+  		  val e = model("entityBody").asInstanceOf[Elem]
+  		  val path = model("requestUri").asInstanceOf[String]
+  		  try {
+  		 	val f = new File(base + path)
+  		 	f.getParentFile.mkdirs
+  		 	println("Writing to: " + base + path)
+  		    scala.xml.XML.saveFull(base + path, e, "UTF-8", true, null)
+  		  } catch {
+  		 	  case ex: Exception =>
+  		 	    println("Error occurred: " + ex.toString)
+  		 	    println("Error Model: " + model)
+  		  }
+  		  model	
+  	}
+
+  }
+}
\ No newline at end of file

Added: forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/filters/XsltFilter.scala
URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/filters/XsltFilter.scala?rev=951868&view=auto
==============================================================================
--- forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/filters/XsltFilter.scala (added)
+++ forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/filters/XsltFilter.scala Sun Jun  6 14:38:12 2010
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.forrest.f9.filters
+
+
+class XsltFilter(style: String) extends Filter {
+	
+ def process(model: Map[String, Any]) = {
+  	println("XsltFilter processing...")
+  	val body = model("entityBody")
+  	val newmodel = model - "entityBody"
+  	
+
+  	//newmodel + ("entityBody"-> <html><title>blah</title></html>)
+  	
+  	model
+
+  }
+
+}
\ No newline at end of file

Added: forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/input/XDocTransformer.scala
URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/input/XDocTransformer.scala?rev=951868&view=auto
==============================================================================
--- forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/input/XDocTransformer.scala (added)
+++ forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/input/XDocTransformer.scala Sun Jun  6 14:38:12 2010
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.forrest.f9
+
+import scala.xml.transform._
+import scala.xml._
+
+/**
+* Naive at this point just so I can begin to see some content.
+**/
+object XDocTransformer extends RuleTransformer(
+		documentRule, headerRule, sectionRule) 
+
+object documentRule extends RewriteRule {
+  override def transform(n: Node): Seq[Node] = n match {
+    case Elem(prefix, "document", attribs, scope, child@_*)  =>
+      new Elem(prefix, "html", attribs, scope, child:_*)
+    case other => other
+  }
+}
+
+object headerRule extends RewriteRule {
+  override def transform(n: Node): Seq[Node] = n match {
+    case Elem(prefix, "header", attribs, scope, child@_*)  =>
+      new Elem(prefix, "head", attribs, scope, child:_*)
+    case other => other
+  }
+}
+object sectionRule extends RewriteRule {
+  override def transform(n: Node): Seq[Node] = n match {
+    case Elem(prefix, "section", attribs, scope, child@_*)  =>
+      new Elem(prefix, "div", attribs, scope, child:_*)
+    case other => other
+  }
+}

Added: forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/output/Output.scala
URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/output/Output.scala?rev=951868&view=auto
==============================================================================
--- forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/output/Output.scala (added)
+++ forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/output/Output.scala Sun Jun  6 14:38:12 2010
@@ -0,0 +1,5 @@
+package org.apache.forrest.f9.output
+
+trait Output {
+
+}
\ No newline at end of file

Added: forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/output/XhtmlOutputTransformer.scala
URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/output/XhtmlOutputTransformer.scala?rev=951868&view=auto
==============================================================================
--- forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/output/XhtmlOutputTransformer.scala (added)
+++ forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/output/XhtmlOutputTransformer.scala Sun Jun  6 14:38:12 2010
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.forrest.f9.output
+
+import scala.xml.transform._
+import scala.xml._
+
+object XhtmlOutputTransformer extends RuleTransformer(NoOpRule) {
+	val ext = ".xhtml"
+}
+
+object NoOpRule extends RewriteRule {
+  override def transform(n: Node): Seq[Node] = n match {
+	  case _ =>
+	   	n
+  }
+}
\ No newline at end of file

Added: forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/task/BuildTask.scala
URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/task/BuildTask.scala?rev=951868&view=auto
==============================================================================
--- forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/task/BuildTask.scala (added)
+++ forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/task/BuildTask.scala Sun Jun  6 14:38:12 2010
@@ -0,0 +1,57 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.forrest.f9.task
+
+import java.io.File
+
+/**
+ * Task to actually build the content through the pipeline.
+ */
+object BuildTask extends Task("build", false) {
+	var base: File = null
+		
+	def call(state: AppState):Boolean = {
+		println("Incoming state: " + state.projectDir)
+		base = new File(state.projectDir, "sources/docs")
+		call(base)
+		true
+	}
+	
+	/**
+	 * A bit of awkwardness that needs explaining.  I wanted to keep the pipeline to 
+	 * accepting of abstract resource (URI) requests.  That means, to do the static 
+	 * build, we need to iterate over the source files and turn each of those paths
+	 * into an abstract equivalent.  For example, we have to take a request for:
+	 * $PROJECT_HOME/sources/docs/index.html => /index.html  and the pipeline is responsible
+	 * for doing the location resolution. 
+	 */
+	private def call(f: File) {
+		 
+  	  if(!f.isDirectory()) {
+  		val file = new File(base, f.getPath)
+  		val r = Map("requestUri"->(f.getCanonicalPath.replace(base.getCanonicalPath, "")),
+  				    "contentType"->"application/xhtml+xml")
+		
+  	    Pipeline.pump(r)
+  	  } else {
+  		f.listFiles().foreach((fil: File) => {
+  			call(fil)
+  		})
+      }
+	}
+
+}
\ No newline at end of file

Added: forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/task/CleanTask.scala
URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/task/CleanTask.scala?rev=951868&view=auto
==============================================================================
--- forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/task/CleanTask.scala (added)
+++ forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/task/CleanTask.scala Sun Jun  6 14:38:12 2010
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.forrest.f9.task
+
+import java.io.File
+
+/**
+ * Cleans the all the generated content directories.
+ */
+
+object CleanTask extends Task("clean", false) {
+	//Just list the root of the generated dirs to del.
+	val generatedDirs = List("output")
+	
+	
+	def call(state: AppState):Boolean = {
+	 try {
+		clean(state.projectDir)
+		true
+	 } catch {
+		 case e =>
+		 	println("error(clean).")
+		 	println("[error] - " + e.getMessage)
+		 	false
+	 }
+	}
+	
+	private def clean(root: File) {
+		generatedDirs.foreach(f => {
+			val file = new File(root, f) 
+			del(file.listFiles)
+		})
+	}
+	
+	private def del(files: Array[File]) {
+		files.foreach(f=> {
+			
+			if(f.isDirectory) {
+				del(f.listFiles)
+			} else {
+				f.delete
+			}
+			f.delete
+		})
+		
+	}
+
+}
\ No newline at end of file

Added: forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/task/InitTask.scala
URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/task/InitTask.scala?rev=951868&view=auto
==============================================================================
--- forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/task/InitTask.scala (added)
+++ forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/task/InitTask.scala Sun Jun  6 14:38:12 2010
@@ -0,0 +1,79 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.forrest.f9.task
+
+import java.io.File
+
+/**
+ * Checks to ensure the current directory is actually a project.  If not,
+ * offer to create it.
+ * 
+ */
+
+object InitTask extends Task("init", true) {
+	def dirs = List("output",
+					"sources",
+					"sources/docs",
+					"sources/resources/images",
+					"sources/resources/scripts")
+
+
+	
+	def call(state: AppState): Boolean = {
+		val f = state.projectDir
+		
+		validate(f) match {
+			case false =>
+			  print("Project doesn't exist, create now? (y,[n])  ")
+			  Console.readLine match {
+			 	  case "y" =>
+			 	  	println("ok(creating).")
+			 	  	create(f)
+			 	  case _ =>
+			 	   	println("not(created).")
+			 	   	return false
+			  }
+			  
+			case _ =>
+			  println("ok(valid).")
+		}
+		Pipeline.init
+		state.state += ("initialized"->true)
+		return true
+		
+	}
+	
+	private def validate(root: File): Boolean = {
+		dirs.foreach(f => {
+			val file = new File(root, f)
+			
+			if(!file.exists) return false
+		})
+		return true
+	}
+	
+	private def create(root: File): Boolean = {
+		dirs.foreach(f => {
+			val file = new File(root, f)
+			
+			if(!file.exists) file.mkdirs
+		})
+		return true		
+	}
+}
+
+case class Dir(name: String, children: List[Dir])
\ No newline at end of file

Added: forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/task/RunTask.scala
URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/task/RunTask.scala?rev=951868&view=auto
==============================================================================
--- forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/task/RunTask.scala (added)
+++ forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/task/RunTask.scala Sun Jun  6 14:38:12 2010
@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.forrest.f9.task
+
+import java.io.File
+import org.mortbay.jetty.Server
+import org.mortbay.jetty.handler.DefaultHandler
+import org.mortbay.jetty.handler.ResourceHandler
+import org.mortbay.jetty.handler.ContextHandler
+
+/**
+ * A simple Jetty instance to allow us to browse output.
+ * 
+ */
+object RunTask extends Task("run", false) {
+	var server:Server = null
+	
+	
+	def call(state: AppState):Boolean =  {
+	  val root = state.projectDir
+	  val f = new File(root,"output")
+	  println("Webroot: " + f.getCanonicalPath)
+	  server = new Server(8080)
+	  var fileHandler = new ResourceHandler()
+      var defaultHandler = new DefaultHandler()
+  
+      fileHandler.setResourceBase(f.getPath)
+      server.addHandler(fileHandler)
+      server.addHandler(defaultHandler)
+  
+      server.start
+      server.isRunning
+	}
+	
+	def stop() {
+	  if(server.isRunning)
+		server.stop
+	  else
+	 	println("No server running.")
+	}
+
+}
\ No newline at end of file

Added: forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/task/StopTask.scala
URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/task/StopTask.scala?rev=951868&view=auto
==============================================================================
--- forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/task/StopTask.scala (added)
+++ forrest/trunk/whiteboard/f9/src/main/scala/org/apache/forrest/f9/task/StopTask.scala Sun Jun  6 14:38:12 2010
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.forrest.f9.task
+
+object StopTask  extends Task("stop", false) {
+
+	def call(state: AppState):Boolean = {
+		RunTask.stop
+		true
+	}
+}
\ No newline at end of file
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.