You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by dr...@apache.org on 2015/01/22 01:56:37 UTC

[13/50] [abbrv] directory-kerberos git commit: Many changes with newname

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/kerby-kerb/kerb-util/src/test/resources/camellia-expect-vt.txt
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-util/src/test/resources/camellia-expect-vt.txt b/kerby-kerb/kerb-util/src/test/resources/camellia-expect-vt.txt
new file mode 100644
index 0000000..e6ebe8a
--- /dev/null
+++ b/kerby-kerb/kerb-util/src/test/resources/camellia-expect-vt.txt
@@ -0,0 +1,1036 @@
+
+KEYSIZE=128
+
+KEY=00000000000000000000000000000000
+
+I=1
+PT=80000000000000000000000000000000
+CT=07923A39EB0A817D1C4D87BDB82D1F1C
+
+I=2
+PT=40000000000000000000000000000000
+CT=48CD6419809672D2349260D89A08D3D3
+
+I=3
+PT=20000000000000000000000000000000
+CT=D07493CCB2E95CE0B4945A05ACC97D82
+
+I=4
+PT=10000000000000000000000000000000
+CT=5DBE1EAC9F7080A88DBED7F6DA101448
+
+I=5
+PT=08000000000000000000000000000000
+CT=F01EE477D199DF2701027034B229622F
+
+I=6
+PT=04000000000000000000000000000000
+CT=C841587ABD9A912E563774CB569D051E
+
+I=7
+PT=02000000000000000000000000000000
+CT=1D9BC0C04546F0915C8CCD11391A455C
+
+I=8
+PT=01000000000000000000000000000000
+CT=05E6EBB4BA167F5C479CEFF3152F943B
+
+I=9
+PT=00800000000000000000000000000000
+CT=93211E0F788845B9FC0E4551FFE92AC9
+
+I=10
+PT=00400000000000000000000000000000
+CT=B6D35701CD8FADDE383BBE8E6B70BAF7
+
+I=11
+PT=00200000000000000000000000000000
+CT=8358F9F4EBCFEE348CB30551ACB151A0
+
+I=12
+PT=00100000000000000000000000000000
+CT=D57516EB5AD93C523E40521BF447AFCE
+
+I=13
+PT=00080000000000000000000000000000
+CT=66B2534C279C439133F52E5AD8B439A9
+
+I=14
+PT=00040000000000000000000000000000
+CT=A71C69184A9F63C2992A5F18F77C1FE9
+
+I=15
+PT=00020000000000000000000000000000
+CT=1ADCBE49AEACB9ECEBBD492B10E82C7B
+
+I=16
+PT=00010000000000000000000000000000
+CT=27E3BCFB227C5561DB6CF7FC30387036
+
+I=17
+PT=00008000000000000000000000000000
+CT=F4AE20365CC9D06B0CAE6B695ED2CEC1
+
+I=18
+PT=00004000000000000000000000000000
+CT=3DD682F0B641ED32AD3D43EA2A0456E4
+
+I=19
+PT=00002000000000000000000000000000
+CT=6E5D14A95ECC290B509EA6B673652E3A
+
+I=20
+PT=00001000000000000000000000000000
+CT=F1CDF0F8D7B3FFD95422D7CC0CF40B7B
+
+I=21
+PT=00000800000000000000000000000000
+CT=A9253D459A34C385A1F1B2CFFA3935C5
+
+I=22
+PT=00000400000000000000000000000000
+CT=291024D99FF09A47A1DEE45BA700AE52
+
+I=23
+PT=00000200000000000000000000000000
+CT=49241D9459B277187BB10081C60361C0
+
+I=24
+PT=00000100000000000000000000000000
+CT=AD9BA365CC4DD5553D2D9FE303841D88
+
+I=25
+PT=00000080000000000000000000000000
+CT=C2ECA616664A249DC622CC11196B4AE1
+
+I=26
+PT=00000040000000000000000000000000
+CT=6E1A2D4794BB0DC08777A0BC7523E70E
+
+I=27
+PT=00000020000000000000000000000000
+CT=6DB1F0CF59656BDD235E82B8CEF0BE8E
+
+I=28
+PT=00000010000000000000000000000000
+CT=52F239C5EAF401EBDC54D2F011FF4B6A
+
+I=29
+PT=00000008000000000000000000000000
+CT=6B58A08F648414B67FD6847D2AA51CBF
+
+I=30
+PT=00000004000000000000000000000000
+CT=2959DD5367885A75EB48053CF3251A36
+
+I=31
+PT=00000002000000000000000000000000
+CT=630B292E3B88EF641CDFD531E206605E
+
+I=32
+PT=00000001000000000000000000000000
+CT=4BBB88EF82B70593FCC56AFD91540FDB
+
+I=33
+PT=00000000800000000000000000000000
+CT=0A13055B118A45C606999257BD191426
+
+I=34
+PT=00000000400000000000000000000000
+CT=5CF8E5C9F15D7E4F865020224853EB77
+
+I=35
+PT=00000000200000000000000000000000
+CT=3898805042C7A4315C5EE51AF2DE47E2
+
+I=36
+PT=00000000100000000000000000000000
+CT=8D3F96372E87CBB0B375425B3A10B9E7
+
+I=37
+PT=00000000080000000000000000000000
+CT=4D9510A378BD784A70A66BCC75B7D3C8
+
+I=38
+PT=00000000040000000000000000000000
+CT=70DB1902D37CFBDFB98F7C516F79D416
+
+I=39
+PT=00000000020000000000000000000000
+CT=383C6C2AABEF7FDE25CD470BF774A331
+
+I=40
+PT=00000000010000000000000000000000
+CT=47CBCB5288349B1A15DC9F81FBEE6B8F
+
+I=41
+PT=00000000008000000000000000000000
+CT=21DA34D4468EEB13AED95DAE0FF48310
+
+I=42
+PT=00000000004000000000000000000000
+CT=021C9A8E6BD36FBD036411E5D852A80F
+
+I=43
+PT=00000000002000000000000000000000
+CT=6A459E2F839AF60ACDE83774D0BB5574
+
+I=44
+PT=00000000001000000000000000000000
+CT=C19255121F1B933CAE09E58AEC0E9977
+
+I=45
+PT=00000000000800000000000000000000
+CT=7BA949E27B2BE148A6B801F9305F43D5
+
+I=46
+PT=00000000000400000000000000000000
+CT=E8CEB1026BCF7BCEA32E8A380EA76DB7
+
+I=47
+PT=00000000000200000000000000000000
+CT=63F97747ED56A8F521B20CC65F6F9465
+
+I=48
+PT=00000000000100000000000000000000
+CT=2091CFDC629819106188424AC694F75B
+
+I=49
+PT=00000000000080000000000000000000
+CT=A91BDF8E8B88407942423CCE000527C4
+
+I=50
+PT=00000000000040000000000000000000
+CT=73F9B44B9635A3FD683DBF8D49E9825B
+
+I=51
+PT=00000000000020000000000000000000
+CT=9DC64B2133FAD5069FD9A7CC2FFFD1CC
+
+I=52
+PT=00000000000010000000000000000000
+CT=28240F81FEC36B71E13F1FEA7A7641E3
+
+I=53
+PT=00000000000008000000000000000000
+CT=20DD39FEE96CD2EFF972872A692B28FD
+
+I=54
+PT=00000000000004000000000000000000
+CT=47A9E40483EC1925B635E47E964E8E93
+
+I=55
+PT=00000000000002000000000000000000
+CT=9C0EBD822C49FB3D853DF5B315A87BA0
+
+I=56
+PT=00000000000001000000000000000000
+CT=C18D813FDB45A594C6DC24E5A1F6CE32
+
+I=57
+PT=00000000000000800000000000000000
+CT=7E5467FF245ECF80CB55C2D8E91F0711
+
+I=58
+PT=00000000000000400000000000000000
+CT=394D4365B77954FDEA4145FCF7A7A041
+
+I=59
+PT=00000000000000200000000000000000
+CT=B1D8311A492ED11F11E57B29221610C4
+
+I=60
+PT=00000000000000100000000000000000
+CT=E5FBB947A63AEA90163AF04AD6951EF8
+
+I=61
+PT=00000000000000080000000000000000
+CT=CA0627DDF580F0E7D59562825C9D0492
+
+I=62
+PT=00000000000000040000000000000000
+CT=EF98FFD1AED295AAE1860F0274C8F555
+
+I=63
+PT=00000000000000020000000000000000
+CT=8C698E5CFFF08FACE10C2DC5FF1E2A81
+
+I=64
+PT=00000000000000010000000000000000
+CT=35A7767E02032C35B5CE1A6F49C57C28
+
+I=65
+PT=00000000000000008000000000000000
+CT=AB36F8734E76EBA306CF00D6763D90B0
+
+I=66
+PT=00000000000000004000000000000000
+CT=E854EB66D4EC66889B5E6CD4F44A5806
+
+I=67
+PT=00000000000000002000000000000000
+CT=15B66DF1455ACD640B8716BCF5DB2D69
+
+I=68
+PT=00000000000000001000000000000000
+CT=4C57AB5333E5C2D4B7E30A007E449F48
+
+I=69
+PT=00000000000000000800000000000000
+CT=BA3E7FF28EB38EA09D8DB1440A9A3552
+
+I=70
+PT=00000000000000000400000000000000
+CT=64E60227AFD80C40C70186CC94804C1A
+
+I=71
+PT=00000000000000000200000000000000
+CT=CEB4423C20B4C91C2551F6FC227C9514
+
+I=72
+PT=00000000000000000100000000000000
+CT=F736894B843EF32DA28576DE500D448C
+
+I=73
+PT=00000000000000000080000000000000
+CT=58FDA98B678D15053D4B6C060368108C
+
+I=74
+PT=00000000000000000040000000000000
+CT=E28CAE384E578F47657755EBCD97996C
+
+I=75
+PT=00000000000000000020000000000000
+CT=0A64617BD4B5B166668240D105B7B6A2
+
+I=76
+PT=00000000000000000010000000000000
+CT=4BD090C7E3D365B5EA80F19B4798881E
+
+I=77
+PT=00000000000000000008000000000000
+CT=BC7B6CB9BFF4F72973BB2CD20A512C06
+
+I=78
+PT=00000000000000000004000000000000
+CT=4C7ADDC5C867594E9EE75F0AA6AB9C23
+
+I=79
+PT=00000000000000000002000000000000
+CT=1FBD05C71A36691AC6566A5298101D53
+
+I=80
+PT=00000000000000000001000000000000
+CT=42D7D6B1F499D412F8793972BD968DA2
+
+I=81
+PT=00000000000000000000800000000000
+CT=260EC86E2786FC68824576B934F32814
+
+I=82
+PT=00000000000000000000400000000000
+CT=576C26DFD7046F9357F34BEA7DFB26A0
+
+I=83
+PT=00000000000000000000200000000000
+CT=6D55E54BFB6F927174A02294C95E0F8F
+
+I=84
+PT=00000000000000000000100000000000
+CT=1A6CE91DD458229C7675A34950D10E23
+
+I=85
+PT=00000000000000000000080000000000
+CT=DAD0D5E7E000652825AA34D228EA8D8F
+
+I=86
+PT=00000000000000000000040000000000
+CT=E68013F48D75EAD2BBC0B0BDA5E690BF
+
+I=87
+PT=00000000000000000000020000000000
+CT=A07D92312FBAE37BFE8A834210AE4F9C
+
+I=88
+PT=00000000000000000000010000000000
+CT=6EEE5F8544CD7D456366EB448813989A
+
+I=89
+PT=00000000000000000000008000000000
+CT=F8E5C7FF4B79D7ABE8BFA2DD148820A8
+
+I=90
+PT=00000000000000000000004000000000
+CT=C6349D75C7472BBD66F95B3A07C79C91
+
+I=91
+PT=00000000000000000000002000000000
+CT=B85713C12D8658951CD1AD21C74D2CD2
+
+I=92
+PT=00000000000000000000001000000000
+CT=907AA00B9F7D47A97623FB55BA911F29
+
+I=93
+PT=00000000000000000000000800000000
+CT=DC3CD0ED23D11776FAB43A2A6A8F3557
+
+I=94
+PT=00000000000000000000000400000000
+CT=4BFE58A8FD69179C14765B09AB70B705
+
+I=95
+PT=00000000000000000000000200000000
+CT=A23996E0EA67EC280356E5F77130A551
+
+I=96
+PT=00000000000000000000000100000000
+CT=CDEADE859B3AACD273CCA85A3E2E45F2
+
+I=97
+PT=00000000000000000000000080000000
+CT=E0FC78489857D84DA03F40CE97147174
+
+I=98
+PT=00000000000000000000000040000000
+CT=7615EA6351F6BB12855E8579C6995D8E
+
+I=99
+PT=00000000000000000000000020000000
+CT=13E184344FE28C2E70ED0E4D0A8037F9
+
+I=100
+PT=00000000000000000000000010000000
+CT=A5FE395F568482B87BC3EB208C81C942
+
+I=101
+PT=00000000000000000000000008000000
+CT=B3103E11AF06C85565823F8CAA3159F6
+
+I=102
+PT=00000000000000000000000004000000
+CT=7EBC2234D271B89C519C396985300030
+
+I=103
+PT=00000000000000000000000002000000
+CT=0661D338F2E0C939BA1687820A768467
+
+I=104
+PT=00000000000000000000000001000000
+CT=EC2B42667C0195A90715499617884DA5
+
+I=105
+PT=00000000000000000000000000800000
+CT=AE077BA19D24E7188DDD3682FF196892
+
+I=106
+PT=00000000000000000000000000400000
+CT=98823C24B9C65A66073C7952DC2B4B5E
+
+I=107
+PT=00000000000000000000000000200000
+CT=6AB58432CBB3C2F503DA2D16796CC297
+
+I=108
+PT=00000000000000000000000000100000
+CT=EEB5EBB3A53E4196C2F22BC1A4DDF5E8
+
+I=109
+PT=00000000000000000000000000080000
+CT=33DC40AC5FDC126D38878416AF6C0FA6
+
+I=110
+PT=00000000000000000000000000040000
+CT=38EDDC08E18B4AD982CEA921D2765A9A
+
+I=111
+PT=00000000000000000000000000020000
+CT=7D6BEA038E9347C642E18631660A9558
+
+I=112
+PT=00000000000000000000000000010000
+CT=FDA57921A473B5EE3700AD5ADF035019
+
+I=113
+PT=00000000000000000000000000008000
+CT=699B4812E200337E9C1D2C397F0DFE4E
+
+I=114
+PT=00000000000000000000000000004000
+CT=7A1EADF68B0807145D6C414852DECFC8
+
+I=115
+PT=00000000000000000000000000002000
+CT=1645FFAA8AD76689C01DA8C40882781F
+
+I=116
+PT=00000000000000000000000000001000
+CT=BA0C053BE702FA62FC66D8FEB12FC97E
+
+I=117
+PT=00000000000000000000000000000800
+CT=841FD8AF69CF2C31F7D4D7B6959662B5
+
+I=118
+PT=00000000000000000000000000000400
+CT=F675D59BDB33231861268F539829DA0B
+
+I=119
+PT=00000000000000000000000000000200
+CT=A4967F45ABB4E8C7DC5E3806680F35E0
+
+I=120
+PT=00000000000000000000000000000100
+CT=4D7E08081CC82F92ABA7C58C99F8343F
+
+I=121
+PT=00000000000000000000000000000080
+CT=9AEFDB287C119B82353612B60ECCBFD8
+
+I=122
+PT=00000000000000000000000000000040
+CT=979BB6A1553A17592A86E78DF144A699
+
+I=123
+PT=00000000000000000000000000000020
+CT=A6FA8CAB06FD2E5BF3A858983C01757A
+
+I=124
+PT=00000000000000000000000000000010
+CT=BE8511254C31E25420B91D6FEF1710ED
+
+I=125
+PT=00000000000000000000000000000008
+CT=F589A908D18A21894971C0433581E1A5
+
+I=126
+PT=00000000000000000000000000000004
+CT=4237585130E7C9F715235EB1D8C94DE7
+
+I=127
+PT=00000000000000000000000000000002
+CT=DEFE3E0B5C54C94B4F2A0F5A46F6210D
+
+I=128
+PT=00000000000000000000000000000001
+CT=F5574ACC3148DFCB9015200631024DF9
+
+==========
+
+KEYSIZE=256
+
+KEY=0000000000000000000000000000000000000000000000000000000000000000
+
+I=1
+PT=80000000000000000000000000000000
+CT=B0C6B88AEA518AB09E847248E91B1B9D
+
+I=2
+PT=40000000000000000000000000000000
+CT=B8D7684E35FA1DB15BDCEE7A48659858
+
+I=3
+PT=20000000000000000000000000000000
+CT=F0CAD59AF92FBB79F36951E697492750
+
+I=4
+PT=10000000000000000000000000000000
+CT=117100F6635389560DC4A2DA24EBA70F
+
+I=5
+PT=08000000000000000000000000000000
+CT=DBDD62355553019ED84C35886421E532
+
+I=6
+PT=04000000000000000000000000000000
+CT=9CB8D04FA506F19848F7B9110518BFC8
+
+I=7
+PT=02000000000000000000000000000000
+CT=E4308E253BC3444D293500701BA82C6A
+
+I=8
+PT=01000000000000000000000000000000
+CT=EA2FAE53F7F30C0170A20E95A068503E
+
+I=9
+PT=00800000000000000000000000000000
+CT=14B14839EA221880B2C64D1FE000B93D
+
+I=10
+PT=00400000000000000000000000000000
+CT=A5CFC075B342D5101AACC334E73058BB
+
+I=11
+PT=00200000000000000000000000000000
+CT=477EA56B2EBAD0F8AC5E1936866560FF
+
+I=12
+PT=00100000000000000000000000000000
+CT=107E8598418404196EC59F63E45B7F6D
+
+I=13
+PT=00080000000000000000000000000000
+CT=FF6A891E7C1C074A68FEC291928FDD8D
+
+I=14
+PT=00040000000000000000000000000000
+CT=F64C250A13F45D377ADB7545B2B157A9
+
+I=15
+PT=00020000000000000000000000000000
+CT=FAD0F252086F11C830C65B63197CBC38
+
+I=16
+PT=00010000000000000000000000000000
+CT=9DCB89B209441F02AD0D25C6AB826629
+
+I=17
+PT=00008000000000000000000000000000
+CT=E62E4ED4E4F34EDC563710D960E09D4C
+
+I=18
+PT=00004000000000000000000000000000
+CT=98A1B926BA06895C3F2E84CCBACBC356
+
+I=19
+PT=00002000000000000000000000000000
+CT=29BE0BE4DB7F4D196718AEA38F3B0BFD
+
+I=20
+PT=00001000000000000000000000000000
+CT=F670C4EBECBA0B43E71F6D752BFD4854
+
+I=21
+PT=00000800000000000000000000000000
+CT=7D7666B4484CDB7E3605468E093A787C
+
+I=22
+PT=00000400000000000000000000000000
+CT=562D06B181C091DA6C43642AE99460C6
+
+I=23
+PT=00000200000000000000000000000000
+CT=AB0EFB5975E6186B7D76BC9672453488
+
+I=24
+PT=00000100000000000000000000000000
+CT=10C0756538E7BFF88D19AE2B1F7B859A
+
+I=25
+PT=00000080000000000000000000000000
+CT=AF7FCD5248F8C72F1695AA05DD1CADE0
+
+I=26
+PT=00000040000000000000000000000000
+CT=9841E555655609A75D7BE20B8A90EF1E
+
+I=27
+PT=00000020000000000000000000000000
+CT=27F9546E6A1B7464780000561783569C
+
+I=28
+PT=00000010000000000000000000000000
+CT=8671D935D7A8354EECB7288803D42D7A
+
+I=29
+PT=00000008000000000000000000000000
+CT=0DA44F508DEBC6F044394624FCEB8EBE
+
+I=30
+PT=00000004000000000000000000000000
+CT=AB137369BE6D93FBB18006BDB236EC09
+
+I=31
+PT=00000002000000000000000000000000
+CT=EB90C4E597A7E1779FFA260886E26F75
+
+I=32
+PT=00000001000000000000000000000000
+CT=618CF3588D5C128EAF252616230E08F7
+
+I=33
+PT=00000000800000000000000000000000
+CT=98DC4DB49D197AB9152D12B9DE2D73CA
+
+I=34
+PT=00000000400000000000000000000000
+CT=5BDDE24B15702A35E1F140C57D206443
+
+I=35
+PT=00000000200000000000000000000000
+CT=CF755809882BED8BA2F9F1A4ED296A2B
+
+I=36
+PT=00000000100000000000000000000000
+CT=F1A8DBB999538AE89D16F92A7F4D1DF1
+
+I=37
+PT=00000000080000000000000000000000
+CT=775222FDDAAECB81CF675C4E0B98179E
+
+I=38
+PT=00000000040000000000000000000000
+CT=12A648CADCD153C760A965826683119A
+
+I=39
+PT=00000000020000000000000000000000
+CT=0503FB10AB241E7CF45D8CDEEE474335
+
+I=40
+PT=00000000010000000000000000000000
+CT=3D299C0070CBBD831B802690B8E7CA24
+
+I=41
+PT=00000000008000000000000000000000
+CT=33105BD4D11D66753DC34D128BEFE3F4
+
+I=42
+PT=00000000004000000000000000000000
+CT=5EFCE2B4B987C0F77D27B44836881682
+
+I=43
+PT=00000000002000000000000000000000
+CT=7835449454128035D7F0EA99E327577B
+
+I=44
+PT=00000000001000000000000000000000
+CT=27BEDDA0601BE35122FB1D272D73AB3E
+
+I=45
+PT=00000000000800000000000000000000
+CT=54C3F99FF48E318CC515EDE75800C4B3
+
+I=46
+PT=00000000000400000000000000000000
+CT=C627C329F8E48299F6FDB23B9DBEA0BB
+
+I=47
+PT=00000000000200000000000000000000
+CT=1B6578F9E23BD8C1845A02431C5F9AA3
+
+I=48
+PT=00000000000100000000000000000000
+CT=6DB2FB8C0B9344D0547C0FF1292020C6
+
+I=49
+PT=00000000000080000000000000000000
+CT=4FAD9B2C37C131493FBEF53581FA4F83
+
+I=50
+PT=00000000000040000000000000000000
+CT=47502A01E93D2C87BD5584F6AFD3D99D
+
+I=51
+PT=00000000000020000000000000000000
+CT=056E1C6F651BFE50271B3B7A18E76D84
+
+I=52
+PT=00000000000010000000000000000000
+CT=5632BAF6627B3D96AD4E06FA6A561F55
+
+I=53
+PT=00000000000008000000000000000000
+CT=E29807CAACDFA2D41A7D9E91FA7FD8EB
+
+I=54
+PT=00000000000004000000000000000000
+CT=81DD44BB5D1822DEE605F9E6FF01D7B3
+
+I=55
+PT=00000000000002000000000000000000
+CT=5C3649925E47D7FF96482A8FBD9666FD
+
+I=56
+PT=00000000000001000000000000000000
+CT=695415A836E66E737887845EC08A1ADB
+
+I=57
+PT=00000000000000800000000000000000
+CT=F5416BCE292D9E2CEA5D1CC70BBAEED1
+
+I=58
+PT=00000000000000400000000000000000
+CT=7AEC4F1388FC29C47F7FED74ADDE8485
+
+I=59
+PT=00000000000000200000000000000000
+CT=82A9F1A6CE08BC4876E649D8A8EA7EB6
+
+I=60
+PT=00000000000000100000000000000000
+CT=B6296C88ADF1A792908B065EEB04BFC2
+
+I=61
+PT=00000000000000080000000000000000
+CT=E766A39AECCA40BDBFBE6FF3FA292913
+
+I=62
+PT=00000000000000040000000000000000
+CT=C6D081454EA00D83C23B5A62C84359E1
+
+I=63
+PT=00000000000000020000000000000000
+CT=85D259A79CCA80484504D1603F7A8F53
+
+I=64
+PT=00000000000000010000000000000000
+CT=D8291FA1C6DC250078824B2D0A20883F
+
+I=65
+PT=00000000000000008000000000000000
+CT=95387CB74C48FFBD1F8D64A6CC45E074
+
+I=66
+PT=00000000000000004000000000000000
+CT=A17F975F538F56CDF629B516011DE837
+
+I=67
+PT=00000000000000002000000000000000
+CT=B50B615A1654C6E1CB6AB33716C097FE
+
+I=68
+PT=00000000000000001000000000000000
+CT=7BBB2CBB874DF6C8B821DA7FB0F9011B
+
+I=69
+PT=00000000000000000800000000000000
+CT=E9EFE074D096A275E47CD2E6206DF6A1
+
+I=70
+PT=00000000000000000400000000000000
+CT=88F2F8D5A836406AE8BBB98C65BBDA55
+
+I=71
+PT=00000000000000000200000000000000
+CT=F64620D8D87585A3EF038B9AD58F5EA0
+
+I=72
+PT=00000000000000000100000000000000
+CT=694438EC141C8ED5F2F898B4554A298F
+
+I=73
+PT=00000000000000000080000000000000
+CT=3E6226EC7726A1EE5F5FA9B18CCE8C44
+
+I=74
+PT=00000000000000000040000000000000
+CT=8AB6949E79911647800B9E87362AB97A
+
+I=75
+PT=00000000000000000020000000000000
+CT=093C5CF24EDAF7F9F1C8A80DE4FF50A9
+
+I=76
+PT=00000000000000000010000000000000
+CT=28A36E50061F19E240351ED0E378CBF4
+
+I=77
+PT=00000000000000000008000000000000
+CT=B93BB36CB88BF26EA79198652AA51D3C
+
+I=78
+PT=00000000000000000004000000000000
+CT=DE4948083D044FAC9BCA6DA8CD67B8A6
+
+I=79
+PT=00000000000000000002000000000000
+CT=6E778B5BDA6CA118117E47470D080D3C
+
+I=80
+PT=00000000000000000001000000000000
+CT=0A9107324DA32B4281D032A3487EF875
+
+I=81
+PT=00000000000000000000800000000000
+CT=18ED5635312D71ABD123CCE779D4D68A
+
+I=82
+PT=00000000000000000000400000000000
+CT=2E3C63F95C4BC1F944BAB06DEDC9AA8E
+
+I=83
+PT=00000000000000000000200000000000
+CT=ACCC869EF07004C8C3C709083BE7BA2F
+
+I=84
+PT=00000000000000000000100000000000
+CT=DF60B34FB1A59147CC1FB049C1578206
+
+I=85
+PT=00000000000000000000080000000000
+CT=4228DC636C08E41021054AA0E1E2227A
+
+I=86
+PT=00000000000000000000040000000000
+CT=7CE27F66EFD735FFD6B3E1738C50495B
+
+I=87
+PT=00000000000000000000020000000000
+CT=F8E74B33A9CDE351DA0BBC06D69093D7
+
+I=88
+PT=00000000000000000000010000000000
+CT=AE0D22A5B37B8DC5D81CC641EED334D0
+
+I=89
+PT=00000000000000000000008000000000
+CT=C181C6CA5E163743458B9167A0B6A16A
+
+I=90
+PT=00000000000000000000004000000000
+CT=5171F4F6095E4B276CFBA1F07223FBE6
+
+I=91
+PT=00000000000000000000002000000000
+CT=2732F4D3A8C9D1D8D493840D6E0B864F
+
+I=92
+PT=00000000000000000000001000000000
+CT=3EF04E0059A061D973532CA5C1DFBE7B
+
+I=93
+PT=00000000000000000000000800000000
+CT=6D9A8F23579E4978EBAA87B5ADEB77E5
+
+I=94
+PT=00000000000000000000000400000000
+CT=BBD08873CC44BA4253C0C41FEEB7F124
+
+I=95
+PT=00000000000000000000000200000000
+CT=72E4B2437CBD283F3809CE686F6A591E
+
+I=96
+PT=00000000000000000000000100000000
+CT=6E5580514B92512B1BF4B1B987B9AA1B
+
+I=97
+PT=00000000000000000000000080000000
+CT=5EF5D0C5BCBDCB604D3A083B68CE0FA3
+
+I=98
+PT=00000000000000000000000040000000
+CT=9D991FDD723AD2182777A15CA0E0F665
+
+I=99
+PT=00000000000000000000000020000000
+CT=24440626EFC8F86BEA7DE78085AB8A22
+
+I=100
+PT=00000000000000000000000010000000
+CT=17C3630D62D13C1E826C0FCCBD74A864
+
+I=101
+PT=00000000000000000000000008000000
+CT=4CF5AB86A56AB134A7FE46CCE3F9FCE9
+
+I=102
+PT=00000000000000000000000004000000
+CT=3E6B9C0388F6D9B8F458F30221907607
+
+I=103
+PT=00000000000000000000000002000000
+CT=AD9C926B8A5CD98EEE88200617E59958
+
+I=104
+PT=00000000000000000000000001000000
+CT=AFF8AED5E075E02AF720CA4BF0028B3B
+
+I=105
+PT=00000000000000000000000000800000
+CT=D90EAFF909202BB209BB3BB8C7F9A954
+
+I=106
+PT=00000000000000000000000000400000
+CT=2C709B00E6A22F00F64A7D8EE341853F
+
+I=107
+PT=00000000000000000000000000200000
+CT=CCEC598F0D9F0BF201B2F487136D54A4
+
+I=108
+PT=00000000000000000000000000100000
+CT=73B2883A0A166AAE1BF14E60A5195FA3
+
+I=109
+PT=00000000000000000000000000080000
+CT=E676867BD9AD5EF915143388496779D7
+
+I=110
+PT=00000000000000000000000000040000
+CT=CDCB73D1BFCFD4BE7F1DAA9B1C6A4055
+
+I=111
+PT=00000000000000000000000000020000
+CT=02A3A5C89DAA24CD2C517F7A73286A89
+
+I=112
+PT=00000000000000000000000000010000
+CT=C0FA2AC9E92EE58C2DD12D6D43AB7035
+
+I=113
+PT=00000000000000000000000000008000
+CT=EDC2CB1F7291353BDBF2385519E6AE16
+
+I=114
+PT=00000000000000000000000000004000
+CT=B4B62D16D197A98CD3B978812B9D9884
+
+I=115
+PT=00000000000000000000000000002000
+CT=5CDFC95A529A905101CEA26BC1B891ED
+
+I=116
+PT=00000000000000000000000000001000
+CT=CC7150CD3650B98363296C7C4ED368D1
+
+I=117
+PT=00000000000000000000000000000800
+CT=CC57706B0C6526B8E25A5DBD32EACBDB
+
+I=118
+PT=00000000000000000000000000000400
+CT=30D30456AD98B182D64C649648F6AEC9
+
+I=119
+PT=00000000000000000000000000000200
+CT=D7E9DA7F631938EB649A08AF82FBD75F
+
+I=120
+PT=00000000000000000000000000000100
+CT=B8DA2AF6600B07895B5D0FFAF4991469
+
+I=121
+PT=00000000000000000000000000000080
+CT=0F6F64F930BA6C178943322B98114599
+
+I=122
+PT=00000000000000000000000000000040
+CT=8B1F247802E47C91BEE2AA34ECFD7A01
+
+I=123
+PT=00000000000000000000000000000020
+CT=7A6985778D3A66E97F23E01F0D0E45E7
+
+I=124
+PT=00000000000000000000000000000010
+CT=BA664AC39855518DFDEE10D1B3111FAE
+
+I=125
+PT=00000000000000000000000000000008
+CT=7C92854D801A1648F65CA81813DDBF83
+
+I=126
+PT=00000000000000000000000000000004
+CT=6A3F25AAB7E92D9CF378E5D9C040F26B
+
+I=127
+PT=00000000000000000000000000000002
+CT=3D4B2CDE666761BA5DFB305178E667FB
+
+I=128
+PT=00000000000000000000000000000001
+CT=9CDB269B5D293BC5DB9C55B057D9B591
+
+==========

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/kerby-kerb/kerb-util/src/test/resources/camellia128-cts-cmac.cc
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-util/src/test/resources/camellia128-cts-cmac.cc b/kerby-kerb/kerb-util/src/test/resources/camellia128-cts-cmac.cc
new file mode 100644
index 0000000..5d6f8a5
Binary files /dev/null and b/kerby-kerb/kerb-util/src/test/resources/camellia128-cts-cmac.cc differ

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/kerby-kerb/kerb-util/src/test/resources/camellia256-cts-cmac.cc
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-util/src/test/resources/camellia256-cts-cmac.cc b/kerby-kerb/kerb-util/src/test/resources/camellia256-cts-cmac.cc
new file mode 100644
index 0000000..c9a6ecd
Binary files /dev/null and b/kerby-kerb/kerb-util/src/test/resources/camellia256-cts-cmac.cc differ

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/kerby-kerb/kerb-util/src/test/resources/des-cbc-crc.cc
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-util/src/test/resources/des-cbc-crc.cc b/kerby-kerb/kerb-util/src/test/resources/des-cbc-crc.cc
new file mode 100644
index 0000000..b43fe30
Binary files /dev/null and b/kerby-kerb/kerb-util/src/test/resources/des-cbc-crc.cc differ

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/kerby-kerb/kerb-util/src/test/resources/des3-cbc-sha1.cc
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-util/src/test/resources/des3-cbc-sha1.cc b/kerby-kerb/kerb-util/src/test/resources/des3-cbc-sha1.cc
new file mode 100644
index 0000000..ba2f6ea
Binary files /dev/null and b/kerby-kerb/kerb-util/src/test/resources/des3-cbc-sha1.cc differ

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/kerby-kerb/kerb-util/src/test/resources/krbtgt.keytab
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-util/src/test/resources/krbtgt.keytab b/kerby-kerb/kerb-util/src/test/resources/krbtgt.keytab
new file mode 100644
index 0000000..08bd0c1
Binary files /dev/null and b/kerby-kerb/kerb-util/src/test/resources/krbtgt.keytab differ

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/kerby-kerb/kerb-util/src/test/resources/test.cc
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-util/src/test/resources/test.cc b/kerby-kerb/kerb-util/src/test/resources/test.cc
new file mode 100644
index 0000000..22a27e8
Binary files /dev/null and b/kerby-kerb/kerb-util/src/test/resources/test.cc differ

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/kerby-kerb/kerb-util/src/test/resources/test.keytab
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-util/src/test/resources/test.keytab b/kerby-kerb/kerb-util/src/test/resources/test.keytab
new file mode 100644
index 0000000..5a9c733
Binary files /dev/null and b/kerby-kerb/kerb-util/src/test/resources/test.keytab differ

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/kerby-kerb/pom.xml
----------------------------------------------------------------------
diff --git a/kerby-kerb/pom.xml b/kerby-kerb/pom.xml
new file mode 100644
index 0000000..048736b
--- /dev/null
+++ b/kerby-kerb/pom.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed 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. See accompanying LICENSE file.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache.kerby</groupId>
+    <artifactId>kerby-all</artifactId>
+    <version>1.0-SNAPSHOT</version>
+  </parent>
+  
+  <artifactId>kerby-kerb</artifactId>
+  <name>Kerby-kerb Project</name>
+  <version>1.0-SNAPSHOT</version>
+  <packaging>pom</packaging>
+
+  <modules>
+    <module>kerb-core</module>
+    <module>kerb-core-test</module>
+    <module>kerb-common</module>
+    <module>kerb-util</module>
+    <module>kerb-crypto</module>
+    <module>kerb-identity</module>
+    <module>kerb-client</module>
+    <module>kerb-server</module>
+    <module>kerb-kdc-test</module>
+  </modules>
+
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+</project>

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/lib/haox-config/README
----------------------------------------------------------------------
diff --git a/lib/haox-config/README b/lib/haox-config/README
deleted file mode 100644
index 37eb019..0000000
--- a/lib/haox-config/README
+++ /dev/null
@@ -1 +0,0 @@
-An unified configuration API that crosses various popular configuration formats like XML, JSON, INI and etc.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/lib/haox-config/pom.xml
----------------------------------------------------------------------
diff --git a/lib/haox-config/pom.xml b/lib/haox-config/pom.xml
deleted file mode 100644
index b298f1f..0000000
--- a/lib/haox-config/pom.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed 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. See accompanying LICENSE file.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
-  <parent>
-    <groupId>org.haox</groupId>
-    <artifactId>lib</artifactId>
-    <version>1.0-SNAPSHOT</version>
-  </parent>
-
-  <modelVersion>4.0.0</modelVersion>
-
-  <artifactId>haox-config</artifactId>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-api</artifactId>
-    </dependency>
-  </dependencies>
-</project>

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/lib/haox-config/src/main/java/org/apache/haox/config/Conf.java
----------------------------------------------------------------------
diff --git a/lib/haox-config/src/main/java/org/apache/haox/config/Conf.java b/lib/haox-config/src/main/java/org/apache/haox/config/Conf.java
deleted file mode 100644
index caa9651..0000000
--- a/lib/haox-config/src/main/java/org/apache/haox/config/Conf.java
+++ /dev/null
@@ -1,285 +0,0 @@
-/**
- *  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.haox.config;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.*;
-
-public class Conf implements Config {
-    private static final Logger logger = LoggerFactory.getLogger(Conf.class);
-
-	private List<ConfigLoader> resourceConfigs;
-    private final ConfigImpl config;
-    private boolean needReload;
-
-	public Conf() {
-        this.resourceConfigs = new ArrayList<ConfigLoader>(1);
-        this.config = new ConfigImpl("Conf");
-        this.needReload = true;
-	}
-
-	public void addXmlConfig(File xmlFile) throws IOException {
-        addResource(Resource.createXmlResource(xmlFile));
-	}
-
-    public void addIniConfig(File iniFile) throws IOException {
-        addResource(Resource.createIniResource(iniFile));
-    }
-
-    public void addJsonConfig(File jsonFile) throws IOException {
-        addResource(Resource.createJsonResource(jsonFile));
-    }
-
-    public void addPropertiesConfig(File propertiesFile) throws IOException {
-        addResource(Resource.createPropertiesFileResource(propertiesFile));
-    }
-
-    public void addPropertiesConfig(Properties propertiesConfig) {
-        addResource(Resource.createPropertiesResource(propertiesConfig));
-    }
-
-    public void addMapConfig(Map<String, String> mapConfig) {
-        addResource(Resource.createMapResource(mapConfig));
-    }
-
-    public void addResource(Resource resource) {
-        ConfigLoader loader = getLoader(resource);
-        resourceConfigs.add(loader);
-        needReload = true;
-    }
-
-    private static ConfigLoader getLoader(Resource resource) {
-        ConfigLoader loader = null;
-
-        Class<? extends ConfigLoader> loaderClass = resource.getFormat().getLoaderClass();
-        try {
-            loader = loaderClass.newInstance();
-        } catch (Exception e) {
-            throw new RuntimeException("Failed to create org.haox.config loader for " + loaderClass.getName(), e);
-        }
-        loader.setResource(resource);
-        return loader;
-    }
-
-    private void checkAndLoad() {
-        if (needReload) {
-            reload();
-            needReload = false;
-        }
-    }
-
-    public void reload() {
-        config.reset();
-        if (resourceConfigs.size() == 1) {
-            ConfigLoader loader = resourceConfigs.get(0);
-            loader.setConfig(config);
-            loader.load();
-        } else {
-            for (ConfigLoader loader : resourceConfigs) {
-                Config loaded = loader.load();
-                config.add(loaded);
-            }
-        }
-    }
-
-    @Override
-    public String getResource() {
-        checkAndLoad();
-        return config.getResource();
-    }
-
-    @Override
-    public Set<String> getNames() {
-        checkAndLoad();
-        return config.getNames();
-    }
-
-    @Override
-    public String getString(String name) {
-        checkAndLoad();
-        return config.getString(name);
-    }
-
-    @Override
-    public String getString(ConfigKey name) {
-        checkAndLoad();
-        return config.getString(name);
-    }
-
-    @Override
-    public String getString(String name, String defaultValue) {
-        checkAndLoad();
-        return config.getString(name, defaultValue);
-    }
-
-    @Override
-    public String getTrimmed(String name) {
-        checkAndLoad();
-        return config.getTrimmed(name);
-    }
-
-    @Override
-    public String getTrimmed(ConfigKey name) {
-        checkAndLoad();
-        return config.getTrimmed(name);
-    }
-
-    @Override
-    public Boolean getBoolean(String name) {
-        checkAndLoad();
-        return config.getBoolean(name);
-    }
-
-    @Override
-    public Boolean getBoolean(ConfigKey name) {
-        checkAndLoad();
-        return config.getBoolean(name);
-    }
-
-    @Override
-    public Boolean getBoolean(String name, boolean defaultValue) {
-        checkAndLoad();
-        return config.getBoolean(name, defaultValue);
-    }
-
-    @Override
-    public Integer getInt(String name) {
-        checkAndLoad();
-        return config.getInt(name);
-    }
-
-    @Override
-    public Integer getInt(ConfigKey name) {
-        checkAndLoad();
-        return config.getInt(name);
-    }
-
-    @Override
-    public Integer getInt(String name, int defaultValue) {
-        checkAndLoad();
-        return config.getInt(name, defaultValue);
-    }
-
-    @Override
-    public Long getLong(String name) {
-        checkAndLoad();
-        return config.getLong(name);
-    }
-
-    @Override
-    public Long getLong(ConfigKey name) {
-        checkAndLoad();
-        return config.getLong(name);
-    }
-
-    @Override
-    public Long getLong(String name, long defaultValue) {
-        checkAndLoad();
-        return config.getLong(name, defaultValue);
-    }
-
-    @Override
-    public Float getFloat(String name) {
-        checkAndLoad();
-        return config.getFloat(name);
-    }
-
-    @Override
-    public Float getFloat(ConfigKey name) {
-        checkAndLoad();
-        return config.getFloat(name);
-    }
-
-    @Override
-    public Float getFloat(String name, float defaultValue) {
-        checkAndLoad();
-        return config.getFloat(name, defaultValue);
-    }
-
-    @Override
-    public List<String> getList(String name) {
-        checkAndLoad();
-        return config.getList(name);
-    }
-
-    @Override
-    public List<String> getList(String name, String[] defaultValue) {
-        checkAndLoad();
-        return config.getList(name, defaultValue);
-    }
-
-    @Override
-    public List<String> getList(ConfigKey name) {
-        checkAndLoad();
-        return config.getList(name);
-    }
-
-    @Override
-    public Config getConfig(String name) {
-        checkAndLoad();
-        return config.getConfig(name);
-    }
-
-    @Override
-    public Config getConfig(ConfigKey name) {
-        checkAndLoad();
-        return config.getConfig(name);
-    }
-
-    @Override
-    public Class<?> getClass(String name) throws ClassNotFoundException {
-        checkAndLoad();
-        return config.getClass(name);
-    }
-
-    @Override
-    public Class<?> getClass(String name, Class<?> defaultValue) throws ClassNotFoundException {
-        checkAndLoad();
-        return config.getClass(name, defaultValue);
-    }
-
-    @Override
-    public Class<?> getClass(ConfigKey name) throws ClassNotFoundException {
-        checkAndLoad();
-        return config.getClass(name);
-    }
-
-    @Override
-    public <T> T getInstance(String name) throws ClassNotFoundException {
-        checkAndLoad();
-        return config.getInstance(name);
-    }
-
-    @Override
-    public <T> T getInstance(ConfigKey name) throws ClassNotFoundException {
-        checkAndLoad();
-        return config.getInstance(name);
-    }
-
-    @Override
-    public <T> T getInstance(String name, Class<T> xface) throws ClassNotFoundException {
-        checkAndLoad();
-        return config.getInstance(name, xface);
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/lib/haox-config/src/main/java/org/apache/haox/config/Config.java
----------------------------------------------------------------------
diff --git a/lib/haox-config/src/main/java/org/apache/haox/config/Config.java b/lib/haox-config/src/main/java/org/apache/haox/config/Config.java
deleted file mode 100644
index f8c32f1..0000000
--- a/lib/haox-config/src/main/java/org/apache/haox/config/Config.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/**
- *  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.haox.config;
-
-import java.util.List;
-import java.util.Set;
-
-public interface Config {
-    public String getResource();
-    public Set<String> getNames();
-
-    public String getString(String name);
-    public String getString(ConfigKey name);
-    public String getString(String name, String defaultValue);
-    public String getTrimmed(String name);
-    public String getTrimmed(ConfigKey name);
-    public Boolean getBoolean(String name);
-    public Boolean getBoolean(ConfigKey name);
-    public Boolean getBoolean(String name, boolean defaultValue);
-    public Integer getInt(String name);
-    public Integer getInt(ConfigKey name);
-    public Integer getInt(String name, int defaultValue);
-    public Long getLong(String name);
-    public Long getLong(ConfigKey name);
-    public Long getLong(String name, long defaultValue);
-    public Float getFloat(String name);
-    public Float getFloat(ConfigKey name);
-    public Float getFloat(String name, float defaultValue);
-    public List<String> getList(String name);
-    public List<String> getList(String name, String[] defaultValue);
-    public List<String> getList(ConfigKey name);
-    public Config getConfig(String name);
-    public Config getConfig(ConfigKey name);
-
-    public Class<?> getClass(String name) throws ClassNotFoundException;
-    public Class<?> getClass(String name, Class<?> defaultValue) throws ClassNotFoundException;
-    public Class<?> getClass(ConfigKey name) throws ClassNotFoundException;
-    public <T> T getInstance(String name) throws ClassNotFoundException;
-    public <T> T getInstance(ConfigKey name) throws ClassNotFoundException;
-    public <T> T getInstance(String name, Class<T> xface) throws ClassNotFoundException;
-}

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/lib/haox-config/src/main/java/org/apache/haox/config/ConfigImpl.java
----------------------------------------------------------------------
diff --git a/lib/haox-config/src/main/java/org/apache/haox/config/ConfigImpl.java b/lib/haox-config/src/main/java/org/apache/haox/config/ConfigImpl.java
deleted file mode 100644
index ad031a0..0000000
--- a/lib/haox-config/src/main/java/org/apache/haox/config/ConfigImpl.java
+++ /dev/null
@@ -1,346 +0,0 @@
-/**
- *  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.haox.config;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.*;
-
-public class ConfigImpl implements Config {
-    private static final Logger logger = LoggerFactory.getLogger(Config.class);
-
-    private String resource;
-    private Map<String, ConfigObject> properties;
-    /**
-     * Config resources
-     */
-    private List<Config> configs;
-
-    private Set<String> propNames;
-
-    protected ConfigImpl(String resource) {
-        this.resource = resource;
-        this.properties = new HashMap<String, ConfigObject>();
-        this.configs = new ArrayList<Config>(0);
-    }
-
-    protected void reset() {
-        this.properties.clear();
-        this.configs.clear();
-    }
-
-    @Override
-    public String getResource() {
-        return resource;
-    }
-
-    @Override
-    public Set<String> getNames() {
-        reloadNames();
-        return propNames;
-    }
-
-    @Override
-    public String getString(String name) {
-        String result = null;
-
-        ConfigObject co = properties.get(name);
-        if (co != null) {
-            result = co.getPropertyValue();
-        }
-
-        if (result == null) {
-            for (Config config : configs) {
-                result = config.getString(name);
-                if (result != null) break;
-            }
-        }
-
-        return result;
-    }
-
-    @Override
-    public String getString(ConfigKey name) {
-        if (name.getDefaultValue() != null) {
-            return getString(name.getPropertyKey(), (String) name.getDefaultValue());
-        }
-        return getString(name.getPropertyKey());
-    }
-
-    @Override
-    public String getString(String name, String defaultValue) {
-        String result = getString(name);
-        if (result == null) {
-            result = defaultValue;
-        }
-        return result;
-    }
-
-    @Override
-    public String getTrimmed(String name) {
-        String result = getString(name);
-        if (null != result) {
-            result = result.trim();
-        }
-        return result;
-    }
-
-    @Override
-    public String getTrimmed(ConfigKey name) {
-        return getTrimmed(name.getPropertyKey());
-    }
-
-    @Override
-    public Integer getInt(String name) {
-        Integer result = null;
-        String value = getTrimmed(name);
-        if (value != null) {
-            result = Integer.valueOf(value);
-        }
-        return result;
-    }
-
-    @Override
-    public Integer getInt(ConfigKey name) {
-        if (name.getDefaultValue() != null) {
-            return getInt(name.getPropertyKey(), (Integer) name.getDefaultValue());
-        }
-        return getInt(name.getPropertyKey());
-    }
-
-    @Override
-    public Integer getInt(String name, int defaultValue) {
-        Integer result = getInt(name);
-        if (result == null) {
-            result = defaultValue;
-        }
-        return result;
-    }
-
-    @Override
-    public Long getLong(String name) {
-        Long result = null;
-        String value = getTrimmed(name);
-        if (value != null) {
-            result = Long.valueOf(value);
-        }
-        return result;
-    }
-
-    @Override
-    public Long getLong(ConfigKey name) {
-        if (name.getDefaultValue() != null) {
-            return getLong(name.getPropertyKey(), (Long) name.getDefaultValue());
-        }
-        return getLong(name.getPropertyKey());
-    }
-
-    @Override
-    public Long getLong(String name, long defaultValue) {
-        Long result = getLong(name);
-        if (result == null) {
-            result = defaultValue;
-        }
-        return result;
-    }
-
-    @Override
-    public Float getFloat(String name) {
-        Float result = null;
-        String value = getTrimmed(name);
-        if (value != null) {
-            result = Float.valueOf(value);
-        }
-        return result;
-    }
-
-    @Override
-    public Float getFloat(ConfigKey name) {
-        if (name.getDefaultValue() != null) {
-            return getFloat(name.getPropertyKey(), (Float) name.getDefaultValue());
-        }
-        return getFloat(name.getPropertyKey());
-    }
-
-    @Override
-    public Float getFloat(String name, float defaultValue) {
-        Float result = getFloat(name);
-        if (result == null) {
-            result = defaultValue;
-        }
-        return result;
-    }
-
-    @Override
-    public Boolean getBoolean(String name) {
-        Boolean result = null;
-        String value = getTrimmed(name);
-        if (value != null) {
-            result = Boolean.valueOf(value);
-        }
-        return result;
-    }
-
-    @Override
-    public Boolean getBoolean(ConfigKey name) {
-        if (name.getDefaultValue() != null) {
-            return getBoolean(name.getPropertyKey(), (Boolean) name.getDefaultValue());
-        }
-        return getBoolean(name.getPropertyKey());
-    }
-
-    @Override
-    public Boolean getBoolean(String name, boolean defaultValue) {
-        Boolean result = getBoolean(name);
-        if (result == null) {
-            result = defaultValue;
-        }
-        return result;
-    }
-
-    @Override
-    public List<String> getList(String name) {
-        List<String> results = null;
-        ConfigObject co = properties.get(name);
-        if (co != null) {
-            results = co.getListValues();
-        }
-        return results;
-    }
-
-    @Override
-    public List<String> getList(String name, String[] defaultValue) {
-        List<String> results = getList(name);
-        if (results == null) {
-            results = Arrays.asList(defaultValue);
-        }
-        return results;
-    }
-
-    @Override
-    public List<String> getList(ConfigKey name) {
-        if (name.getDefaultValue() != null) {
-            return getList(name.getPropertyKey(), (String[]) name.getDefaultValue());
-        }
-        return getList(name.getPropertyKey());
-    }
-
-    @Override
-    public Config getConfig(String name) {
-        Config result = null;
-        ConfigObject co = properties.get(name);
-        if (co != null) {
-            result = co.getConfigValue();
-        }
-        return result;
-    }
-
-    @Override
-    public Config getConfig(ConfigKey name) {
-        return getConfig(name.getPropertyKey());
-    }
-
-    @Override
-    public Class<?> getClass(String name) throws ClassNotFoundException {
-        Class<?> result = null;
-
-        String valueString = getString(name);
-        if (valueString != null) {
-            Class<?> cls = Class.forName(name);
-            result = cls;
-        }
-
-        return result;
-    }
-
-    @Override
-    public Class<?> getClass(String name, Class<?> defaultValue) throws ClassNotFoundException {
-        Class<?> result = getClass(name);
-        if (result == null) {
-            result = defaultValue;
-        }
-        return result;
-    }
-
-    @Override
-    public Class<?> getClass(ConfigKey name) throws ClassNotFoundException {
-        if (name.getDefaultValue() != null) {
-            return getClass(name.getPropertyKey(), (Class<?>) name.getDefaultValue());
-        }
-        return getClass(name.getPropertyKey());
-    }
-
-    @Override
-    public <T> T getInstance(String name) throws ClassNotFoundException {
-        return getInstance(name, null);
-    }
-
-    @Override
-    public <T> T getInstance(ConfigKey name) throws ClassNotFoundException {
-        return getInstance(name.getPropertyKey());
-    }
-
-    @Override
-    public <T> T getInstance(String name, Class<T> xface) throws ClassNotFoundException {
-        T result = null;
-
-        Class<?> cls = getClass(name, null);
-        if (xface != null && !xface.isAssignableFrom(cls)) {
-            throw new RuntimeException(cls + " does not implement " + xface);
-        }
-        try {
-            result = (T) cls.newInstance();
-        } catch (Exception e) {
-            throw new RuntimeException("Failed to create instance with class " + cls.getName());
-        }
-
-        return result;
-    }
-
-    protected void set(String name, String value) {
-        ConfigObject co = new ConfigObject(value);
-        set(name, co);
-    }
-
-    protected void set(String name, Config value) {
-        ConfigObject co = new ConfigObject(value);
-        set(name, co);
-    }
-
-    protected void set(String name, ConfigObject value) {
-        this.properties.put(name, value);
-    }
-
-    protected void add(Config config) {
-        this.configs.add(config);
-    }
-
-    private void reloadNames() {
-        if (propNames != null) {
-            propNames.clear();
-        }
-        propNames = new HashSet<String>(properties.keySet());
-        for (Config config : configs) {
-            propNames.addAll(config.getNames());
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/lib/haox-config/src/main/java/org/apache/haox/config/ConfigKey.java
----------------------------------------------------------------------
diff --git a/lib/haox-config/src/main/java/org/apache/haox/config/ConfigKey.java b/lib/haox-config/src/main/java/org/apache/haox/config/ConfigKey.java
deleted file mode 100644
index 838a34c..0000000
--- a/lib/haox-config/src/main/java/org/apache/haox/config/ConfigKey.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
- *  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.haox.config;
-
-public interface ConfigKey {
-    public String getPropertyKey();
-    public Object getDefaultValue();
-}

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/lib/haox-config/src/main/java/org/apache/haox/config/ConfigLoader.java
----------------------------------------------------------------------
diff --git a/lib/haox-config/src/main/java/org/apache/haox/config/ConfigLoader.java b/lib/haox-config/src/main/java/org/apache/haox/config/ConfigLoader.java
deleted file mode 100644
index 5f21cc9..0000000
--- a/lib/haox-config/src/main/java/org/apache/haox/config/ConfigLoader.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/**
- *  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.haox.config;
-
-public abstract class ConfigLoader {
-    private Resource resource;
-    private ConfigImpl config;
-
-    protected void setResource(Resource resource) {
-        this.resource = resource;
-    }
-
-    protected void setConfig(ConfigImpl config) {
-        this.config = config;
-    }
-
-    public Config load() {
-        if (config == null) {
-            config = new ConfigImpl(resource.getName());
-        }
-        config.reset();
-
-        try {
-            loadConfig(config, resource);
-        } catch (Exception e) {
-            throw new RuntimeException("Failed to load org.haox.config", e);
-        }
-
-        return this.config;
-    }
-
-    protected abstract void loadConfig(ConfigImpl config, Resource resource) throws Exception;
-}

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/lib/haox-config/src/main/java/org/apache/haox/config/ConfigObject.java
----------------------------------------------------------------------
diff --git a/lib/haox-config/src/main/java/org/apache/haox/config/ConfigObject.java b/lib/haox-config/src/main/java/org/apache/haox/config/ConfigObject.java
deleted file mode 100644
index 2f74e5b..0000000
--- a/lib/haox-config/src/main/java/org/apache/haox/config/ConfigObject.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/**
- *  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.haox.config;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class ConfigObject {
-	protected static enum VALUE_TYPE { PROPERTY, LIST, CONFIG };
-		
-	private VALUE_TYPE valueType;
-	private Object value;
-	
-	public ConfigObject(String value) {
-		this.value = value;
-		this.valueType = VALUE_TYPE.PROPERTY;
-	}
-	
-	public ConfigObject(String[] values) {
-		List<String> valuesList = new ArrayList<String>();
-		for (String v : values) {
-			valuesList.add(v);
-		}
-
-		this.value = valuesList;
-		this.valueType = VALUE_TYPE.LIST;
-	}
-
-    public ConfigObject(List<String> values) {
-        this.value = new ArrayList<String>(values);
-        this.valueType = VALUE_TYPE.LIST;
-    }
-
-	public ConfigObject(Config value) {
-		this.value = value;
-		this.valueType = VALUE_TYPE.CONFIG;
-	}
-
-	public String getPropertyValue() {
-		String result = null;
-		if (valueType == VALUE_TYPE.PROPERTY) {
-			result = (String) value;
-		}
-		return result;
-	}
-	
-	public List<String> getListValues() {
-		List<String> results = null;
-		if (valueType == VALUE_TYPE.LIST) {
-            results = (List<String>) value;
-		}
-		
-		return results;
-	}
-
-	public Config getConfigValue() {
-		Config result = null;
-		if (valueType == VALUE_TYPE.CONFIG) {
-			result = (Config) value;
-		}
-		return result;
-	}
-}

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/lib/haox-config/src/main/java/org/apache/haox/config/IniConfigLoader.java
----------------------------------------------------------------------
diff --git a/lib/haox-config/src/main/java/org/apache/haox/config/IniConfigLoader.java b/lib/haox-config/src/main/java/org/apache/haox/config/IniConfigLoader.java
deleted file mode 100644
index 05c163b..0000000
--- a/lib/haox-config/src/main/java/org/apache/haox/config/IniConfigLoader.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/**
- *  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.haox.config;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-
-public class IniConfigLoader extends ConfigLoader {
-    private static final String COMMENT_SYMBOL = "#";
-
-    private ConfigImpl rootConfig;
-    private ConfigImpl currentConfig;
-
-    /**
-     *  Load configs form the INI configuration format file.
-     */
-    @Override
-    protected void loadConfig(ConfigImpl config, Resource resource) throws IOException {
-        rootConfig = config;
-        currentConfig = config;
-
-        InputStream is = (InputStream) resource.getResource();
-        BufferedReader reader = new BufferedReader(new InputStreamReader(is));
-
-        String line;
-        while ((line = reader.readLine()) != null) {
-            parseLine(line);
-        }
-    }
-
-    private void parseLine(String line) {
-        line = line.trim();
-
-        if (line.startsWith(COMMENT_SYMBOL)) {
-            return;
-        }
-
-        if (line.matches("\\[.*\\]")) {
-            String subConfigName = line.replaceFirst("\\[(.*)\\]", "$1");
-            ConfigImpl subConfig = new ConfigImpl(subConfigName);
-            rootConfig.set(subConfigName, subConfig);
-            currentConfig = subConfig;
-        } else if (line.matches(".*=.*")) {
-            int i = line.indexOf('=');
-            String name = line.substring(0, i).trim();
-            String value = line.substring(i + 1).trim();
-            currentConfig.set(name, value);
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/lib/haox-config/src/main/java/org/apache/haox/config/JsonConfigLoader.java
----------------------------------------------------------------------
diff --git a/lib/haox-config/src/main/java/org/apache/haox/config/JsonConfigLoader.java b/lib/haox-config/src/main/java/org/apache/haox/config/JsonConfigLoader.java
deleted file mode 100644
index 302b626..0000000
--- a/lib/haox-config/src/main/java/org/apache/haox/config/JsonConfigLoader.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/**
- *  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.haox.config;
-
-public class JsonConfigLoader extends ConfigLoader {
-    @Override
-    protected void loadConfig(ConfigImpl config, Resource resource) {
-
-    }
-}

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/lib/haox-config/src/main/java/org/apache/haox/config/MapConfigLoader.java
----------------------------------------------------------------------
diff --git a/lib/haox-config/src/main/java/org/apache/haox/config/MapConfigLoader.java b/lib/haox-config/src/main/java/org/apache/haox/config/MapConfigLoader.java
deleted file mode 100644
index b67c2a9..0000000
--- a/lib/haox-config/src/main/java/org/apache/haox/config/MapConfigLoader.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/**
- *  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.haox.config;
-
-import java.util.Map;
-
-public class MapConfigLoader extends ConfigLoader {
-    @Override
-    protected void loadConfig(ConfigImpl config, Resource resource) {
-        Map<String, String> mapConfig = (Map<String, String>) resource.getResource();
-        String value;
-        for (String key : mapConfig.keySet()) {
-            value = mapConfig.get(key);
-            config.set(key, value);
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/lib/haox-config/src/main/java/org/apache/haox/config/PropertiesConfigLoader.java
----------------------------------------------------------------------
diff --git a/lib/haox-config/src/main/java/org/apache/haox/config/PropertiesConfigLoader.java b/lib/haox-config/src/main/java/org/apache/haox/config/PropertiesConfigLoader.java
deleted file mode 100644
index 899efd6..0000000
--- a/lib/haox-config/src/main/java/org/apache/haox/config/PropertiesConfigLoader.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/**
- *  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.haox.config;
-
-import java.util.Properties;
-
-public class PropertiesConfigLoader extends ConfigLoader {
-
-    @Override
-    protected void loadConfig(ConfigImpl config, Resource resource) throws Exception {
-        Properties propConfig = (Properties) resource.getResource();
-        loadConfig(config, propConfig);
-    }
-
-    protected void loadConfig(ConfigImpl config, Properties propConfig) {
-        Object value;
-        for (Object key : propConfig.keySet()) {
-            if (key instanceof String) {
-                value = propConfig.getProperty((String) key);
-                if (value != null && value instanceof String) {
-                    config.set((String) key, (String) value);
-                }
-            }
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/lib/haox-config/src/main/java/org/apache/haox/config/PropertiesFileConfigLoader.java
----------------------------------------------------------------------
diff --git a/lib/haox-config/src/main/java/org/apache/haox/config/PropertiesFileConfigLoader.java b/lib/haox-config/src/main/java/org/apache/haox/config/PropertiesFileConfigLoader.java
deleted file mode 100644
index 88d259a..0000000
--- a/lib/haox-config/src/main/java/org/apache/haox/config/PropertiesFileConfigLoader.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/**
- *  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.haox.config;
-
-import java.io.InputStream;
-import java.util.Properties;
-
-public class PropertiesFileConfigLoader extends PropertiesConfigLoader {
-
-    @Override
-    protected void loadConfig(ConfigImpl config, Resource resource) throws Exception {
-        Properties propConfig = new Properties();
-        propConfig.load((InputStream) resource.getResource());
-        loadConfig(config, propConfig);
-    }
-}

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/lib/haox-config/src/main/java/org/apache/haox/config/Resource.java
----------------------------------------------------------------------
diff --git a/lib/haox-config/src/main/java/org/apache/haox/config/Resource.java b/lib/haox-config/src/main/java/org/apache/haox/config/Resource.java
deleted file mode 100644
index 090c381..0000000
--- a/lib/haox-config/src/main/java/org/apache/haox/config/Resource.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/**
- *  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.haox.config;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.net.URL;
-import java.util.Map;
-import java.util.Properties;
-
-public class Resource {
-    public static enum Format {
-        XML_FILE(XmlConfigLoader.class),
-        INI_FILE(IniConfigLoader.class),
-        JSON_FILE(JsonConfigLoader.class),
-        PROPERTIES_FILE(PropertiesFileConfigLoader.class),
-        MAP(MapConfigLoader.class),
-        PROPERTIES(PropertiesConfigLoader.class);
-
-        private Class<? extends ConfigLoader> loaderClass;
-
-        private Format(Class<? extends ConfigLoader> loaderClass) {
-            this.loaderClass = loaderClass;
-        }
-
-        public Class<? extends ConfigLoader> getLoaderClass() {
-            return loaderClass;
-        }
-    }
-
-    private String name;
-    private Object resource;
-    private Format format;
-
-    public static Resource createXmlResource(File xmlFile) throws IOException {
-        return new Resource(xmlFile.getName(), xmlFile, Format.XML_FILE);
-    }
-
-    public static Resource createIniResource(File iniFile) throws IOException {
-        return new Resource(iniFile.getName(), iniFile, Format.INI_FILE);
-    }
-
-    public static Resource createJsonResource(File jsonFile) throws IOException {
-        return new Resource(jsonFile.getName(), jsonFile, Format.JSON_FILE);
-    }
-
-    public static Resource createXmlResource(URL xmlUrl) throws IOException {
-        return new Resource(xmlUrl, Format.XML_FILE);
-    }
-
-    public static Resource createIniResource(URL iniUrl) throws IOException {
-        return new Resource(iniUrl, Format.INI_FILE);
-    }
-
-    public static Resource createJsonResource(URL jsonUrl) throws IOException {
-        return new Resource(jsonUrl, Format.JSON_FILE);
-    }
-
-    public static Resource createMapResource(Map<String,String> mapConfig) {
-        return new Resource("mapConfig", mapConfig, Format.MAP);
-    }
-
-    public static Resource createPropertiesFileResource(File propFile) throws IOException {
-        return new Resource(propFile.getName(), propFile, Format.PROPERTIES_FILE);
-    }
-
-    public static Resource createPropertiesResource(Properties propertiesConfig) {
-        return new Resource("propConfig", propertiesConfig, Format.PROPERTIES);
-    }
-
-    private Resource(String name, File resourceFile, Format format) throws FileNotFoundException {
-        this(name, new FileInputStream(resourceFile), format);
-    }
-
-    private Resource(URL resourceUrl, Format format) throws IOException {
-        this(resourceUrl.toString(), resourceUrl.openStream(), format);
-    }
-
-    private Resource(String name, Object resourceStream, Format format) {
-        this.name = name;
-        this.resource = resourceStream;
-        this.format = format;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public Object getResource() {
-        return resource;
-    }
-
-    public Format getFormat() {
-        return format;
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/lib/haox-config/src/main/java/org/apache/haox/config/XmlConfigLoader.java
----------------------------------------------------------------------
diff --git a/lib/haox-config/src/main/java/org/apache/haox/config/XmlConfigLoader.java b/lib/haox-config/src/main/java/org/apache/haox/config/XmlConfigLoader.java
deleted file mode 100644
index b507363..0000000
--- a/lib/haox-config/src/main/java/org/apache/haox/config/XmlConfigLoader.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/**
- *  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.haox.config;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.w3c.dom.*;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
-
-public class XmlConfigLoader extends ConfigLoader {
-    private static final Logger logger = LoggerFactory.getLogger(Config.class);
-
-    @Override
-    protected void loadConfig(ConfigImpl config, Resource resource) throws Exception {
-        Element doc = loadResourceDocument(resource);
-        loadConfig((ConfigImpl) config, doc);
-    }
-
-    private Element loadResourceDocument(Resource resource) throws Exception {
-        DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
-
-        docBuilderFactory.setIgnoringComments(true);
-        docBuilderFactory.setNamespaceAware(true);
-        try {
-            docBuilderFactory.setXIncludeAware(true);
-        } catch (UnsupportedOperationException e) {
-            logger.error("Failed to set setXIncludeAware(true) for parser", e);
-        }
-        DocumentBuilder builder = docBuilderFactory.newDocumentBuilder();
-        InputStream is = (InputStream) resource.getResource();
-        Document doc = null;
-        try {
-            doc = builder.parse(is);
-        } finally {
-            is.close();
-        }
-
-        Element root = doc.getDocumentElement();
-        validateConfig(root);
-
-        return root;
-    }
-
-    private boolean validateConfig(Element root) {
-        boolean valid = false;
-
-        if ("config".equals(root.getTagName())) {
-            valid = true;
-        } else {
-            logger.error("bad conf element: top-level element not <configuration>");
-        }
-
-        return valid;
-    }
-
-    private void loadConfig(ConfigImpl conifg, Element element) {
-        String name;
-        ConfigObject value;
-
-        NodeList props = element.getChildNodes();
-        for (int i = 0; i < props.getLength(); i++) {
-            Node subNode = props.item(i);
-            if (!(subNode instanceof Element)) {
-                continue;
-            }
-
-            Element prop = (Element)subNode;
-            name = getElementName(prop);
-            if (name == null) {
-                continue;
-            }
-
-            value = null;
-            String tagName = prop.getTagName();
-            if ("property".equals(tagName) && prop.hasChildNodes()) {
-                value = loadProperty(prop);
-            } else if ("config".equals(tagName) && prop.hasChildNodes()) {
-                ConfigImpl cfg = new ConfigImpl(name);
-                loadConfig(cfg, prop);
-                value = new ConfigObject(cfg);
-            }
-
-            if (name != null) {
-                conifg.set(name, value);
-            }
-        }
-    }
-
-    private static ConfigObject loadProperty(Element ele) {
-        String value = null;
-        if (ele.getFirstChild() instanceof Text) {
-            value = ((Text)ele.getFirstChild()).getData();
-            return new ConfigObject(value);
-        }
-
-        ConfigObject result = null;
-        NodeList nodes = ele.getChildNodes();
-        List<String> values = new ArrayList<String>(nodes.getLength());
-        for (int i = 0; i < nodes.getLength(); i++) {
-            value = null;
-            Node valueNode = nodes.item(i);
-            if (!(valueNode instanceof Element))
-                continue;
-
-            Element valueEle = (Element)valueNode;
-            if ("value".equals(valueEle.getTagName()) && valueEle.hasChildNodes()) {
-                value = ((Text)valueEle.getFirstChild()).getData();
-            }
-
-            if (value != null) {
-                values.add(value);
-            }
-        }
-        return new ConfigObject(values);
-    }
-
-    private static String getElementName(Element ele) {
-        String name, value;
-        Node node;
-        Attr attr;
-
-        NamedNodeMap nnm = ele.getAttributes();
-        for (int i = 0; i < nnm.getLength(); ++i) {
-            node = nnm.item(i);
-            if (!(node instanceof Attr))
-                continue;
-            attr = (Attr) node;
-            name = attr.getName();
-            value = attr.getValue();
-
-            if ("name".equals(name)) {
-                return value;
-            }
-        }
-        return null;
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/lib/haox-config/src/test/java/org/apache/haox/config/ConfTest.java
----------------------------------------------------------------------
diff --git a/lib/haox-config/src/test/java/org/apache/haox/config/ConfTest.java b/lib/haox-config/src/test/java/org/apache/haox/config/ConfTest.java
deleted file mode 100644
index 592ed3d..0000000
--- a/lib/haox-config/src/test/java/org/apache/haox/config/ConfTest.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/**
- *  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.haox.config;
-
-import org.apache.haox.config.Conf;
-import org.apache.haox.config.ConfigKey;
-import org.junit.Assert;
-import org.junit.Test;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Properties;
-
-/**
- * The test is base on the Conf level.
- * We hope users use the Conf object only, and don't need to care about its internal implementation.
- */
-public class ConfTest {
-
-    @Test
-    public void testMapConfig() {
-        String strProp = "hello";
-        Integer intProp = 123456;
-        Boolean boolProp = true;
-        Map<String, String> mapConfig = new HashMap<String, String>();
-        mapConfig.put("strProp", strProp);
-        mapConfig.put("intProp", String.valueOf(intProp));
-        mapConfig.put("boolProp", String.valueOf(boolProp));
-
-        Conf conf = new Conf();
-        conf.addMapConfig(mapConfig);
-        Assert.assertEquals(conf.getString("strProp"), strProp);
-        Assert.assertEquals(conf.getInt("intProp"), intProp);
-        Assert.assertEquals(conf.getBoolean("boolProp"), boolProp);
-    }
-
-    @Test
-    public void testPropertiesConfig() {
-        String strProp = "hello";
-        Integer intProp = 123456;
-        Boolean boolProp = true;
-        Properties properties = new Properties();
-        properties.setProperty("strProp", strProp);
-        properties.setProperty("intProp", String.valueOf(intProp));
-        properties.setProperty("boolProp", String.valueOf(boolProp));
-
-        Conf conf = new Conf();
-        conf.addPropertiesConfig(properties);
-        Assert.assertEquals(conf.getString("strProp"), strProp);
-        Assert.assertEquals(conf.getInt("intProp"), intProp);
-        Assert.assertEquals(conf.getBoolean("boolProp"), boolProp);
-    }
-
-    /**
-     * Test for whether can get right value form the conf which contains many config resources.
-     */
-    @Test
-    public void testMixedConfig() {
-        String mapStrProp = "hello map";
-        Integer intProp = 123456;
-        Map<String, String> mapConfig = new HashMap<String, String>();
-        mapConfig.put("mapStrProp", mapStrProp);
-        mapConfig.put("intProp", String.valueOf(intProp));
-
-        String propertiesStrProp = "hello properties";
-        Boolean boolProp = true;
-        Properties properties = new Properties();
-        properties.setProperty("propertiesStrProp", propertiesStrProp);
-        properties.setProperty("boolProp", String.valueOf(boolProp));
-
-        Conf conf = new Conf();
-        conf.addMapConfig(mapConfig);
-        conf.addPropertiesConfig(properties);
-        Assert.assertEquals(conf.getConfig("mapConfig"), null);
-        Assert.assertEquals(conf.getString("mapStrProp"), mapStrProp);
-        Assert.assertEquals(conf.getString("propertiesStrProp"), propertiesStrProp);
-        Assert.assertEquals(conf.getInt("intProp"), intProp);
-        Assert.assertEquals(conf.getBoolean("boolProp"), boolProp);
-    }
-
-    static enum TestConfKey implements ConfigKey {
-        ADDRESS("127.0.0.1"),
-        PORT(8015),
-        ENABLE(false);
-
-        private Object defaultValue;
-
-        private TestConfKey(Object defaultValue) {
-            this.defaultValue = defaultValue;
-        }
-
-        @Override
-        public String getPropertyKey() {
-            return name().toLowerCase();
-        }
-
-        @Override
-        public Object getDefaultValue() {
-            return this.defaultValue;
-        }
-    }
-
-    @Test
-    public void testConfKey() {
-        Conf conf = new Conf();
-        Assert.assertEquals(conf.getString(TestConfKey.ADDRESS),
-                TestConfKey.ADDRESS.getDefaultValue());
-        Map<String, String> mapConfig = new HashMap<String, String>();
-        String myAddress = "www.google.com";
-        mapConfig.put(TestConfKey.ADDRESS.getPropertyKey(), myAddress);
-        conf.addMapConfig(mapConfig);
-        Assert.assertEquals(conf.getString(TestConfKey.ADDRESS), myAddress);
-        Assert.assertEquals(conf.getInt(TestConfKey.PORT),
-                TestConfKey.PORT.getDefaultValue());
-        Assert.assertEquals(conf.getBoolean(TestConfKey.ENABLE),
-                TestConfKey.ENABLE.getDefaultValue());
-    }
-}

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/lib/haox-config/src/test/java/org/apache/haox/config/ConfigImplTest.java
----------------------------------------------------------------------
diff --git a/lib/haox-config/src/test/java/org/apache/haox/config/ConfigImplTest.java b/lib/haox-config/src/test/java/org/apache/haox/config/ConfigImplTest.java
deleted file mode 100644
index fd491e2..0000000
--- a/lib/haox-config/src/test/java/org/apache/haox/config/ConfigImplTest.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/**
- *  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.haox.config;
-
-import org.junit.Assert;
-import org.junit.Test;
-
-/**
- * The test is on ConfigImpl level.
- * ConfigImpl is the internal implementation of Conf, only visual by developers.
- */
-public class ConfigImplTest {
-
-    /**
-     * Test for section config support.
-     */
-    @Test
-    public void testSectionConfig() {
-        ConfigImpl rootConfig = new ConfigImpl(null);
-        rootConfig.set("globalConfig", "true");
-
-        ConfigImpl sectionA = new ConfigImpl("libdefaults");
-        rootConfig.set("libdefaults", sectionA);
-        sectionA.set("default_realm", "EXAMPLE.COM");
-        sectionA.set("forwardable", "true");
-        sectionA.set("dns_lookup_realm", "false");
-
-        ConfigImpl sectionB = new ConfigImpl("logging");
-        rootConfig.set("logging", sectionB);
-        sectionB.set("kdc", "FILE:/var/log/krb5kdc.log");
-
-        Assert.assertEquals(rootConfig.getString("globalConfig"), "true");
-        Assert.assertEquals(rootConfig.getString("default_realm"), null);
-
-        Config subA = rootConfig.getConfig("libdefaults");
-        Assert.assertEquals(subA.getString("default_realm"), "EXAMPLE.COM");
-        Assert.assertEquals(subA.getString("globalConfig"), null);
-        Assert.assertEquals(subA.getString("kdc"), null);
-
-        Config subB = rootConfig.getConfig("logging");
-        Assert.assertEquals(subB.getString("kdc"), "FILE:/var/log/krb5kdc.log");
-        Assert.assertEquals(subB.getString("globalConfig"), null);
-        Assert.assertEquals(subB.getBoolean("forwardable"), null);
-    }
-}