Author: chathura
Date: Sat Dec 15 03:21:15 2007
New Revision: 11157

Log:


Implemented media type reader to read media type -> extension mappings from the 
standard apache mime.types files.
Now all the media types defined in that file are automatically mapped to the 
file extensions selected in the UI.
Added the application/wsdl+xml media type to the mime.types file as it was not 
defined!



Added:
   trunk/registry/modules/webapps/conf/mime.types
Modified:
   
trunk/registry/modules/core/src/main/java/org/wso2/registry/RegistryConstants.java
   
trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/mediatypes/MediaTypeHandler.java
   
trunk/registry/modules/core/src/test/java/org/wso2/registry/secure/SecureRegistryTest.java
   trunk/registry/modules/webapps/pom.xml
   
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/MediaTypesReader.java

Modified: 
trunk/registry/modules/core/src/main/java/org/wso2/registry/RegistryConstants.java
==============================================================================
--- 
trunk/registry/modules/core/src/main/java/org/wso2/registry/RegistryConstants.java
  (original)
+++ 
trunk/registry/modules/core/src/main/java/org/wso2/registry/RegistryConstants.java
  Sat Dec 15 03:21:15 2007
@@ -81,7 +81,7 @@
 
     // built in media types
 
-    public static final String WSDL_MEDIA_TYPE = "wsdl/xml";
+    public static final String WSDL_MEDIA_TYPE = "application/wsdl+xml";
     public static final String SYNPASE_REPOSITORY_MEDIA_TYPE = "synapse-repo";
     public static final String SYNAPSE_CONF_COLLECTION_MEDIA_TYPE = 
"synapse-conf";
     public static final String SYNAPSE_SEQUENCE_COLLECTION_MEDIA_TYPE = 
"synapse-sequences";

Modified: 
trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/mediatypes/MediaTypeHandler.java
==============================================================================
--- 
trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/mediatypes/MediaTypeHandler.java
   (original)
+++ 
trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/mediatypes/MediaTypeHandler.java
   Sat Dec 15 03:21:15 2007
@@ -136,4 +136,5 @@
      * @throws RegistryException
      */
     public abstract boolean putChild(String childPath, Resource resource) 
throws RegistryException;
+
 }

Modified: 
trunk/registry/modules/core/src/test/java/org/wso2/registry/secure/SecureRegistryTest.java
==============================================================================
--- 
trunk/registry/modules/core/src/test/java/org/wso2/registry/secure/SecureRegistryTest.java
  (original)
+++ 
trunk/registry/modules/core/src/test/java/org/wso2/registry/secure/SecureRegistryTest.java
  Sat Dec 15 03:21:15 2007
@@ -25,6 +25,8 @@
 import org.wso2.registry.jdbc.JDBCRegistry;
 import org.wso2.usermanager.Realm;
 
+import java.io.*;
+
 public class SecureRegistryTest extends TestCase {
 
     private static Registry registry = null;
@@ -313,14 +315,80 @@
 
             //String sql = "SELECT A.AID FROM ARTIFACTS A, VERSIONS V, TAGS T, 
COMMENTS C WHERE A.AID=V.AID AND V.VN IN (SELECT MAX(V2.VN) FROM VERSIONS V2 
WHERE A.AID=V2.AID) AND A.AID=T.AID AND A.AID=C.AID AND A.PATH='c1200/r4'";
             //String sql = "SELECT A.PATH FROM ARTIFACTS A WHERE 
A.PATH='/c1200/r4'";
-            
+
             Resource q1Results = registry.executeQuery("/advanced/q1", new 
String[] {} );
             int a = 1;
 
         } catch (RegistryException e) {
             e.printStackTrace();
         }
+    }
 
+    public void testStrings() {
+
+        int a = 1;
+
+    }
+
+    public static String getResourceMediaTypeMappingsF(String fileName) throws 
Exception {
+
+        InputStream input = new FileInputStream(fileName);
+
+        BufferedReader reader = new BufferedReader(new 
InputStreamReader(input));
+
+        String mediaTypeString = null;
+        try {
+            while(reader.ready()) {
+                String mediaTypeData = reader.readLine().trim();
+                if (mediaTypeData.startsWith("#")) {
+                    // ignore the comments
+                    continue;
+                }
+
+                if (mediaTypeData.length() == 0) {
+                    // ignore the blank lines
+                    continue;
+                }
+
+                // mime.type file delimits mediatypes:extensions by tabs. if 
there is no
+                // extension associated with a media type, there are no tabs 
in the line. so we
+                // don't need such lines.
+                if (mediaTypeData.indexOf("\t") > 0) {
+
+                    String[] parts = mediaTypeData.split("\t+");
+                    if (parts.length == 2) {
+
+                        // there can multiple extensions associated with a 
single media type. in
+                        // that case, extensions are delimited by a space.
+                        String[] exts = parts[1].trim().split(" ");
+                        for (int i = 0; i < exts.length; i++) {
+
+                            if (exts[i].length() > 0) {
+                                String mediaTypeMapping = exts[i] + ":" + 
parts[0];
+
+                                if (mediaTypeString == null) {
+                                    mediaTypeString = mediaTypeMapping;
+                                } else {
+                                    mediaTypeString = mediaTypeString + "," + 
mediaTypeMapping;
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+
+        } catch (IOException e) {
+            String msg = "Could not read the media type mappings file from the 
location: ";
+            throw new RegistryException(msg);
+
+        } finally {
+            try {
+                reader.close();
+                input.close();
+            } catch (IOException ignore) {
+            }
+        }
 
+        return mediaTypeString;
     }
 }

Added: trunk/registry/modules/webapps/conf/mime.types
==============================================================================
--- (empty file)
+++ trunk/registry/modules/webapps/conf/mime.types      Sat Dec 15 03:21:15 2007
@@ -0,0 +1,733 @@
+###############################################################################
+#
+#  MIME-TYPES and the extensions that represent them
+#
+#  This file is part of the "mime-support" package.  Please send email (not a
+#  bug report) to [EMAIL PROTECTED] if you would like new types
+#  and/or extensions to be added.
+#
+#  The reason that all types are managed by the mime-support package instead
+#  allowing individual packages to install types in much the same way as they
+#  add entries in to the mailcap file is so these types can be referenced by
+#  other programs (such as a web server) even if the specific support package
+#  for that type is not installed.
+#
+#  Users can add their own types if they wish by creating a ".mime.types"
+#  file in their home directory.  Definitions included there will take
+#  precedence over those listed here.
+#
+#  Note: Compression schemes like "gzip", "bzip", and "compress" are not
+#  actually "mime-types".  They are "encodings" and hence must _not_ have
+#  entries in this file to map their extensions.  The "mime-type" of an
+#  encoded file refers to the type of data that has been encoded, not the
+#  type of encoding.
+#
+###############################################################################
+
+# Media type for wsdl files. This is not defined in the original mime.types 
file.
+application/wsdl+xml                           wsdl
+
+application/activemessage
+application/andrew-inset                       ez
+application/applefile
+application/atomicmail
+application/batch-SMTP
+application/beep+xml
+application/cals-1840
+application/commonground
+application/cu-seeme                           cu
+application/cybercash
+application/dca-rft
+application/dec-dx
+application/docbook+xml
+application/dsptype                            tsp
+application/dvcs
+application/edi-consent
+application/edi-x12
+application/edifact
+application/eshop
+application/font-tdpfr
+application/futuresplash                       spl
+application/ghostview
+application/hta                                        hta
+application/http
+application/hyperstudio
+application/iges
+application/index
+application/index.cmd
+application/index.obj
+application/index.response
+application/index.vnd
+application/iotp
+application/ipp
+application/isup
+application/java-archive                       jar
+application/java-serialized-object             ser
+application/java-vm                            class
+application/mac-binhex40                       hqx
+application/mac-compactpro                     cpt
+application/macwriteii
+application/marc
+application/mathematica                                nb
+application/mathematica-old
+application/msaccess                           mdb
+application/msword                             doc dot
+application/news-message-id
+application/news-transmission
+application/ocsp-request
+application/ocsp-response
+application/octet-stream                       bin
+application/oda                                        oda
+application/ogg                                        ogg
+application/parityfec
+application/pdf                                        pdf
+application/pgp-encrypted
+application/pgp-keys                           key
+application/pgp-signature                      pgp
+application/pics-rules                         prf
+application/pkcs10
+application/pkcs7-mime
+application/pkcs7-signature
+application/pkix-cert
+application/pkix-crl
+application/pkixcmp
+application/postscript                         ps ai eps
+application/prs.alvestrand.titrax-sheet
+application/prs.cww
+application/prs.nprend
+application/qsig
+application/rar                                        rar
+application/rdf+xml                            rdf
+application/remote-printing
+application/riscos
+application/rss+xml                            rss
+application/rtf
+application/sdp
+application/set-payment
+application/set-payment-initiation
+application/set-registration
+application/set-registration-initiation
+application/sgml
+application/sgml-open-catalog
+application/sieve
+application/slate
+application/smil                               smi smil
+application/timestamp-query
+application/timestamp-reply
+application/vemmi
+application/whoispp-query
+application/whoispp-response
+application/wita
+application/wordperfect                                wpd
+application/wordperfect5.1                     wp5
+application/x400-bp
+application/xhtml+xml                          xhtml xht
+application/xml                                        xml xsl
+application/xml-dtd
+application/xml-external-parsed-entity
+application/zip                                        zip
+application/vnd.3M.Post-it-Notes
+application/vnd.accpac.simply.aso
+application/vnd.accpac.simply.imp
+application/vnd.acucobol
+application/vnd.aether.imp
+application/vnd.anser-web-certificate-issue-initiation
+application/vnd.anser-web-funds-transfer-initiation
+application/vnd.audiograph
+application/vnd.bmi
+application/vnd.businessobjects
+application/vnd.canon-cpdl
+application/vnd.canon-lips
+application/vnd.cinderella                     cdy
+application/vnd.claymore
+application/vnd.commerce-battelle
+application/vnd.commonspace
+application/vnd.comsocaller
+application/vnd.contact.cmsg
+application/vnd.cosmocaller
+application/vnd.ctc-posml
+application/vnd.cups-postscript
+application/vnd.cups-raster
+application/vnd.cups-raw
+application/vnd.cybank
+application/vnd.dna
+application/vnd.dpgraph
+application/vnd.dxr
+application/vnd.ecdis-update
+application/vnd.ecowin.chart
+application/vnd.ecowin.filerequest
+application/vnd.ecowin.fileupdate
+application/vnd.ecowin.series
+application/vnd.ecowin.seriesrequest
+application/vnd.ecowin.seriesupdate
+application/vnd.enliven
+application/vnd.epson.esf
+application/vnd.epson.msf
+application/vnd.epson.quickanime
+application/vnd.epson.salt
+application/vnd.epson.ssf
+application/vnd.ericsson.quickcall
+application/vnd.eudora.data
+application/vnd.fdf
+application/vnd.ffsns
+application/vnd.flographit
+application/vnd.framemaker
+application/vnd.fsc.weblaunch
+application/vnd.fujitsu.oasys
+application/vnd.fujitsu.oasys2
+application/vnd.fujitsu.oasys3
+application/vnd.fujitsu.oasysgp
+application/vnd.fujitsu.oasysprs
+application/vnd.fujixerox.ddd
+application/vnd.fujixerox.docuworks
+application/vnd.fujixerox.docuworks.binder
+application/vnd.fut-misnet
+application/vnd.grafeq
+application/vnd.groove-account
+application/vnd.groove-identity-message
+application/vnd.groove-injector
+application/vnd.groove-tool-message
+application/vnd.groove-tool-template
+application/vnd.groove-vcard
+application/vnd.hhe.lesson-player
+application/vnd.hp-HPGL
+application/vnd.hp-PCL
+application/vnd.hp-PCLXL
+application/vnd.hp-hpid
+application/vnd.hp-hps
+application/vnd.httphone
+application/vnd.hzn-3d-crossword
+application/vnd.ibm.MiniPay
+application/vnd.ibm.afplinedata
+application/vnd.ibm.modcap
+application/vnd.informix-visionary
+application/vnd.intercon.formnet
+application/vnd.intertrust.digibox
+application/vnd.intertrust.nncp
+application/vnd.intu.qbo
+application/vnd.intu.qfx
+application/vnd.irepository.package+xml
+application/vnd.is-xpr
+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.koan
+application/vnd.lotus-1-2-3
+application/vnd.lotus-approach
+application/vnd.lotus-freelance
+application/vnd.lotus-notes
+application/vnd.lotus-organizer
+application/vnd.lotus-screencam
+application/vnd.lotus-wordpro
+application/vnd.mcd
+application/vnd.mediastation.cdkey
+application/vnd.meridian-slingshot
+application/vnd.mif
+application/vnd.minisoft-hp3000-save
+application/vnd.mitsubishi.misty-guard.trustweb
+application/vnd.mobius.daf
+application/vnd.mobius.dis
+application/vnd.mobius.msl
+application/vnd.mobius.plc
+application/vnd.mobius.txf
+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.mozilla.xul+xml                        xul
+application/vnd.ms-artgalry
+application/vnd.ms-asf
+application/vnd.ms-excel                       xls xlb xlt
+application/vnd.ms-lrm
+application/vnd.ms-pki.seccat                  cat
+application/vnd.ms-pki.stl                     stl
+application/vnd.ms-powerpoint                  ppt pps
+application/vnd.ms-project
+application/vnd.ms-tnef
+application/vnd.ms-works
+application/vnd.mseq
+application/vnd.msign
+application/vnd.music-niff
+application/vnd.musician
+application/vnd.netfpx
+application/vnd.noblenet-directory
+application/vnd.noblenet-sealer
+application/vnd.noblenet-web
+application/vnd.novadigm.EDM
+application/vnd.novadigm.EDX
+application/vnd.novadigm.EXT
+application/vnd.oasis.opendocument.chart       odc
+application/vnd.oasis.opendocument.database    odb
+application/vnd.oasis.opendocument.formula     odf
+application/vnd.oasis.opendocument.graphics    odg
+application/vnd.oasis.opendocument.graphics-template otg
+application/vnd.oasis.opendocument.image       odi
+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 odm
+application/vnd.oasis.opendocument.text-template ott
+application/vnd.oasis.opendocument.text-web    oth
+application/vnd.osa.netdeploy
+application/vnd.palm
+application/vnd.pg.format
+application/vnd.pg.osasli
+application/vnd.powerbuilder6
+application/vnd.powerbuilder6-s
+application/vnd.powerbuilder7
+application/vnd.powerbuilder7-s
+application/vnd.powerbuilder75
+application/vnd.powerbuilder75-s
+application/vnd.previewsystems.box
+application/vnd.publishare-delta-tree
+application/vnd.pvi.ptid1
+application/vnd.pwg-xhtml-print+xml
+application/vnd.rapid
+application/vnd.rim.cod                                cod
+application/vnd.s3sms
+application/vnd.seemail
+application/vnd.shana.informed.formdata
+application/vnd.shana.informed.formtemplate
+application/vnd.shana.informed.interchange
+application/vnd.shana.informed.package
+application/vnd.smaf                           mmf
+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 sdp
+application/vnd.stardivision.math              smf
+application/vnd.stardivision.writer            sdw 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.svd
+application/vnd.swiftview-ics
+application/vnd.symbian.install                        sis
+application/vnd.triscape.mxs
+application/vnd.trueapp
+application/vnd.truedoc
+application/vnd.tve-trigger
+application/vnd.ufdl
+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
+application/vnd.vectorworks
+application/vnd.vidsoft.vidconference
+application/vnd.visio                          vsd
+application/vnd.vividence.scriptfile
+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
+application/vnd.wrq-hp3000-labelled
+application/vnd.wt.stf
+application/vnd.xara
+application/vnd.xfdl
+application/vnd.yellowriver-custom-menu
+application/x-123                              wk
+application/x-abiword                          abw
+application/x-apple-diskimage                  dmg
+application/x-bcpio                            bcpio
+application/x-bittorrent                       torrent
+application/x-cdf                              cdf
+application/x-cdlink                           vcd
+application/x-chess-pgn                                pgn
+application/x-core
+application/x-cpio                             cpio
+application/x-csh                              csh
+application/x-debian-package                   deb udeb
+application/x-director                         dcr dir dxr
+application/x-dms                              dms
+application/x-doom                             wad
+application/x-dvi                              dvi
+application/x-executable
+application/x-flac                             flac
+application/x-font                             pfa pfb gsf pcf pcf.Z
+application/x-freemind                         mm
+application/x-futuresplash                     spl
+application/x-gnumeric                         gnumeric
+application/x-go-sgf                           sgf
+application/x-graphing-calculator              gcf
+application/x-gtar                             gtar tgz taz
+application/x-hdf                              hdf
+application/x-httpd-php                                phtml pht php
+application/x-httpd-php-source                 phps
+application/x-httpd-php3                       php3
+application/x-httpd-php3-preprocessed          php3p
+application/x-httpd-php4                       php4
+application/x-httpd-eruby                      rhtml
+application/x-ica                              ica
+application/x-internet-signup                  ins isp
+application/x-iphone                           iii
+application/x-iso9660-image                    iso
+application/x-java-applet
+application/x-java-bean
+application/x-java-jnlp-file                   jnlp
+application/x-javascript                       js
+application/x-jmol                             jmz
+application/x-kchart                           chrt
+application/x-kdelnk
+application/x-killustrator                     kil
+application/x-koan                             skp skd skt skm
+application/x-kpresenter                       kpr kpt
+application/x-kspread                          ksp
+application/x-kword                            kwd kwt
+application/x-latex                            latex
+application/x-lha                              lha
+application/x-lzh                              lzh
+application/x-lzx                              lzx
+application/x-maker                            frm maker frame fm fb book fbdoc
+application/x-mif                              mif
+application/x-ms-wmd                           wmd
+application/x-ms-wmz                           wmz
+application/x-msdos-program                    com exe bat dll
+application/x-msi                              msi
+application/x-netcdf                           nc
+application/x-ns-proxy-autoconfig              pac
+application/x-nwc                              nwc
+application/x-object                           o
+application/x-oz-application                   oza
+application/x-pkcs7-certreqresp                        p7r
+application/x-pkcs7-crl                                crl
+application/x-python-code                      pyc pyo
+application/x-quicktimeplayer                  qtl
+application/x-redhat-package-manager           rpm
+application/x-rx
+application/x-sh                               sh
+application/x-shar                             shar
+application/x-shellscript
+application/x-shockwave-flash                  swf swfl
+application/x-stuffit                          sit
+application/x-sv4cpio                          sv4cpio
+application/x-sv4crc                           sv4crc
+application/x-tar                              tar
+application/x-tcl                              tcl
+application/x-tex-gf                           gf
+application/x-tex-pk                           pk
+application/x-texinfo                          texinfo texi
+application/x-trash                            ~ % bak old sik
+application/x-troff                            t tr roff
+application/x-troff-man                                man
+application/x-troff-me                         me
+application/x-troff-ms                         ms
+application/x-ustar                            ustar
+application/x-videolan
+application/x-wais-source                      src
+application/x-wingz                            wz
+application/x-x509-ca-cert                     crt
+application/x-xcf                              xcf
+application/x-xfig                             fig
+application/x-xpinstall                                xpi
+
+audio/32kadpcm
+audio/basic                                    au snd
+audio/g.722.1
+audio/l16
+audio/midi                                     mid midi kar
+audio/mp4a-latm
+audio/mpa-robust
+audio/mpeg                                     mpga mpega mp2 mp3 m4a
+audio/mpegurl                                  m3u
+audio/parityfec
+audio/prs.sid                                  sid
+audio/telephone-event
+audio/tone
+audio/vnd.cisco.nse
+audio/vnd.cns.anp1
+audio/vnd.cns.inf1
+audio/vnd.digital-winds
+audio/vnd.everad.plj
+audio/vnd.lucent.voice
+audio/vnd.nortel.vbk
+audio/vnd.nuera.ecelp4800
+audio/vnd.nuera.ecelp7470
+audio/vnd.nuera.ecelp9600
+audio/vnd.octel.sbc
+audio/vnd.qcelp
+audio/vnd.rhetorex.32kadpcm
+audio/vnd.vmx.cvsd
+audio/x-aiff                                   aif aiff aifc
+audio/x-gsm                                    gsm
+audio/x-mpegurl                                        m3u
+audio/x-ms-wma                                 wma
+audio/x-ms-wax                                 wax
+audio/x-pn-realaudio-plugin
+audio/x-pn-realaudio                           ra rm ram
+audio/x-realaudio                              ra
+audio/x-scpls                                  pls
+audio/x-sd2                                    sd2
+audio/x-wav                                    wav
+
+chemical/x-alchemy                             alc
+chemical/x-cache                               cac cache
+chemical/x-cache-csf                           csf
+chemical/x-cactvs-binary                       cbin cascii ctab
+chemical/x-cdx                                 cdx
+chemical/x-cerius                              cer
+chemical/x-chem3d                              c3d
+chemical/x-chemdraw                            chm
+chemical/x-cif                                 cif
+chemical/x-cmdf                                        cmdf
+chemical/x-cml                                 cml
+chemical/x-compass                             cpa
+chemical/x-crossfire                           bsd
+chemical/x-csml                                        csml csm
+chemical/x-ctx                                 ctx
+chemical/x-cxf                                 cxf cef
+#chemical/x-daylight-smiles                    smi
+chemical/x-embl-dl-nucleotide                  emb embl
+chemical/x-galactic-spc                                spc
+chemical/x-gamess-input                                inp gam gamin
+chemical/x-gaussian-checkpoint                 fch fchk
+chemical/x-gaussian-cube                       cub
+chemical/x-gaussian-input                      gau gjc gjf
+chemical/x-gaussian-log                                gal
+chemical/x-gcg8-sequence                       gcg
+chemical/x-genbank                             gen
+chemical/x-hin                                 hin
+chemical/x-isostar                             istr ist
+chemical/x-jcamp-dx                            jdx dx
+chemical/x-kinemage                            kin
+chemical/x-macmolecule                         mcm
+chemical/x-macromodel-input                    mmd mmod
+chemical/x-mdl-molfile                         mol
+chemical/x-mdl-rdfile                          rd
+chemical/x-mdl-rxnfile                         rxn
+chemical/x-mdl-sdfile                          sd sdf
+chemical/x-mdl-tgf                             tgf
+#chemical/x-mif                                        mif
+chemical/x-mmcif                               mcif
+chemical/x-mol2                                        mol2
+chemical/x-molconn-Z                           b
+chemical/x-mopac-graph                         gpt
+chemical/x-mopac-input                         mop mopcrt mpc dat zmt
+chemical/x-mopac-out                           moo
+chemical/x-mopac-vib                           mvb
+chemical/x-ncbi-asn1                           asn
+chemical/x-ncbi-asn1-ascii                     prt ent
+chemical/x-ncbi-asn1-binary                    val aso
+chemical/x-ncbi-asn1-spec                      asn
+chemical/x-pdb                                 pdb ent
+chemical/x-rosdal                              ros
+chemical/x-swissprot                           sw
+chemical/x-vamas-iso14976                      vms
+chemical/x-vmd                                 vmd
+chemical/x-xtel                                        xtel
+chemical/x-xyz                                 xyz
+
+image/cgm
+image/g3fax
+image/gif                                      gif
+image/ief                                      ief
+image/jpeg                                     jpeg jpg jpe
+image/naplps
+image/pcx                                      pcx
+image/png                                      png
+image/prs.btif
+image/prs.pti
+image/svg+xml                                  svg svgz
+image/tiff                                     tiff tif
+image/vnd.cns.inf2
+image/vnd.djvu                                 djvu djv
+image/vnd.dwg
+image/vnd.dxf
+image/vnd.fastbidsheet
+image/vnd.fpx
+image/vnd.fst
+image/vnd.fujixerox.edmics-mmr
+image/vnd.fujixerox.edmics-rlc
+image/vnd.mix
+image/vnd.net-fpx
+image/vnd.svf
+image/vnd.wap.wbmp                             wbmp
+image/vnd.xiff
+image/x-cmu-raster                             ras
+image/x-coreldraw                              cdr
+image/x-coreldrawpattern                       pat
+image/x-coreldrawtemplate                      cdt
+image/x-corelphotopaint                                cpt
+image/x-icon                                   ico
+image/x-jg                                     art
+image/x-jng                                    jng
+image/x-ms-bmp                                 bmp
+image/x-photoshop                              psd
+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
+
+inode/chardevice
+inode/blockdevice
+inode/directory-locked
+inode/directory
+inode/fifo
+inode/socket
+
+message/delivery-status
+message/disposition-notification
+message/external-body
+message/http
+message/s-http
+message/news
+message/partial
+message/rfc822
+
+model/iges                                     igs iges
+model/mesh                                     msh mesh silo
+model/vnd.dwf
+model/vnd.flatland.3dml
+model/vnd.gdl
+model/vnd.gs-gdl
+model/vnd.gtw
+model/vnd.mts
+model/vnd.vtu
+model/vrml                                     wrl vrml
+
+multipart/alternative
+multipart/appledouble
+multipart/byteranges
+multipart/digest
+multipart/encrypted
+multipart/form-data
+multipart/header-set
+multipart/mixed
+multipart/parallel
+multipart/related
+multipart/report
+multipart/signed
+multipart/voice-message
+
+text/calendar                                  ics icz
+text/comma-separated-values                    csv
+text/css                                       css
+text/directory
+text/english
+text/enriched
+text/h323                                      323
+text/html                                      html htm shtml
+text/iuls                                      uls
+text/mathml                                    mml
+text/parityfec
+text/plain                                     asc txt text diff pot
+text/prs.lines.tag
+text/rfc822-headers
+text/richtext                                  rtx
+text/rtf                                       rtf
+text/scriptlet                                 sct wsc
+text/t140
+text/texmacs                                   tm ts
+text/tab-separated-values                      tsv
+text/uri-list
+text/vnd.abc
+text/vnd.curl
+text/vnd.DMClientScript
+text/vnd.flatland.3dml
+text/vnd.fly
+text/vnd.fmi.flexstor
+text/vnd.in3d.3dml
+text/vnd.in3d.spot
+text/vnd.IPTC.NewsML
+text/vnd.IPTC.NITF
+text/vnd.latex-z
+text/vnd.motorola.reflex
+text/vnd.ms-mediapackage
+text/vnd.sun.j2me.app-descriptor               jad
+text/vnd.wap.si
+text/vnd.wap.sl
+text/vnd.wap.wml                               wml
+text/vnd.wap.wmlscript                         wmls
+text/x-bibtex                                  bib
+text/x-boo                                     boo
+text/x-c++hdr                                  h++ hpp hxx hh
+text/x-c++src                                  c++ cpp cxx cc
+text/x-chdr                                    h
+text/x-component                               htc
+text/x-crontab
+text/x-csh                                     csh
+text/x-csrc                                    c
+text/x-dsrc                                    d
+text/x-haskell                                 hs
+text/x-java                                    java
+text/x-literate-haskell                                lhs
+text/x-makefile
+text/x-moc                                     moc
+text/x-pascal                                  p pas
+text/x-pcs-gcd                                 gcd
+text/x-perl                                    pl pm
+text/x-python                                  py
+text/x-server-parsed-html
+text/x-setext                                  etx
+text/x-sh                                      sh
+text/x-tcl                                     tcl tk
+text/x-tex                                     tex ltx sty cls
+text/x-vcalendar                               vcs
+text/x-vcard                                   vcf
+
+video/dl                                       dl
+video/dv                                       dif dv
+video/fli                                      fli
+video/gl                                       gl
+video/mpeg                                     mpeg mpg mpe
+video/mp4                                      mp4
+video/quicktime                                        qt mov
+video/mp4v-es
+video/parityfec
+video/pointer
+video/vnd.fvt
+video/vnd.motorola.video
+video/vnd.motorola.videop
+video/vnd.mpegurl                              mxu
+video/vnd.mts
+video/vnd.nokia.interleaved-multimedia
+video/vnd.vivo
+video/x-la-asf                                 lsf lsx
+video/x-mng                                    mng
+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
+
+x-world/x-vrml                                 vrm vrml wrl

Modified: trunk/registry/modules/webapps/pom.xml
==============================================================================
--- trunk/registry/modules/webapps/pom.xml      (original)
+++ trunk/registry/modules/webapps/pom.xml      Sat Dec 15 03:21:15 2007
@@ -49,7 +49,7 @@
                                 <include>web.xml</include>
                                 <include>tiles.xml</include>
                                 <include>um.sql</include>
-                                <include>media-type-mappings.conf</include>
+                                <include>mime.types</include>
                                 <include>collection-media-types.conf</include>
                             </includes>
                         </resource>

Modified: 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/MediaTypesReader.java
==============================================================================
--- 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/MediaTypesReader.java
    (original)
+++ 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/MediaTypesReader.java
    Sat Dec 15 03:21:15 2007
@@ -19,16 +19,13 @@
 import org.wso2.registry.RegistryException;
 
 import javax.servlet.http.HttpServletRequest;
-import java.io.InputStream;
-import java.io.BufferedReader;
-import java.io.InputStreamReader;
-import java.io.IOException;
+import java.io.*;
 import java.util.List;
 import java.util.ArrayList;
 
 public class MediaTypesReader {
 
-    public static final String RESOURCE_MEDIA_TYPE_MAPPINGS_FILE = 
"/WEB-INF/media-type-mappings.conf";
+    public static final String RESOURCE_MEDIA_TYPE_MAPPINGS_FILE = 
"/WEB-INF/mime.types";
     public static final String COLLECTION_MEDIA_TYPES_FILE = 
"/WEB-INF/collection-media-types.conf";
 
     public static String getResourceMediaTypeMappings(HttpServletRequest 
request) throws RegistryException {
@@ -40,16 +37,46 @@
         String mediaTypeString = null;
         try {
             while(reader.ready()) {
-                String mediaTypeData = reader.readLine();
-                if (mediaTypeString == null) {
-                    mediaTypeString = mediaTypeData;
-                } else {
-                    mediaTypeString = mediaTypeString + "," + mediaTypeData;
+                String mediaTypeData = reader.readLine().trim();
+                if (mediaTypeData.startsWith("#")) {
+                    // ignore the comments
+                    continue;
+                }
+
+                if (mediaTypeData.length() == 0) {
+                    // ignore the blank lines
+                    continue;
+                }
+
+                // mime.type file delimits mediatypes:extensions by tabs. if 
there is no
+                // extension associated with a media type, there are no tabs 
in the line. so we
+                // don't need such lines.
+                if (mediaTypeData.indexOf("\t") > 0) {
+
+                    String[] parts = mediaTypeData.split("\t+");
+                    if (parts.length == 2 && parts[0].length() > 0 && 
parts[1].length() > 0) {
+                        
+                        // there can multiple extensions associated with a 
single media type. in
+                        // that case, extensions are delimited by a space.
+                        String[] exts = parts[1].trim().split(" ");
+                        for (int i = 0; i < exts.length; i++) {
+
+                            if (exts[i].length() > 0) {
+                                String mediaTypeMapping = exts[i] + ":" + 
parts[0];
+
+                                if (mediaTypeString == null) {
+                                    mediaTypeString = mediaTypeMapping;
+                                } else {
+                                    mediaTypeString = mediaTypeString + "," + 
mediaTypeMapping;
+                                }
+                            }
+                        }
+                    }
                 }
             }
 
         } catch (IOException e) {
-            String msg = "Could not read the media type mappings file from the 
location: " + RESOURCE_MEDIA_TYPE_MAPPINGS_FILE;
+            String msg = "Could not read the media type mappings file from the 
location: ";
             throw new RegistryException(msg);
 
         } finally {

_______________________________________________
Registry-dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/registry-dev

Reply via email to