diff options
| author | Robert Greig <rgreig@apache.org> | 2007-04-19 16:24:30 +0000 |
|---|---|---|
| committer | Robert Greig <rgreig@apache.org> | 2007-04-19 16:24:30 +0000 |
| commit | 1fa77f853198411390da6f81447f34534eaaf24f (patch) | |
| tree | d4d024487965446858bf1742775f17215b5fa5f8 /java/common/src | |
| parent | 40a5f4759bd24950326550b4d862c832685cb506 (diff) | |
| download | qpid-python-1fa77f853198411390da6f81447f34534eaaf24f.tar.gz | |
Merged revisions 1-447993,447995-448007,448009-448141,448143-448157,448161-448194,448196-448210,448212-448218,448220-448223,448225-448233,448235,448237-448241,448243-448596,448598-448623,448625-448850,448852-448880,448882-448982,448984-449635,449637-449639,449641-449642,449644-449645,449647-449674,449676-449719,449721-449749,449751-449762,449764-449933,449935-449941,449943-450383,450385,450387-450400,450402-450433,450435-450503,450505-450555,450557-450860,450862-451024,451026-451149,451151-451316,451318-451931,451933-452139,452141-452162,452164-452320,452322,452324-452325,452327-452333,452335-452429,452431-452528,452530-452545,452547-453192,453194-453195,453197-453536,453538,453540-453656,453658-454676,454678-454735,454737,454739-454781,454783-462728,462730-462819,462821-462833,462835-462839,462841-463071,463073-463178,463180-463308,463310-463362,463364-463375,463377-463396,463398-463402,463404-463409,463411-463661,463663-463670,463672-463673,463675-464493,464495-464502,464504-464576,464578-464613,464615-464628,464630,464632-464866,464868-464899,464901-464942,464944-464949,464951-465004,465006-465016,465018-465053,465055-465165,465167-465321,465323-465406,465408-465427,465429-465431,465433-465548,465550-466044,466047-466075,466077,466079-466081,466083-466099,466101-466112,466114-466126,466128-466240,466242-466971,466973-466978,466980-467309,467311-467312,467316-467328,467330-467485,467487-467588,467590-467604,467606-467699,467701-467706,467708-467749,467751-468069,468071-468537,468539-469241,469244-469246,469248-469318,469320-469421,469423,469425-469429,469431-469435,469437-469462,469464-469469,469472-469477,469479-469490,469492-469503,469505-469529,469531-469598,469600-469624,469626-469737,469739-469752,469754-469806,469808-469928,469930-469953,469955-470011,470013-470109,470111-470335,470338-470339,470341-470379,470381,470383-470399,470401-470446,470448-470741,470743-470758,470760-470809,470811-470817,470819-470993,470995-471001,471003-471788,471790-471792,471794-472028,472030-472032,472034-472036,472038,472040,472043,472045-472059,472061,472063,472065-472066,472068,472070-472072,472074-472080,472082,472084-472092,472094-472107,472109-472123,472125-472158,472160-472165,472167-472172,472174-472457,472459-472460,472462-472464,472466-472470,472472-472483,472486-472491,472493-472494,472496-472497,472499,472501-472503,472505-472512,472514-472544,472546-472556,472558-472560,472562-472572,472574-472587,472589-472591,472593-472605,472607,472609-472731,472733-472786,472788-472843,472845-472849,472851-472859,472861-472878,472880-472903,472905,472907-472988,472990-472991,472993-473071,473073-473086,473088-473090,473093,473095-473096,473098-473106,473108-473110,473112-473185,473187-473260,473262,473268-473270,473275-473279,473281,473284-473287,473289-473295,473297-473306,473308-473330,473332-473335,473337,473339-473344,473346-473351,473353-473355,473357-473358,473361-473471,473473-473497,473499-473535,473537-473567,473569-473888,473890-474451,474454-474492,474494-474563,474565-474843,474845-474865,474867-474932,474934-475035,475037-475144,475146-475180,475182-475265,475267-475285,475287,475289-475293,475295-475296,475298-475302,475304-475631,475633-475649,475651-475748,475750-475752,475754-476107,476109-476302,476304-476413,476415-476430,476432-476700,476702-476868,476870-477147,477149-477213,477215-477263,477265-477340,477342-477635,477637-477789,477791-477825,477827-477841,477843,477846-477852,477854,477856,477858-477865,477867-477894,477896-478022,478024-478182,478184-478211,478213-478233,478235-478236,478238-478241,478243-478252,478254-478259,478261-478263,478265,478267-478269,478271-478286,478288-478342,478344-478379,478381-478412,478414-478443,478445-478636,478639-478658,478660-478821,478823-478853,478855-478922,478924-478962,478965-478974,478976-479029,479031-479049,479051-479210,479212-479214,479216-479407,479409-479415,479417-479425,479427-479559,479561-479639,479641-479676,479678-479685,479687-480030,480033-480086,480091-480093,480095-480118,480120-480139,480141,480143-480148,480150-480156,480158-480163,480165-480177,480179-480189,480191-480193,480195-480198,480200-480220,480222-480282,480284-480292,480294-480308,480310-480317,480320-480422,480424,480426-480581,480583-480656,480658-480692,480695-480702,480704,480706-480710,480712-480910,480913-480933,480935-480945,480947-480972,480974-480993,480995-481034,481036-481158,481161-481174,481176-481220,481222-481234,481236-481260,481263-481264,481266-481296,481298-481304,481306-481311,481313-481332,481334,481336-481380,481382-481441,481443-482144,482146-482180,482182-482193,482195-482232,482234-482236,482239,482241-482242,482244-482247,482250-482251,482253,482256-482261,482264-482288,482290-482364,482366,482368,482370-482554,482556,482558-482569,482572-482636,482638,482640-482696,482698-482722,482724-482732,482734-482771,482774-482957,482959-483045,483047-483105,483108,483110-483115,483117,483119-483127,483130-483134,483136-483148,483150-483158,483160-483164,483166-483178,483180-483391,483393-483400,483402-483403,483405-483418,483420-483421,483425-483436,483438-483470,483472-483502,483504-483558,483560-483599,483601-483637,483639-483644,483646-483659,483661-483670,483672-483878,483880-483910,483912-483915,483917-483940,483942,483944-483968,483970-483972,483974-483976,483978,483980-484612,484614-484657,484659-484693,484695-484718,484720-484842,484844-484847,484849-484986,484988-485019,485021-485489,485491-485544,485546-485591,485593,485595-485697,485699-485729,485731-485734,485736-485779,485781-485787,485789-485851,485853,485855-486007,486009,486011-486020,486022-486083,486085-486097,486099-486117,486120-486131,486133-486148,486150-486161,486163-486164,486166-486197,486199-486205,486208-486247,486249-486253,486256-486427,486429-486431,486433-486554,486556-486573,486575-486593,486595,486597-486609,486611-486619,486622,486625,486627-486641,486643-486645,486649-486687,486689-486721,486723-486730,486732-486746,486748-486759,486761,486763-486777,486779-486782,486784-486788,486790,486792,486794-486796,486798-487175,487178,487180-487213,487215,487217-487267,487269-487284,487286-487298,487300-487358,487360-487367,487369-487382,487384-487434,487436-487480,487482-487547,487549-487561,487563-487565,487567-487578,487580-487615,487617-487622,487624,487626,487628,487630-487635,487637-487703,487705-487777,487780-487781,487783-487800,487802-487803,487805-487820,487822-487848,487850-487902,487904-488103,488105-488133,488135-488158,488160-488163,488165-488187,488189-488216,488218-488248,488250-488278,488280,488282-488303,488305-488313,488315-488342,488344-488351,488353-488376,488378-488449,488451-488593,488595,488597-488623,488625-488700,488702-488704,488706-488710,488714,488716-488725,488727-488744,488746-488770,488772-488798,488800,488802-488807,488809,488811-488829,488831-488843,488845-488851,488853-489069,489071-489077,489079-489081,489084-489102,489104-489105,489107-489109,489111-489112,489114-489139,489141-489178,489181-489203,489205-489211,489213,489216-489329,489332-489402,489404-489417,489419-489421,489423-489643,489645-489690,489692-489703,489705-489714,489716-489747,489749-489753,489755-489803,489805-489904,489906-490372,490374-490504,490506-490604,490606-490707,490710-490733,490735-490871,490873-490984,490986-491028,491030,491032-491071,491073-491119,491121-491576,491578-491672,491674-491800,491802-491838,491840-491878,491880-492183,492185-492279,492281-492317,492319-492513,492515-492584,492586-492587,492589-492601,492603-492635,492637-492640,492642-492717,492719-492723,492725-492729,492731-492755,492757-492901,492903-492955,492957-492962,492964-492997,492999-493002,493004-493041,493043-493059,493062-493063,493065-493086,493088-493125,493127-493139,493141-493150,493152-493871,493873-494017,494019-494030,494032-494041,494043-494091,494093-494120,494122-494354,494356-494436,494438-494539,494541-494552,494554-494586,494588-494649,494651,494653-494654,494656-494657,494659-494764,494766-494768,494770-494796,494798-494799,494802,494804-494860,494862-494903,494905-494906,494908-495019,495021-495160,495162-495168,495171-495188,495190-495229,495231-495254,495256-495303,495305-495313,495315-495336,495338-495372,495374-495379,495381-495454,495457-495459,495462-495516,495518-495524,495526-495531,495533-495548,495551-495553,495555,495557-495558,495560,495562-495573,495575-495583,495585-495594,495596-495628,495630-495638,495640-495651,495653-495660,495662-495753,495755-496259,496261-496262,496264-496269,496271-496275,496277-496301,496303-496316,496318-496383,496385-496413,496415-496495,496497-496625,496627-496636,496638-496640,496642-496647,496650-496657,496659-496660,496663-496664,496666-496677,496679-496681,496683-496730,496732-496750,496752,496754-496784,496786-496832,496834-496840,496842-496990,496992-496995,496997-497340,497343-497351,497353-497403,497405-497424,497426-497438,497440-497481,497483-497497,497499-497765,497767-497769,497771-497775,497777-497778,497780,497782-497783,497785,497787-497812,497814-497871,497873-497877,497879-498573,498575-498588,498590,498592,498594-498636,498638-498669,498671-498686,498688-498689,498691-498719,498721-498964,498966-498969,498971-498973,498975-498982,498985-499035,499037-499040,499042,499044-499048,499050-499082,499084-499086,499088-499164,499167-499169,499171-499355,499357-499370,499372-499373,499375-499391,499393,499395-499425,499428,499430-499445,499447-499455,499457-499460,499462-499465,499467,499469-499489,499491-499492,499494-499531,499533-499562,499566-499627,499629-499715,499717-499732,499734-499755,499758-499763,499765-499780,499782-499795,499797-499802,499804-499844,499846,499848-499850,499852-499863,499865-499873,499875-499974,499976-499978,499980-500263,500265-500283,500285-500309,500311-501000,501002,501012-501057,501059-501095,501097-501390,501392-501410,501413-501447,501449-501454,501456,501458-501464,501466-501471,501473-501803,501805-501913,501915-501916,501918-501919,501921-501944,501946-502171,502173-502177,502181,502183-502247,502250-502252,502254-502260,502262-502267,502270,502272,502274-502575,502577-502609,502611-502619,502621-502626,502628-502654,502656-503592,503594-503603,503605-503608,503610-503636,503638-503645,503647-503705,503707-503789,503791-504024,504026-504111,504113-504506,504508-504735,504737-504863,504865-504867,504869-504914,504916-505241,505243-505254,505257-505267,505269-505354,505356-505891,505893-505971,505973-506400,506402-506404,506407-506438,506440-506516,506518-506541,506543-506966,506968-506971,506973-507095,507097-507108,507111-507454,507456,507459-507471,507473-507556,507558,507560-507581,507585-507594,507597,507599-507608,507610-507728,507730-507893,507895-507937,507940-508234,508236-508350,508352-508365,508367-508380,508383,508386-508415,508417-508648,508650-508941,508943-509146,509148-509171,509173-509175,509179-509201,509203-509207,509209-509215,509217-509222,509224-509477,509480-509627,509629-509634,509636-509641,509643-509736,509738-509931,509933-510059,510061-510075,510077-510158,510161-510896,510898-510938,510940-511388,511390-511922,511924-512287,512289-512698,512702-512813,512815-512817,512819-513359,513361-513370,513372-514702,514704-514886,514888-514902,514904-515126,515129-515141,515143-515516,515518-515534,515536-515538,515540-515648,515650-515651,515653-516070,516072-516411,516413-516448,516450,516452-517637,517639-517647,517649-517659,517661-517663,517665-517677,517679-517682,517684-517744,517746-518085,518087-518175,518177-518558,518560-518568,518571-518666,518668,518670-518699,518701-518987,518990-518992,518994-519908,519910-519932,519934-520414,520416-520842,520844-520937,520939-521362,521364-521792,521794-522462,522464-522527,522529-522534,522536-522566,522568-522993,522995-523244,523246-525530,525532,525534,525537-526149,526151-526682,526686-526713,526715-530399 via svnmerge from
https://svn.apache.org/repos/asf/incubator/qpid/branches/M2
........
r521682 | bhupendrab | 2007-03-23 11:50:55 +0000 (Fri, 23 Mar 2007) | 2 lines
QPID-418 (merged from trunk)
svn merge -r521336:521345 https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/java .
........
r521705 | rgreig | 2007-03-23 12:44:14 +0000 (Fri, 23 Mar 2007) | 1 line
Updates to performance tests.
........
r521710 | ritchiem | 2007-03-23 12:59:18 +0000 (Fri, 23 Mar 2007) | 2 lines
QPID-419 Access Control QPID-423 Authentication per virtualhost
Improved error handling when hostconfig is not specifed. Was NPE-ing
........
r521715 | ritchiem | 2007-03-23 13:10:33 +0000 (Fri, 23 Mar 2007) | 2 lines
QPID-423 Authentication per virtualhost
Improved error handling when hostconfig is not specifed. Was NPE-ing
........
r521782 | bhupendrab | 2007-03-23 16:02:51 +0000 (Fri, 23 Mar 2007) | 1 line
QPID-420 (merged from trunk) And r518998:518999 and r520846:520850
........
r522959 | ritchiem | 2007-03-27 16:39:51 +0100 (Tue, 27 Mar 2007) | 2 lines
Updated assembly/bin.xml to include transient_config.xml persistent_config.xml
........
r522961 | ritchiem | 2007-03-27 16:42:40 +0100 (Tue, 27 Mar 2007) | 1 line
forgot to rename files after they had been copied
........
r522967 | ritchiem | 2007-03-27 16:56:03 +0100 (Tue, 27 Mar 2007) | 1 line
correctly renamed transient and persistent config files
........
r522977 | ritchiem | 2007-03-27 17:06:15 +0100 (Tue, 27 Mar 2007) | 1 line
updated config files
........
r522981 | ritchiem | 2007-03-27 17:10:45 +0100 (Tue, 27 Mar 2007) | 1 line
Added echo of progress and reduced timeout
........
r522989 | ritchiem | 2007-03-27 17:33:04 +0100 (Tue, 27 Mar 2007) | 1 line
fixed error where script wouldn't pickup running pids
........
r522990 | ritchiem | 2007-03-27 17:36:34 +0100 (Tue, 27 Mar 2007) | 1 line
Added additional logging and comments
........
r522991 | ritchiem | 2007-03-27 17:37:17 +0100 (Tue, 27 Mar 2007) | 1 line
Added additional comments
........
r523747 | rajith | 2007-03-29 16:32:56 +0100 (Thu, 29 Mar 2007) | 1 line
Fix for setting the message id
........
r524050 | rgreig | 2007-03-30 12:51:09 +0100 (Fri, 30 Mar 2007) | 1 line
Removed excess logging to optimize performance.
........
r524739 | ritchiem | 2007-04-02 08:29:06 +0100 (Mon, 02 Apr 2007) | 1 line
Added BDB Test scripts and updated pom to contain same tests as were used in perftesting
........
r524740 | ritchiem | 2007-04-02 08:47:29 +0100 (Mon, 02 Apr 2007) | 1 line
Fixed error with passwordfile parameter
........
r524743 | ritchiem | 2007-04-02 09:07:55 +0100 (Mon, 02 Apr 2007) | 1 line
Added CTQ tests
........
r524763 | ritchiem | 2007-04-02 11:50:06 +0100 (Mon, 02 Apr 2007) | 1 line
Added verify password method to PrincipalDatabase
........
r524765 | ritchiem | 2007-04-02 11:55:12 +0100 (Mon, 02 Apr 2007) | 1 line
Moved broker details to a separate variable.
........
r524767 | ritchiem | 2007-04-02 12:17:54 +0100 (Mon, 02 Apr 2007) | 1 line
ignored idea files
........
r525487 | ritchiem | 2007-04-04 11:42:59 +0100 (Wed, 04 Apr 2007) | 3 lines
Added default timeout to AMQConnection.close();
........
r525553 | ritchiem | 2007-04-04 17:34:35 +0100 (Wed, 04 Apr 2007) | 1 line
Updated case of properties
........
r525766 | ritchiem | 2007-04-05 09:51:55 +0100 (Thu, 05 Apr 2007) | 1 line
QPID-308 Added test case to demonstrate heap exhaustion of broker. Can't be run InVM as it kills the broker.
........
r525777 | ritchiem | 2007-04-05 10:29:22 +0100 (Thu, 05 Apr 2007) | 20 lines
QPID-414 : Addition of CRAM-MD5-HASHED authentication. Same as CRAM-MD5 but the client uses the hash of the password rather than the original password. This allows the broker to store the hash not the original password.
Added initial tool for generation passwords.
Broker:
Renamed MD5PasswordFilePrincipalDatabase.java to Base64MD5PasswordFilePrincipalDatabase.java as that more accurately represents the file contents.
PlainPasswordVhostFilePrincipalDatabase.java - import tidy up
PrincipalDatabaseAuthenticationManager.java - Changed to add our SASL providers at the start of the SASL list.
CRAMMD5Hashed* - New SASL mechanism that delegates to CRAM-MD5 but understands that the password to use is the hash of the users password.
JCAProvider - Removed the addProvider() line as this is done after the construction in PrincipalDatabaseAuthenticationManager.
PlainSaslServerFactory - White Space
Passwd.java - New util stub for managing passwords ala htpasswd.
Client
Added CRAM-MD5-HASHED to CallbackHandlerRegistry
Added ClientFactory for CRAMMD5Hashed that returns the first CRAM-MD5 SaslClient.
DynamicSaslRegistrar.java - Tidied imports added new JCAProviders at the start of the Sasl lists.
DynamicSaslRegistrar.properties - Added CRAM-MD5-HASHED handler.
JCAProvider.java - as with broker stopped JCAProvider.java adding itself as the DynamicSaslRegistrar.java does this on the client.
UsernameHashedPasswordCallbackHandler.java - New callback handler that is used by CRAM-MD5-HASHED. It hashes the client's password and uses that in the CRAM-MD5 algorithm.
........
r525785 | ritchiem | 2007-04-05 10:48:43 +0100 (Thu, 05 Apr 2007) | 1 line
Old ant folder
........
r525786 | ritchiem | 2007-04-05 10:57:33 +0100 (Thu, 05 Apr 2007) | 1 line
QPID-440 - added comments in the code relating to this bug.
........
r525787 | ritchiem | 2007-04-05 10:58:20 +0100 (Thu, 05 Apr 2007) | 2 lines
QPID-308 removed closeConnection() that calls close(-1) and may result in a client hang. better to call closeConnection(long timeout) so forced this my removing closeConnection();
........
r525788 | ritchiem | 2007-04-05 11:00:56 +0100 (Thu, 05 Apr 2007) | 1 line
QPID-414 update to config.xml to give usage example.
........
r525804 | ritchiem | 2007-04-05 13:19:31 +0100 (Thu, 05 Apr 2007) | 1 line
QPID-308 Updated HeapExhaustion to be able to be run from command line
........
r525817 | ritchiem | 2007-04-05 14:14:50 +0100 (Thu, 05 Apr 2007) | 1 line
Update to qpid stop scripts to properly check for existing broker instances and promptly stop them.
........
r525829 | ritchiem | 2007-04-05 14:50:56 +0100 (Thu, 05 Apr 2007) | 1 line
Updated scripts to work correctly under solaris and bash 2.0
........
r525862 | rgodfrey | 2007-04-05 17:37:40 +0100 (Thu, 05 Apr 2007) | 1 line
QPID-443 : Fix to transactionality of message publishing
........
r525867 | ritchiem | 2007-04-05 17:47:59 +0100 (Thu, 05 Apr 2007) | 2 lines
QPID-416 Provided simple update to Access Control via FileAccessManager to allow access rights for a virtualhost to be stored in a separate file.
Updated PrincipalDatabaseAccessManager to use the default AccessManager if the specified PrincipalDatabase is not an AccessManager.
........
r526091 | ritchiem | 2007-04-06 09:21:01 +0100 (Fri, 06 Apr 2007) | 5 lines
QPID-416 Update to Access control to allow simply read/write permissions per Virtual host.
access - updated file to have examples of access control.
AccessManager - Deprecated old isAuthorised method
Implemented new isAuthorized method on all AccessManagers
........
r526113 | ritchiem | 2007-04-06 11:28:43 +0100 (Fri, 06 Apr 2007) | 1 line
Updated case of properties to be true cammelCase and updated tests to run for a duration of 10 minutes rather than set message count. To provide better results for graphing.
........
r526117 | ritchiem | 2007-04-06 11:42:11 +0100 (Fri, 06 Apr 2007) | 9 lines
QPID-416 Update to Access control to allow simply read/write permissions per Virtual host.
access - updated file to have examples of access control.
Changed AMQProtocolSession to record an authorized Principal not just a String.
- Required
Added AccessRights files needed for VirtualHostAccess control.
Updated ConnectionOpenMethodHandler to allow Principals with any access to connect not just read.
UsernamePrincipal - Added a toString
........
r526118 | rgodfrey | 2007-04-06 11:55:17 +0100 (Fri, 06 Apr 2007) | 1 line
........
r526122 | ritchiem | 2007-04-06 12:26:06 +0100 (Fri, 06 Apr 2007) | 1 line
removed pauses between batches
........
r526154 | rgodfrey | 2007-04-06 14:24:46 +0100 (Fri, 06 Apr 2007) | 1 line
QPID-443 : Fix to transactionality of message publishing
........
r526157 | bhupendrab | 2007-04-06 14:32:56 +0100 (Fri, 06 Apr 2007) | 1 line
QPID-444 : Enabling the Qpid to use SASL. jmxmp can be plugged into for SASL. Can be configured to use security.
........
r526158 | ritchiem | 2007-04-06 14:34:52 +0100 (Fri, 06 Apr 2007) | 1 line
Duplicate of BDB-Qpid.sh
........
r526159 | bhupendrab | 2007-04-06 14:37:47 +0100 (Fri, 06 Apr 2007) | 1 line
QPID-444 : adding jmxport, which is used when out of the box JMXAgent is not used
........
r526166 | ritchiem | 2007-04-06 14:51:41 +0100 (Fri, 06 Apr 2007) | 1 line
QPID-414 - Initial script to run the passwd gen.
........
r526187 | bhupendrab | 2007-04-06 15:53:36 +0100 (Fri, 06 Apr 2007) | 2 lines
QPID-444 : Enabling the SASL support. jmxmp can be plugged into for SASL.
........
r526194 | rgreig | 2007-04-06 16:21:19 +0100 (Fri, 06 Apr 2007) | 1 line
Added some ramping up performance tests.
........
r526195 | marnie | 2007-04-06 16:21:33 +0100 (Fri, 06 Apr 2007) | 1 line
QPID-381 Amended session constructor to be non-transactional and use client ack mode.
........
r526198 | rgreig | 2007-04-06 16:26:02 +0100 (Fri, 06 Apr 2007) | 1 line
Fixed message sizes.
........
r526199 | rgreig | 2007-04-06 16:29:06 +0100 (Fri, 06 Apr 2007) | 1 line
Fixed commit batch size.
........
r526666 | ritchiem | 2007-04-09 08:47:14 +0100 (Mon, 09 Apr 2007) | 1 line
Updated so the FileAppender includes time stamps by default.. ConversionPattern made the same as STDOUT and RollingFileAppender
........
r526691 | ritchiem | 2007-04-09 10:39:47 +0100 (Mon, 09 Apr 2007) | 1 line
Added $@ to allow pass through of command line args to each sub process
........
r526692 | bhupendrab | 2007-04-09 10:45:06 +0100 (Mon, 09 Apr 2007) | 4 lines
QPID-444 : added log statements and some config parameters.
Removed the autoDelete parameter from createNewQueue method used from Management Console.
........
r526694 | bhupendrab | 2007-04-09 10:51:46 +0100 (Mon, 09 Apr 2007) | 1 line
........
r526709 | bhupendrab | 2007-04-09 12:02:08 +0100 (Mon, 09 Apr 2007) | 2 lines
QPID-444 : updated the management console dependency configuration for sasl support
........
r526776 | rgreig | 2007-04-09 16:26:04 +0100 (Mon, 09 Apr 2007) | 1 line
Stopped throwing away exception causes.
........
r526803 | rgreig | 2007-04-09 17:09:24 +0100 (Mon, 09 Apr 2007) | 1 line
Got rid of some uses of System.out instead of log4j logging.
........
r526807 | rgreig | 2007-04-09 17:12:49 +0100 (Mon, 09 Apr 2007) | 1 line
Got rid of some uses of System.out instead of log4j logging.
........
r527049 | ritchiem | 2007-04-10 08:58:26 +0100 (Tue, 10 Apr 2007) | 1 line
Moved bdb tests to bdbstore package
........
r527050 | ritchiem | 2007-04-10 09:00:42 +0100 (Tue, 10 Apr 2007) | 1 line
QueueDeclareHandler.java - Added more detail to error messages. Such as returning the queue name that was attempted to be declared but failed.
........
r527053 | ritchiem | 2007-04-10 09:03:15 +0100 (Tue, 10 Apr 2007) | 1 line
Added a test to check that Persistent Queues do actually persist.
........
r527182 | ritchiem | 2007-04-10 17:29:47 +0100 (Tue, 10 Apr 2007) | 1 line
QPID-446 Initial MBean framework.
........
r527487 | ritchiem | 2007-04-11 14:31:18 +0100 (Wed, 11 Apr 2007) | 5 lines
QPID-446 AMQUserManagementMBean Initial implementation of user management in authentication file.
UserManagement - Added annotations for MBeanOperations
PrincipalDatabase - Added new methods to update,create,delete Principal.
- Implemented method on all PrincipalDatabase implementations, most return false to say not complete except
Base64MD5PasswordFilePrincipalDatabase - which now stores in memory the password file and flushes any changes to disk.
........
r527493 | ritchiem | 2007-04-11 14:50:40 +0100 (Wed, 11 Apr 2007) | 1 line
QPID-446 Missed the commit of JMXManagedObjectRegistry change on verifyPassword char[] to String
........
r527499 | bhupendrab | 2007-04-11 15:16:02 +0100 (Wed, 11 Apr 2007) | 1 line
QPID-444 : added CRAM-MD5-HASHED mechanism for sasl
........
r527509 | bhupendrab | 2007-04-11 15:47:22 +0100 (Wed, 11 Apr 2007) | 1 line
........
r527518 | ritchiem | 2007-04-11 16:21:37 +0100 (Wed, 11 Apr 2007) | 14 lines
QPID-446
JMXManagedObjectRegistry - Split instantiation from starting up. To all the setting of the Access file when loaded later in the startup sequence.
ManagedObjectRegistry - Added Start method
MBeanInvocationHandlerImpl - Updated to allow the setting of the access properties object from the AMQUserManagementMBean
NoopManagedObjectRegistry - implemented no-op start
ConfigurationFileApplicationRegistry - Adjusted to split creation of ManagedObjectRegistry from starting server to allow the setting of access rights.
AMQUserManagementMBean - Implemented reading of access rights file.
Base64MD5PasswordFilePrincipalDatabase - added comment for future Management.
PrincipalDatabaseManager - added initialiseManagement method
ConfigurationFilePrincipalDatabaseManager - implemented general Management initialisation.
PropertiesPrincipalDatabaseManager - no-op implementation
........
r527537 | ritchiem | 2007-04-11 16:47:30 +0100 (Wed, 11 Apr 2007) | 2 lines
QPID-446 Update to contain jmx config settings.
........
r527556 | bhupendrab | 2007-04-11 17:07:58 +0100 (Wed, 11 Apr 2007) | 1 line
synchronized with hash mechanism used in Broker
........
r527557 | ritchiem | 2007-04-11 17:08:54 +0100 (Wed, 11 Apr 2007) | 1 line
Fixed Bug in convertPassword where data wasn't correctly updated PropertiesPrincipalDatabase,
........
r527558 | ritchiem | 2007-04-11 17:09:54 +0100 (Wed, 11 Apr 2007) | 1 line
QpiQPID-446 Update to ensure qpid.password file is correctly written in savePasswordFile
........
r527803 | ritchiem | 2007-04-12 08:16:54 +0100 (Thu, 12 Apr 2007) | 5 lines
QPID-446 Update to write accessRights file and correctly write Base64 MD5 Hashed password to password file.
MBeanInvocationHandlerImpl - made statics ADMIN,READONLY,READWRITE public so they can be used in writing the access file.
AMQUserManagementMBean - Update to write the access File.
PrincipalDatabase - create getUser(username) to retrieve a Principal from the database this is then implemented in all PDs. Used to check for existence of a user.
........
r527843 | ritchiem | 2007-04-12 09:52:19 +0100 (Thu, 12 Apr 2007) | 10 lines
QPID-446 Update to send userList to JMX Management console.
Currently niave implementation just sending ALL users in one go. If a LDAPPrincipalDatabase was created this could be quite a lot of data a) to send but b) to create in broker Heap.
PrincipalDatabase - javadoc'd and getUsers method,
-changed verifyPassword method to take String for username rather than Principal only the Managment Console uses this method and it the MC should be changed to use the Broker SASL modules directly rather than having very similar ones of its own.
- Removed AccountNotFound exception from createPrincipal as it made no sence
No-op implementation in PlainPasswordFilePrincipalDatabase and PropertiesPrincipalDatabase
Base64MD5PasswordFilePrincipalDatabase changed local User class to implement Principal so current Map can be returned via getUsers
- Added locking to ensure integrity of files in the face of multiple edits.
........
r527848 | ritchiem | 2007-04-12 10:11:19 +0100 (Thu, 12 Apr 2007) | 1 line
QPID-446 Removed hashing of presented password in Base64MD5PasswordFilePrincipalDatabase.
........
r527876 | rgodfrey | 2007-04-12 11:31:51 +0100 (Thu, 12 Apr 2007) | 3 lines
QPID-451 Throw InvalidDestinationException on attempt to publish to a Queue which does not exist
Changed QueueSenderAdapter to check if the routing key is bound to a queue on the given exchange.
The checking can be turned off by setting the system property org.apache.qpid.client.verifyQueueBindingBeforePublish to anything but true
........
r527941 | bhupendrab | 2007-04-12 14:49:10 +0100 (Thu, 12 Apr 2007) | 1 line
not needed for management console
........
r527959 | bhupendrab | 2007-04-12 15:40:36 +0100 (Thu, 12 Apr 2007) | 1 line
refining the mbean operations
........
r527972 | ritchiem | 2007-04-12 16:11:16 +0100 (Thu, 12 Apr 2007) | 3 lines
QPID-446
Updated sample configs to contain jmx security options.
........
r528003 | marnie | 2007-04-12 17:15:48 +0100 (Thu, 12 Apr 2007) | 1 line
QPID-352 Changes
........
r528005 | marnie | 2007-04-12 17:16:34 +0100 (Thu, 12 Apr 2007) | 1 line
QPID-352 Changes
........
r528424 | rgreig | 2007-04-13 11:17:12 +0100 (Fri, 13 Apr 2007) | 1 line
Created new ping client that sends messages only. Usefull for examaning known queue states in mgmnt console.
........
r529233 | bhupendrab | 2007-04-16 14:25:58 +0100 (Mon, 16 Apr 2007) | 1 line
added parameter for SASL
........
r529246 | bhupendrab | 2007-04-16 14:48:31 +0100 (Mon, 16 Apr 2007) | 1 line
removed default username as guest. Added hashing for new user password field.
........
r529297 | rgodfrey | 2007-04-16 16:53:45 +0100 (Mon, 16 Apr 2007) | 1 line
QPID-453 : AMQShortString should implement Comparable
........
r529635 | bhupendrab | 2007-04-17 16:07:06 +0100 (Tue, 17 Apr 2007) | 1 line
QPID-422 : Combined all user configured notifications on one view.
........
r529659 | ritchiem | 2007-04-17 17:08:00 +0100 (Tue, 17 Apr 2007) | 7 lines
QPID-454 Message 'taken' notion is per message. But should be per message per queue
AMQChannel - pass queue in on all take/release/getSubscriptionDelievered calls
BasicRejectMethodHandler - pass queue in on getSubscriptionDelievered calls
AMQMessage - Changes to require AMQQueue on all take/release/getSubscriptionDelievered calls
ConcurrentSelectorDeliveryManager - pass queue in on take/release/getSubscriptionDelievered calls
SubscriptionImpl - - pass queue in on release calls
........
r529666 | ritchiem | 2007-04-17 17:19:59 +0100 (Tue, 17 Apr 2007) | 11 lines
QPID-455 Prefetched messages can cause problems with client tools.
AMQSession - suspend channel at startup until start() and recieve/setMessageListener are called.
BasicMessageConsumer - mainly style sheet changes
MessageListenerMultiConsumerTest - removed one test case as we cannot ensure round-robin effect at start up .. added test case for only c2 consuming when c1 does nothing.
MessageListenerTest - added new test that can demonstrate a further bug of message 'loss' when a receive is called only once before a message listener is set. Prefetched message end up on _SynchronousQueue regression of QPID-293 as of r501004.
MessageRequeueTest - Was missing a conn.start()
DurableSubscriptionTest - Removed blocking receives() so we don't block on failure
CommitRollbackTest - Text message was wrong on testGetThenDisconnect tests so adjusted
........
r529669 | bhupendrab | 2007-04-17 17:43:53 +0100 (Tue, 17 Apr 2007) | 1 line
QPID-417
........
r530034 | bhupendrab | 2007-04-18 15:32:02 +0100 (Wed, 18 Apr 2007) | 2 lines
AMQUserManagementMBean.java - calling relaod within viewUsers method.
Creating user list on management console instead of typing the user name.
........
r530037 | ritchiem | 2007-04-18 15:37:30 +0100 (Wed, 18 Apr 2007) | 1 line
QPID-454 Message 'taken' notion is per message. REVERTED as it just wasn't right.. needs to be refactored.
........
r530041 | ritchiem | 2007-04-18 15:40:47 +0100 (Wed, 18 Apr 2007) | 1 line
QPID-457 Fixed rollback inTran problem with test case
........
r530042 | ritchiem | 2007-04-18 15:42:16 +0100 (Wed, 18 Apr 2007) | 1 line
QPID-457 Fixed rollback inTran problem with test case Missed the actual file fix.
........
r530043 | ritchiem | 2007-04-18 15:46:36 +0100 (Wed, 18 Apr 2007) | 1 line
QPID-458 Fix to make the CSDM check if a message is taken when deliverying to browser. Removing the message from the queue and continuing if that is the caee.
........
r530044 | ritchiem | 2007-04-18 15:54:36 +0100 (Wed, 18 Apr 2007) | 1 line
Removed e.printstacktrace that sneaked in with the other code style changes.
........
r530047 | ritchiem | 2007-04-18 16:09:28 +0100 (Wed, 18 Apr 2007) | 1 line
Fix for intermittent CRT expected <1> but was <2> errors
........
r530048 | ritchiem | 2007-04-18 16:10:24 +0100 (Wed, 18 Apr 2007) | 3 lines
ResetMessageListenerTest was using the wrong queue for running tests. This was causing problems during testing.
Changed queue to use ResetMessageListenerTest queue
........
r530049 | ritchiem | 2007-04-18 16:11:22 +0100 (Wed, 18 Apr 2007) | 2 lines
QPID-455 Prefetched messages can cause problems with client tools.
Removed the changes as this was causing problems. Guarded with a check for now but solution is till not correct.
........
r530052 | ritchiem | 2007-04-18 16:12:45 +0100 (Wed, 18 Apr 2007) | 1 line
QPID-455 - Guarded test with a check until a full solution is found
........
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@530474 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/common/src')
13 files changed, 301 insertions, 315 deletions
diff --git a/java/common/src/main/java/org/apache/qpid/AMQException.java b/java/common/src/main/java/org/apache/qpid/AMQException.java index 0222fd9b4e..3e93243a1d 100644 --- a/java/common/src/main/java/org/apache/qpid/AMQException.java +++ b/java/common/src/main/java/org/apache/qpid/AMQException.java @@ -23,11 +23,41 @@ package org.apache.qpid; import org.apache.log4j.Logger; import org.apache.qpid.protocol.AMQConstant; -/** Generic AMQ exception. */ +/** + * AMQException forms the root exception of all exceptions relating to the AMQ protocol. It provides space to associate + * an AMQ error code with the exception, which is a numberic value, with a meaning defined by the protocol. + * + * <p/><table id="crc"><caption>CRC Card</caption> + * <tr><th> Responsibilities <th> Collaborations + * <tr><td> Represents an exception condition associated with an AMQ protocol error code. + * </table> + * + * @todo This exception class is also used as a generic exception throughout Qpid code. This usage may not be strictly + * correct if this is to signify a protocol exception. Should review. + */ public class AMQException extends Exception { + /** Holds the AMQ error code constant associated with this exception. */ private AMQConstant _errorCode; + /** + * Creates an exception with an optional error code, optional message and optional underlying cause. + * + * @param errorCode The error code. May be null if not to be set. + * @param msg The exception message. May be null if not to be set. + * @param t The underlying cause of the exception. May be null if not to be set. + */ + public AMQException(AMQConstant errorCode, String msg, Throwable t) + { + super(((msg == null) ? "" : msg) + ((errorCode == null) ? "" : (" [error code " + errorCode + "]")), t); + _errorCode = errorCode; + } + + /** + * @param message + * + * @deprecated Use {@link #AMQException(org.apache.qpid.protocol.AMQConstant, String, Throwable)} instead. + */ public AMQException(String message) { super(message); @@ -35,6 +65,12 @@ public class AMQException extends Exception _errorCode = AMQConstant.getConstant(-1); } + /** + * @param msg + * @param t + * + * @deprecated Use {@link #AMQException(org.apache.qpid.protocol.AMQConstant, String, Throwable)} instead. + */ public AMQException(String msg, Throwable t) { super(msg, t); @@ -42,18 +78,19 @@ public class AMQException extends Exception _errorCode = AMQConstant.getConstant(-1); } - public AMQException(AMQConstant errorCode, String msg, Throwable t) - { - super(msg + " [error code " + errorCode + ']', t); - _errorCode = errorCode; - } - + /** + * @param errorCode + * @param msg + * + * @deprecated Use {@link #AMQException(org.apache.qpid.protocol.AMQConstant, String, Throwable)} instead. + */ public AMQException(AMQConstant errorCode, String msg) { super(msg + " [error code " + errorCode + ']'); _errorCode = errorCode; } + /* public AMQException(Logger logger, String msg, Throwable t) { this(msg, t); @@ -71,10 +108,15 @@ public class AMQException extends Exception this(errorCode, msg); logger.error(getMessage(), this); } + */ + /** + * Gets the AMQ protocol exception code associated with this exception. + * + * @return The AMQ protocol exception code associated with this exception. + */ public AMQConstant getErrorCode() { return _errorCode; } - } diff --git a/java/common/src/main/java/org/apache/qpid/configuration/PropertyException.java b/java/common/src/main/java/org/apache/qpid/configuration/PropertyException.java index 958f59191f..7c85a08e11 100644 --- a/java/common/src/main/java/org/apache/qpid/configuration/PropertyException.java +++ b/java/common/src/main/java/org/apache/qpid/configuration/PropertyException.java @@ -1,3 +1,4 @@ +/* Copyright Rupert Smith, 2005 to 2006, all rights reserved. */ /* * * Licensed to the Apache Software Foundation (ASF) under one @@ -7,9 +8,9 @@ * 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 @@ -21,6 +22,7 @@ package org.apache.qpid.configuration; import org.apache.log4j.Logger; + import org.apache.qpid.AMQException; import org.apache.qpid.protocol.AMQConstant; @@ -49,7 +51,7 @@ public class PropertyException extends AMQException super(errorCode, msg); } - public PropertyException(Logger logger, String msg, Throwable t) + /*public PropertyException(Logger logger, String msg, Throwable t) { super(logger, msg, t); } @@ -62,5 +64,5 @@ public class PropertyException extends AMQException public PropertyException(Logger logger, AMQConstant errorCode, String msg) { super(logger, errorCode, msg); - } + }*/ } diff --git a/java/common/src/main/java/org/apache/qpid/framing/AMQDataBlockDecoder.java b/java/common/src/main/java/org/apache/qpid/framing/AMQDataBlockDecoder.java index 43f888c029..9f36448986 100644 --- a/java/common/src/main/java/org/apache/qpid/framing/AMQDataBlockDecoder.java +++ b/java/common/src/main/java/org/apache/qpid/framing/AMQDataBlockDecoder.java @@ -94,7 +94,7 @@ public class AMQDataBlockDecoder if(bodyFactory == null) { - throw new AMQFrameDecodingException("Unsupported frame type: " + type); + throw new AMQFrameDecodingException(null, "Unsupported frame type: " + type, null); } final int channel = in.getUnsignedShort(); @@ -103,8 +103,8 @@ public class AMQDataBlockDecoder // bodySize can be zero if (channel < 0 || bodySize < 0) { - throw new AMQFrameDecodingException("Undecodable frame: type = " + type + " channel = " + channel + - " bodySize = " + bodySize); + throw new AMQFrameDecodingException(null, "Undecodable frame: type = " + type + " channel = " + channel + + " bodySize = " + bodySize, null); } AMQFrame frame = new AMQFrame(in, channel, bodySize, bodyFactory); @@ -113,7 +113,7 @@ public class AMQDataBlockDecoder byte marker = in.get(); if ((marker & 0xFF) != 0xCE) { - throw new AMQFrameDecodingException("End of frame marker not found. Read " + marker + " length=" + bodySize + " type=" + type); + throw new AMQFrameDecodingException(null, "End of frame marker not found. Read " + marker + " length=" + bodySize + " type=" + type, null); } return frame; } diff --git a/java/common/src/main/java/org/apache/qpid/framing/AMQFrameDecodingException.java b/java/common/src/main/java/org/apache/qpid/framing/AMQFrameDecodingException.java index a24bd6aaa9..c462dec2a3 100644 --- a/java/common/src/main/java/org/apache/qpid/framing/AMQFrameDecodingException.java +++ b/java/common/src/main/java/org/apache/qpid/framing/AMQFrameDecodingException.java @@ -1,3 +1,4 @@ +/* Copyright Rupert Smith, 2005 to 2006, all rights reserved. */ /* * * Licensed to the Apache Software Foundation (ASF) under one @@ -7,9 +8,9 @@ * 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 @@ -21,21 +22,23 @@ package org.apache.qpid.framing; import org.apache.log4j.Logger; + import org.apache.qpid.AMQException; +import org.apache.qpid.protocol.AMQConstant; public class AMQFrameDecodingException extends AMQException { - public AMQFrameDecodingException(String message) + /*public AMQFrameDecodingException(String message) { super(message); - } + }*/ - public AMQFrameDecodingException(String message, Throwable t) + public AMQFrameDecodingException(AMQConstant errorCode, String message, Throwable t) { - super(message, t); + super(errorCode, message, t); } - public AMQFrameDecodingException(Logger log, String message) + /*public AMQFrameDecodingException(Logger log, String message) { super(log, message); } @@ -43,6 +46,5 @@ public class AMQFrameDecodingException extends AMQException public AMQFrameDecodingException(Logger log, String message, Throwable t) { super(log, message, t); - } - + }*/ } diff --git a/java/common/src/main/java/org/apache/qpid/framing/AMQShortString.java b/java/common/src/main/java/org/apache/qpid/framing/AMQShortString.java index f51296dafc..f2492585bc 100644 --- a/java/common/src/main/java/org/apache/qpid/framing/AMQShortString.java +++ b/java/common/src/main/java/org/apache/qpid/framing/AMQShortString.java @@ -9,7 +9,7 @@ import org.apache.mina.common.ByteBuffer; * and thus can be held more effectively in a byte buffer.
*
*/
-public final class AMQShortString implements CharSequence
+public final class AMQShortString implements CharSequence, Comparable<AMQShortString>
{
private static final Logger _logger = Logger.getLogger(AMQShortString.class);
diff --git a/java/common/src/main/java/org/apache/qpid/framing/BasicContentHeaderProperties.java b/java/common/src/main/java/org/apache/qpid/framing/BasicContentHeaderProperties.java index 8b784fa3f7..008afb490e 100644 --- a/java/common/src/main/java/org/apache/qpid/framing/BasicContentHeaderProperties.java +++ b/java/common/src/main/java/org/apache/qpid/framing/BasicContentHeaderProperties.java @@ -341,7 +341,7 @@ public class BasicContentHeaderProperties implements CommonContentHeaderProperti } catch (AMQFrameDecodingException e) { - throw new RuntimeException("Error in content header data: " + e); + throw new RuntimeException("Error in content header data: " + e, e); } final int endPos = buffer.position(); @@ -381,7 +381,7 @@ public class BasicContentHeaderProperties implements CommonContentHeaderProperti } catch (AMQFrameDecodingException e) { - throw new RuntimeException("Error in content header data: " + e); + throw new RuntimeException("Error in content header data: " + e, e); } } diff --git a/java/common/src/main/java/org/apache/qpid/framing/ContentHeaderPropertiesFactory.java b/java/common/src/main/java/org/apache/qpid/framing/ContentHeaderPropertiesFactory.java index 7dac018872..712eb437db 100644 --- a/java/common/src/main/java/org/apache/qpid/framing/ContentHeaderPropertiesFactory.java +++ b/java/common/src/main/java/org/apache/qpid/framing/ContentHeaderPropertiesFactory.java @@ -49,7 +49,7 @@ public class ContentHeaderPropertiesFactory } else { - throw new AMQFrameDecodingException("Unsupport content header class id: " + classId); + throw new AMQFrameDecodingException(null, "Unsupport content header class id: " + classId, null); } properties.populatePropertiesFromBuffer(buffer, propertyFlags, size); return properties; diff --git a/java/common/src/main/java/org/apache/qpid/framing/EncodingUtils.java b/java/common/src/main/java/org/apache/qpid/framing/EncodingUtils.java index f94cd4934c..f0cdda487c 100644 --- a/java/common/src/main/java/org/apache/qpid/framing/EncodingUtils.java +++ b/java/common/src/main/java/org/apache/qpid/framing/EncodingUtils.java @@ -7,9 +7,9 @@ * 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 @@ -23,6 +23,7 @@ package org.apache.qpid.framing; import java.nio.charset.Charset; import org.apache.log4j.Logger; + import org.apache.mina.common.ByteBuffer; public class EncodingUtils @@ -49,96 +50,95 @@ public class EncodingUtils } } - public static int encodedShortStringLength(short s) { - if( s == 0 ) + if (s == 0) { return 1 + 1; } int len = 0; - if(s < 0) + if (s < 0) { - len=1; + len = 1; // sloppy - doesn't work of Integer.MIN_VALUE - s=(short)-s; + s = (short) -s; } - if(s>9999) + if (s > 9999) { - return 1+5; + return 1 + 5; } - else if(s>999) + else if (s > 999) { - return 1+4; + return 1 + 4; } - else if(s>99) + else if (s > 99) { - return 1+3; + return 1 + 3; } - else if(s>9) + else if (s > 9) { - return 1+2; + return 1 + 2; } else { - return 1+1; + return 1 + 1; } } - public static int encodedShortStringLength(int i) { - if( i == 0 ) + if (i == 0) { return 1 + 1; } int len = 0; - if(i < 0) + if (i < 0) { - len=1; + len = 1; // sloppy - doesn't work of Integer.MIN_VALUE - i=-i; + i = -i; } // range is now 1 - 2147483647 - if(i < Short.MAX_VALUE) + if (i < Short.MAX_VALUE) { - return len + encodedShortStringLength((short)i); + return len + encodedShortStringLength((short) i); } else if (i > 999999) { - return len + 6 + encodedShortStringLength((short)(i/1000000)); + return len + 6 + encodedShortStringLength((short) (i / 1000000)); } else // if (i > 99999) { - return len + 5 + encodedShortStringLength((short)(i/100000)); + return len + 5 + encodedShortStringLength((short) (i / 100000)); } } public static int encodedShortStringLength(long l) { - if(l == 0) + if (l == 0) { return 1 + 1; } int len = 0; - if(l < 0) + if (l < 0) { - len=1; + len = 1; // sloppy - doesn't work of Long.MIN_VALUE - l=-l; + l = -l; } - if(l < Integer.MAX_VALUE) + + if (l < Integer.MAX_VALUE) { return len + encodedShortStringLength((int) l); } - else if(l > 9999999999L) + else if (l > 9999999999L) { return len + 10 + encodedShortStringLength((int) (l / 10000000000L)); } @@ -149,7 +149,6 @@ public class EncodingUtils } - public static int encodedShortStringLength(AMQShortString s) { if (s == null) @@ -162,7 +161,6 @@ public class EncodingUtils } } - public static int encodedLongStringLength(String s) { if (s == null) @@ -219,7 +217,6 @@ public class EncodingUtils return 0; } - public static void writeShortStringBytes(ByteBuffer buffer, String s) { if (s != null) @@ -230,6 +227,7 @@ public class EncodingUtils { encodedString[i] = (byte) cha[i]; } + writeBytes(buffer, encodedString); } else @@ -239,7 +237,6 @@ public class EncodingUtils } } - public static void writeShortStringBytes(ByteBuffer buffer, AMQShortString s) { if (s != null) @@ -256,7 +253,7 @@ public class EncodingUtils public static void writeLongStringBytes(ByteBuffer buffer, String s) { - assert s == null || s.length() <= 0xFFFE; + assert (s == null) || (s.length() <= 0xFFFE); if (s != null) { int len = s.length(); @@ -267,6 +264,7 @@ public class EncodingUtils { encodedString[i] = (byte) cha[i]; } + buffer.put(encodedString); } else @@ -277,7 +275,7 @@ public class EncodingUtils public static void writeLongStringBytes(ByteBuffer buffer, char[] s) { - assert s == null || s.length <= 0xFFFE; + assert (s == null) || (s.length <= 0xFFFE); if (s != null) { int len = s.length; @@ -287,6 +285,7 @@ public class EncodingUtils { encodedString[i] = (byte) s[i]; } + buffer.put(encodedString); } else @@ -297,7 +296,7 @@ public class EncodingUtils public static void writeLongStringBytes(ByteBuffer buffer, byte[] bytes) { - assert bytes == null || bytes.length <= 0xFFFE; + assert (bytes == null) || (bytes.length <= 0xFFFE); if (bytes != null) { writeUnsignedInteger(buffer, bytes.length); @@ -330,7 +329,6 @@ public class EncodingUtils } } - public static int unsignedIntegerLength() { return 4; @@ -356,7 +354,6 @@ public class EncodingUtils } } - public static void writeFieldTableBytes(ByteBuffer buffer, FieldTable table) { if (table != null) @@ -400,10 +397,9 @@ public class EncodingUtils if (value1) { - packedValue = (byte) (packedValue | (byte)(1 << 1)); + packedValue = (byte) (packedValue | (byte) (1 << 1)); } - buffer.put(packedValue); } @@ -413,213 +409,181 @@ public class EncodingUtils if (value1) { - packedValue = (byte) (packedValue | (byte)(1 << 1)); + packedValue = (byte) (packedValue | (byte) (1 << 1)); } if (value2) { - packedValue = (byte) (packedValue | (byte)(1 << 2)); + packedValue = (byte) (packedValue | (byte) (1 << 2)); } - buffer.put(packedValue); } - - - public static void writeBooleans(ByteBuffer buffer, - boolean value0, - boolean value1, - boolean value2, - boolean value3) + public static void writeBooleans(ByteBuffer buffer, boolean value0, boolean value1, boolean value2, boolean value3) { byte packedValue = value0 ? (byte) 1 : (byte) 0; if (value1) { - packedValue = (byte) (packedValue | (byte)(1 << 1)); + packedValue = (byte) (packedValue | (byte) (1 << 1)); } if (value2) { - packedValue = (byte) (packedValue | (byte)(1 << 2)); + packedValue = (byte) (packedValue | (byte) (1 << 2)); } if (value3) { - packedValue = (byte) (packedValue | (byte)(1 << 3)); + packedValue = (byte) (packedValue | (byte) (1 << 3)); } buffer.put(packedValue); } - public static void writeBooleans(ByteBuffer buffer, - boolean value0, - boolean value1, - boolean value2, - boolean value3, - boolean value4) + public static void writeBooleans(ByteBuffer buffer, boolean value0, boolean value1, boolean value2, boolean value3, + boolean value4) { byte packedValue = value0 ? (byte) 1 : (byte) 0; if (value1) { - packedValue = (byte) (packedValue | (byte)(1 << 1)); + packedValue = (byte) (packedValue | (byte) (1 << 1)); } if (value2) { - packedValue = (byte) (packedValue | (byte)(1 << 2)); + packedValue = (byte) (packedValue | (byte) (1 << 2)); } if (value3) { - packedValue = (byte) (packedValue | (byte)(1 << 3)); + packedValue = (byte) (packedValue | (byte) (1 << 3)); } if (value4) { - packedValue = (byte) (packedValue | (byte)(1 << 4)); + packedValue = (byte) (packedValue | (byte) (1 << 4)); } buffer.put(packedValue); } - public static void writeBooleans(ByteBuffer buffer, - boolean value0, - boolean value1, - boolean value2, - boolean value3, - boolean value4, - boolean value5) + public static void writeBooleans(ByteBuffer buffer, boolean value0, boolean value1, boolean value2, boolean value3, + boolean value4, boolean value5) { byte packedValue = value0 ? (byte) 1 : (byte) 0; if (value1) { - packedValue = (byte) (packedValue | (byte)(1 << 1)); + packedValue = (byte) (packedValue | (byte) (1 << 1)); } if (value2) { - packedValue = (byte) (packedValue | (byte)(1 << 2)); + packedValue = (byte) (packedValue | (byte) (1 << 2)); } if (value3) { - packedValue = (byte) (packedValue | (byte)(1 << 3)); + packedValue = (byte) (packedValue | (byte) (1 << 3)); } if (value4) { - packedValue = (byte) (packedValue | (byte)(1 << 4)); + packedValue = (byte) (packedValue | (byte) (1 << 4)); } if (value5) { - packedValue = (byte) (packedValue | (byte)(1 << 5)); + packedValue = (byte) (packedValue | (byte) (1 << 5)); } buffer.put(packedValue); } - public static void writeBooleans(ByteBuffer buffer, - boolean value0, - boolean value1, - boolean value2, - boolean value3, - boolean value4, - boolean value5, - boolean value6) + public static void writeBooleans(ByteBuffer buffer, boolean value0, boolean value1, boolean value2, boolean value3, + boolean value4, boolean value5, boolean value6) { byte packedValue = value0 ? (byte) 1 : (byte) 0; if (value1) { - packedValue = (byte) (packedValue | (byte)(1 << 1)); + packedValue = (byte) (packedValue | (byte) (1 << 1)); } if (value2) { - packedValue = (byte) (packedValue | (byte)(1 << 2)); + packedValue = (byte) (packedValue | (byte) (1 << 2)); } if (value3) { - packedValue = (byte) (packedValue | (byte)(1 << 3)); + packedValue = (byte) (packedValue | (byte) (1 << 3)); } if (value4) { - packedValue = (byte) (packedValue | (byte)(1 << 4)); + packedValue = (byte) (packedValue | (byte) (1 << 4)); } if (value5) { - packedValue = (byte) (packedValue | (byte)(1 << 5)); + packedValue = (byte) (packedValue | (byte) (1 << 5)); } if (value6) { - packedValue = (byte) (packedValue | (byte)(1 << 6)); + packedValue = (byte) (packedValue | (byte) (1 << 6)); } buffer.put(packedValue); } - public static void writeBooleans(ByteBuffer buffer, - boolean value0, - boolean value1, - boolean value2, - boolean value3, - boolean value4, - boolean value5, - boolean value6, - boolean value7) + public static void writeBooleans(ByteBuffer buffer, boolean value0, boolean value1, boolean value2, boolean value3, + boolean value4, boolean value5, boolean value6, boolean value7) { byte packedValue = value0 ? (byte) 1 : (byte) 0; if (value1) { - packedValue = (byte) (packedValue | (byte)(1 << 1)); + packedValue = (byte) (packedValue | (byte) (1 << 1)); } if (value2) { - packedValue = (byte) (packedValue | (byte)(1 << 2)); + packedValue = (byte) (packedValue | (byte) (1 << 2)); } if (value3) { - packedValue = (byte) (packedValue | (byte)(1 << 3)); + packedValue = (byte) (packedValue | (byte) (1 << 3)); } if (value4) { - packedValue = (byte) (packedValue | (byte)(1 << 4)); + packedValue = (byte) (packedValue | (byte) (1 << 4)); } if (value5) { - packedValue = (byte) (packedValue | (byte)(1 << 5)); + packedValue = (byte) (packedValue | (byte) (1 << 5)); } if (value6) { - packedValue = (byte) (packedValue | (byte)(1 << 6)); + packedValue = (byte) (packedValue | (byte) (1 << 6)); } if (value7) { - packedValue = (byte) (packedValue | (byte)(1 << 7)); + packedValue = (byte) (packedValue | (byte) (1 << 7)); } buffer.put(packedValue); } - - - /** * This is used for writing longstrs. * @@ -647,26 +611,27 @@ public class EncodingUtils public static boolean[] readBooleans(ByteBuffer buffer) { final byte packedValue = buffer.get(); - if(packedValue == 0) + if (packedValue == 0) { return ALL_FALSE_ARRAY; } + final boolean[] result = new boolean[8]; result[0] = ((packedValue & 1) != 0); result[1] = ((packedValue & (1 << 1)) != 0); result[2] = ((packedValue & (1 << 2)) != 0); result[3] = ((packedValue & (1 << 3)) != 0); - if((packedValue & 0xF0) == 0) + if ((packedValue & 0xF0) == 0) { result[0] = ((packedValue & 1) != 0); } + result[4] = ((packedValue & (1 << 4)) != 0); result[5] = ((packedValue & (1 << 5)) != 0); result[6] = ((packedValue & (1 << 6)) != 0); result[7] = ((packedValue & (1 << 7)) != 0); - return result; } @@ -742,6 +707,7 @@ public class EncodingUtils { stringChars[i] = (char) stringBytes[i]; } + return new String(stringChars); } } @@ -757,6 +723,7 @@ public class EncodingUtils { byte[] result = new byte[(int) length]; buffer.get(result); + return result; } } @@ -764,15 +731,14 @@ public class EncodingUtils public static long readTimestamp(ByteBuffer buffer) { // Discard msb from AMQ timestamp - //buffer.getUnsignedInt(); + // buffer.getUnsignedInt(); return buffer.getLong(); } - static byte[] hexToByteArray(String id) { // Should check param for null, long enough for this check, upper-case and trailing char - String s = (id.charAt(1) == 'x') ? id.substring(2) : id; // strip 0x + String s = (id.charAt(1) == 'x') ? id.substring(2) : id; // strip 0x int len = s.length(); int byte_len = len / 2; @@ -786,7 +752,7 @@ public class EncodingUtils byte b1 = Byte.parseByte(s.substring(ch, ch + 1), 16); byte b2 = Byte.parseByte(s.substring(ch + 1, ch + 2), 16); - b[i] = (byte) (b1 * 16 + b2); + b[i] = (byte) ((b1 * 16) + b2); } return (b); @@ -795,7 +761,7 @@ public class EncodingUtils public static char[] convertToHexCharArray(byte[] from) { int length = from.length; - char[] result_buff = new char[length * 2 + 2]; + char[] result_buff = new char[(length * 2) + 2]; result_buff[0] = '0'; result_buff[1] = 'x'; @@ -831,7 +797,7 @@ public class EncodingUtils byte[] from = new byte[size]; // Is this not the same. - //bb.get(from, 0, length); + // bb.get(from, 0, length); for (int i = 0; i < size; i++) { from[i] = bb.get(i); @@ -840,9 +806,9 @@ public class EncodingUtils return (new String(convertToHexCharArray(from))); } - private static char hex_chars[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; + private static char[] hex_chars = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; - //**** new methods + // **** new methods // AMQP_BOOLEAN_PROPERTY_PREFIX @@ -854,6 +820,7 @@ public class EncodingUtils public static boolean readBoolean(ByteBuffer buffer) { byte packedValue = buffer.get(); + return (packedValue == 1); } @@ -878,7 +845,6 @@ public class EncodingUtils return 1; } - // AMQP_SHORT_PROPERTY_PREFIX public static void writeShort(ByteBuffer buffer, Short aShort) { @@ -943,7 +909,6 @@ public class EncodingUtils return 4; } - // Double_PROPERTY_PREFIX public static void writeDouble(ByteBuffer buffer, Double aDouble) { @@ -960,7 +925,6 @@ public class EncodingUtils return 8; } - public static byte[] readBytes(ByteBuffer buffer) { short length = buffer.getUnsigned(); @@ -981,7 +945,7 @@ public class EncodingUtils { if (data != null) { - // TODO: check length fits in an unsigned byte + // TODO: check length fits in an unsigned byte writeUnsignedByte(buffer, (short) data.length); buffer.put(data); } @@ -992,7 +956,7 @@ public class EncodingUtils } } - //CHAR_PROPERTY + // CHAR_PROPERTY public static int encodedCharLength() { return encodedByteLength(); @@ -1000,31 +964,29 @@ public class EncodingUtils public static char readChar(ByteBuffer buffer) { - //This is valid as we know that the Character is ASCII 0..127 + // This is valid as we know that the Character is ASCII 0..127 return (char) buffer.get(); } public static void writeChar(ByteBuffer buffer, char character) { - //This is valid as we know that the Character is ASCII 0..127 + // This is valid as we know that the Character is ASCII 0..127 writeByte(buffer, (byte) character); } - - - public static long readLongAsShortString(ByteBuffer buffer) { short length = buffer.getUnsigned(); short pos = 0; - if(length == 0) + if (length == 0) { return 0L; } + byte digit = buffer.get(); boolean isNegative; long result = 0; - if(digit == (byte)'-') + if (digit == (byte) '-') { isNegative = true; pos++; @@ -1034,15 +996,16 @@ public class EncodingUtils { isNegative = false; } - result = digit - (byte)'0'; + + result = digit - (byte) '0'; pos++; - while(pos < length) + while (pos < length) { pos++; digit = buffer.get(); result = (result << 3) + (result << 1); - result += digit - (byte)'0'; + result += digit - (byte) '0'; } return result; @@ -1051,33 +1014,13 @@ public class EncodingUtils public static long readUnsignedInteger(ByteBuffer buffer) { long l = 0xFF & buffer.get(); - l <<=8; + l <<= 8; l = l | (0xFF & buffer.get()); - l <<=8; + l <<= 8; l = l | (0xFF & buffer.get()); - l <<=8; + l <<= 8; l = l | (0xFF & buffer.get()); return l; } - - - public static void main(String[] args) - { - ByteBuffer buf = ByteBuffer.allocate(8); - buf.setAutoExpand(true); - - long l = (long) Integer.MAX_VALUE; - l += 1024L; - - writeUnsignedInteger(buf, l); - - buf.flip(); - - long l2 = readUnsignedInteger(buf); - - System.out.println("before: " + l); - System.out.println("after: " + l2); - } - } diff --git a/java/common/src/main/java/org/apache/qpid/framing/VersionSpecificRegistry.java b/java/common/src/main/java/org/apache/qpid/framing/VersionSpecificRegistry.java index ec371453aa..faa7cc1e82 100644 --- a/java/common/src/main/java/org/apache/qpid/framing/VersionSpecificRegistry.java +++ b/java/common/src/main/java/org/apache/qpid/framing/VersionSpecificRegistry.java @@ -148,34 +148,30 @@ public class VersionSpecificRegistry }
catch(NullPointerException e)
{
- throw new AMQFrameDecodingException(_log,
- "Class " + classID + " unknown in AMQP version " + _protocolMajorVersion + "-" + _protocolMinorVersion
- + " (while trying to decode class " + classID + " method " + methodID + ".");
+ throw new AMQFrameDecodingException(null, "Class " + classID + " unknown in AMQP version " + _protocolMajorVersion
+ + "-" + _protocolMinorVersion + " (while trying to decode class " + classID + " method " + methodID + ".", e);
}
catch(IndexOutOfBoundsException e)
{
if(classID >= _registry.length)
{
- throw new AMQFrameDecodingException(_log,
- "Class " + classID + " unknown in AMQP version " + _protocolMajorVersion + "-" + _protocolMinorVersion
- + " (while trying to decode class " + classID + " method " + methodID + ".");
-
+ throw new AMQFrameDecodingException(null, "Class " + classID + " unknown in AMQP version " + _protocolMajorVersion
+ + "-" + _protocolMinorVersion + " (while trying to decode class " + classID + " method " + methodID
+ + ".", e);
}
else
{
- throw new AMQFrameDecodingException(_log,
- "Method " + methodID + " unknown in AMQP version " + _protocolMajorVersion + "-" + _protocolMinorVersion
- + " (while trying to decode class " + classID + " method " + methodID + ".");
-
+ throw new AMQFrameDecodingException(null, "Method " + methodID + " unknown in AMQP version "
+ + _protocolMajorVersion + "-" + _protocolMinorVersion + " (while trying to decode class " + classID
+ + " method " + methodID + ".", e);
}
}
if (bodyFactory == null)
{
- throw new AMQFrameDecodingException(_log,
- "Method " + methodID + " unknown in AMQP version " + _protocolMajorVersion + "-" + _protocolMinorVersion
- + " (while trying to decode class " + classID + " method " + methodID + ".");
+ throw new AMQFrameDecodingException(null, "Method " + methodID + " unknown in AMQP version " + _protocolMajorVersion
+ + "-" + _protocolMinorVersion + " (while trying to decode class " + classID + " method " + methodID + ".", null);
}
diff --git a/java/common/src/main/java/org/apache/qpid/pool/Event.java b/java/common/src/main/java/org/apache/qpid/pool/Event.java index 09890a103d..7300ec8c3f 100644 --- a/java/common/src/main/java/org/apache/qpid/pool/Event.java +++ b/java/common/src/main/java/org/apache/qpid/pool/Event.java @@ -85,4 +85,27 @@ abstract public class Event } + + public static final class CloseEvent extends Event + { + private final IoFilter.NextFilter _nextFilter; + + public CloseEvent(final IoFilter.NextFilter nextFilter) + { + super(); + _nextFilter = nextFilter; + } + + + public void process(IoSession session) + { + _nextFilter.sessionClosed(session); + } + + public IoFilter.NextFilter getNextFilter() + { + return _nextFilter; + } + } + } diff --git a/java/common/src/main/java/org/apache/qpid/pool/PoolingFilter.java b/java/common/src/main/java/org/apache/qpid/pool/PoolingFilter.java index 8126ca4bc8..c9c96925cb 100644 --- a/java/common/src/main/java/org/apache/qpid/pool/PoolingFilter.java +++ b/java/common/src/main/java/org/apache/qpid/pool/PoolingFilter.java @@ -7,9 +7,9 @@ * 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 @@ -24,10 +24,13 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import org.apache.log4j.Logger; + import org.apache.mina.common.IdleStatus; import org.apache.mina.common.IoFilterAdapter; import org.apache.mina.common.IoSession; +import org.apache.qpid.pool.Event.CloseEvent; + public class PoolingFilter extends IoFilterAdapter implements Job.JobCompletionHandler { private static final Logger _logger = Logger.getLogger(PoolingFilter.class); @@ -47,12 +50,12 @@ public class PoolingFilter extends IoFilterAdapter implements Job.JobCompletionH void fireAsynchEvent(IoSession session, Event event) { Job job = getJobForSession(session); - // job.acquire(); //prevents this job being removed from _jobs + // job.acquire(); //prevents this job being removed from _jobs job.add(event); - //Additional checks on pool to check that it hasn't shutdown. + // Additional checks on pool to check that it hasn't shutdown. // The alternative is to catch the RejectedExecutionException that will result from executing on a shutdown pool - if (job.activate() && _poolReference.getPool() != null && !_poolReference.getPool().isShutdown()) + if (job.activate() && (_poolReference.getPool() != null) && !_poolReference.getPool().isShutdown()) { _poolReference.getPool().execute(job); } @@ -68,16 +71,6 @@ public class PoolingFilter extends IoFilterAdapter implements Job.JobCompletionH private Job getJobForSession(IoSession session) { return (Job) session.getAttribute(_name); - -/* if(job == null) - { - System.err.println("Error in " + _name); - Thread.dumpStack(); - } - - - job = _jobs.get(session); - return job == null ? createJobForSession(session) : job;*/ } private Job createJobForSession(IoSession session) @@ -87,35 +80,36 @@ public class PoolingFilter extends IoFilterAdapter implements Job.JobCompletionH private Job addJobForSession(IoSession session, Job job) { - //atomic so ensures all threads agree on the same job + // atomic so ensures all threads agree on the same job Job existing = _jobs.putIfAbsent(session, job); - return existing == null ? job : existing; + + return (existing == null) ? job : existing; } - //Job.JobCompletionHandler + // Job.JobCompletionHandler public void completed(IoSession session, Job job) { -// if (job.isComplete()) -// { -// job.release(); -// if (!job.isReferenced()) -// { -// _jobs.remove(session); -// } -// } -// else - if(!job.isComplete()) + // if (job.isComplete()) + // { + // job.release(); + // if (!job.isReferenced()) + // { + // _jobs.remove(session); + // } + // } + // else + if (!job.isComplete()) { // ritchiem : 2006-12-13 Do we need to perform the additional checks here? - // Can the pool be shutdown at this point? - if (job.activate() && _poolReference.getPool() != null && !_poolReference.getPool().isShutdown()) + // Can the pool be shutdown at this point? + if (job.activate() && (_poolReference.getPool() != null) && !_poolReference.getPool().isShutdown()) { _poolReference.getPool().execute(job); } } } - //IoFilter methods that are processed by threads on the pool + // IoFilter methods that are processed by threads on the pool public void sessionOpened(final NextFilter nextFilter, final IoSession session) throws Exception { @@ -127,37 +121,33 @@ public class PoolingFilter extends IoFilterAdapter implements Job.JobCompletionH nextFilter.sessionClosed(session); } - public void sessionIdle(final NextFilter nextFilter, final IoSession session, - final IdleStatus status) throws Exception + public void sessionIdle(final NextFilter nextFilter, final IoSession session, final IdleStatus status) throws Exception { nextFilter.sessionIdle(session, status); } - public void exceptionCaught(final NextFilter nextFilter, final IoSession session, - final Throwable cause) throws Exception + public void exceptionCaught(final NextFilter nextFilter, final IoSession session, final Throwable cause) throws Exception { - nextFilter.exceptionCaught(session,cause); + nextFilter.exceptionCaught(session, cause); } - public void messageReceived(final NextFilter nextFilter, final IoSession session, - final Object message) throws Exception + public void messageReceived(final NextFilter nextFilter, final IoSession session, final Object message) throws Exception { - nextFilter.messageReceived(session,message); + nextFilter.messageReceived(session, message); } - public void messageSent(final NextFilter nextFilter, final IoSession session, - final Object message) throws Exception + public void messageSent(final NextFilter nextFilter, final IoSession session, final Object message) throws Exception { nextFilter.messageSent(session, message); } - public void filterWrite(final NextFilter nextFilter, final IoSession session, - final WriteRequest writeRequest) throws Exception + public void filterWrite(final NextFilter nextFilter, final IoSession session, final WriteRequest writeRequest) + throws Exception { nextFilter.filterWrite(session, writeRequest); } - //IoFilter methods that are processed on current thread (NOT on pooled thread) + // IoFilter methods that are processed on current thread (NOT on pooled thread) public void filterClose(NextFilter nextFilter, IoSession session) throws Exception { @@ -199,13 +189,17 @@ public class PoolingFilter extends IoFilterAdapter implements Job.JobCompletionH super(refCountingPool, name); } - public void messageReceived(final NextFilter nextFilter, final IoSession session, - final Object message) throws Exception + public void messageReceived(final NextFilter nextFilter, final IoSession session, final Object message) + throws Exception { fireAsynchEvent(session, new Event.ReceivedEvent(nextFilter, message)); } + public void sessionClosed(final NextFilter nextFilter, final IoSession session) throws Exception + { + fireAsynchEvent(session, new CloseEvent(nextFilter)); + } } @@ -217,26 +211,27 @@ public class PoolingFilter extends IoFilterAdapter implements Job.JobCompletionH super(refCountingPool, name); } - - public void filterWrite(final NextFilter nextFilter, final IoSession session, - final WriteRequest writeRequest) throws Exception + public void filterWrite(final NextFilter nextFilter, final IoSession session, final WriteRequest writeRequest) + throws Exception { fireAsynchEvent(session, new Event.WriteEvent(nextFilter, writeRequest)); } + public void sessionClosed(final NextFilter nextFilter, final IoSession session) throws Exception + { + fireAsynchEvent(session, new CloseEvent(nextFilter)); + } + } - public static PoolingFilter createAynschReadPoolingFilter(ReferenceCountingExecutorService refCountingPool,String name) + public static PoolingFilter createAynschReadPoolingFilter(ReferenceCountingExecutorService refCountingPool, String name) { - return new AsynchReadPoolingFilter(refCountingPool,name); + return new AsynchReadPoolingFilter(refCountingPool, name); } - - public static PoolingFilter createAynschWritePoolingFilter(ReferenceCountingExecutorService refCountingPool,String name) + public static PoolingFilter createAynschWritePoolingFilter(ReferenceCountingExecutorService refCountingPool, String name) { - return new AsynchWritePoolingFilter(refCountingPool,name); + return new AsynchWritePoolingFilter(refCountingPool, name); } } - - diff --git a/java/common/src/main/java/org/apache/qpid/url/AMQBindingURL.java b/java/common/src/main/java/org/apache/qpid/url/AMQBindingURL.java index f558523864..353c0d39c2 100644 --- a/java/common/src/main/java/org/apache/qpid/url/AMQBindingURL.java +++ b/java/common/src/main/java/org/apache/qpid/url/AMQBindingURL.java @@ -7,9 +7,9 @@ * 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 @@ -24,9 +24,10 @@ import java.net.URI; import java.net.URISyntaxException; import java.util.HashMap; +import org.apache.log4j.Logger; + import org.apache.qpid.exchange.ExchangeDefaults; import org.apache.qpid.framing.AMQShortString; -import org.apache.log4j.Logger; public class AMQBindingURL implements BindingURL { @@ -39,10 +40,9 @@ public class AMQBindingURL implements BindingURL AMQShortString _queueName; private HashMap<String, String> _options; - public AMQBindingURL(String url) throws URLSyntaxException { - //format: + // format: // <exch_class>://<exch_name>/[<destination>]/[<queue>]?<option>='<value>'[,<option>='<value>']* _logger.debug("Parsing URL: " + url); _url = url; @@ -61,10 +61,10 @@ public class AMQBindingURL implements BindingURL if (exchangeClass == null) { - _url = ExchangeDefaults.DIRECT_EXCHANGE_CLASS + "://" + - "" + "//" + _url; - //URLHelper.parseError(-1, "Exchange Class not specified.", _url); + _url = ExchangeDefaults.DIRECT_EXCHANGE_CLASS + "://" + "" + "//" + _url; + // URLHelper.parseError(-1, "Exchange Class not specified.", _url); parseBindingURL(); + return; } else @@ -76,7 +76,7 @@ public class AMQBindingURL implements BindingURL if (exchangeName == null) { - if(getExchangeClass().equals(ExchangeDefaults.DIRECT_EXCHANGE_CLASS)) + if (getExchangeClass().equals(ExchangeDefaults.DIRECT_EXCHANGE_CLASS)) { setExchangeName(""); } @@ -92,11 +92,10 @@ public class AMQBindingURL implements BindingURL String queueName; - if (connection.getPath() == null || - connection.getPath().equals("")) + if ((connection.getPath() == null) || connection.getPath().equals("")) { throw URLHelper.parseError(_url.indexOf(_exchangeName.toString()) + _exchangeName.length(), - "Destination or Queue requried", _url); + "Destination or Queue requried", _url); } else { @@ -104,7 +103,7 @@ public class AMQBindingURL implements BindingURL if (slash == -1) { throw URLHelper.parseError(_url.indexOf(_exchangeName.toString()) + _exchangeName.length(), - "Destination requried", _url); + "Destination requried", _url); } else { @@ -127,9 +126,8 @@ public class AMQBindingURL implements BindingURL setQueueName(queueName); - //Fragment is #string (not used) - //System.out.println(connection.getFragment()); - _logger.debug("URL Parsed: " + this); + // Fragment is #string (not used) + _logger.debug("URL Parsed: " + this); } catch (URISyntaxException uris) @@ -162,7 +160,7 @@ public class AMQBindingURL implements BindingURL private void processOptions() { - //this is where we would parse any options that needed more than just storage. + // this is where we would parse any options that needed more than just storage. } public String getURL() @@ -219,11 +217,13 @@ public class AMQBindingURL implements BindingURL { if (containsOption(BindingURL.OPTION_CLIENTID) && containsOption(BindingURL.OPTION_SUBSCRIPTION)) { - _queueName = new AMQShortString(getOption(BindingURL.OPTION_CLIENTID + ":" + BindingURL.OPTION_SUBSCRIPTION)); + _queueName = + new AMQShortString(getOption(BindingURL.OPTION_CLIENTID + ":" + BindingURL.OPTION_SUBSCRIPTION)); } else { - throw URLHelper.parseError(-1, "Durable subscription must have values for " + BindingURL.OPTION_CLIENTID + " and " + BindingURL.OPTION_SUBSCRIPTION + ".", _url); + throw URLHelper.parseError(-1, "Durable subscription must have values for " + BindingURL.OPTION_CLIENTID + + " and " + BindingURL.OPTION_SUBSCRIPTION + ".", _url); } } @@ -237,7 +237,6 @@ public class AMQBindingURL implements BindingURL _queueName = name; } - } public String getOption(String key) @@ -275,7 +274,6 @@ public class AMQBindingURL implements BindingURL setOption(OPTION_ROUTING_KEY, key.toString()); } - public String toString() { StringBuffer sb = new StringBuffer(); @@ -289,18 +287,7 @@ public class AMQBindingURL implements BindingURL sb.append(_queueName); sb.append(URLHelper.printOptions(_options)); - return sb.toString(); - } - - public static void main(String args[]) throws URLSyntaxException - { - String url = "exchangeClass://exchangeName/Destination/Queue?option='value',option2='value2'"; - - AMQBindingURL dest = new AMQBindingURL(url); - - System.out.println(url); - System.out.println(dest); + return sb.toString(); } - } diff --git a/java/common/src/main/java/org/apache/qpid/url/URLHelper.java b/java/common/src/main/java/org/apache/qpid/url/URLHelper.java index 806f879818..c08b443acf 100644 --- a/java/common/src/main/java/org/apache/qpid/url/URLHelper.java +++ b/java/common/src/main/java/org/apache/qpid/url/URLHelper.java @@ -7,9 +7,9 @@ * 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 @@ -30,10 +30,10 @@ public class URLHelper public static void parseOptions(HashMap<String, String> optionMap, String options) throws URLSyntaxException { - //options looks like this - //brokerlist='tcp://host:port?option='value',option='value';vm://:3/virtualpath?option='value'',failover='method?option='value',option='value'' + // options looks like this + // brokerlist='tcp://host:port?option='value',option='value';vm://:3/virtualpath?option='value'',failover='method?option='value',option='value'' - if (options == null || options.indexOf('=') == -1) + if ((options == null) || (options.indexOf('=') == -1)) { return; } @@ -49,8 +49,8 @@ public class URLHelper // to store index of final "'" int valueIndex = optionIndex; - //Walk remainder of url. - while (nestedQuotes > 0 || valueIndex < length) + // Walk remainder of url. + while ((nestedQuotes > 0) || (valueIndex < length)) { valueIndex++; @@ -61,27 +61,24 @@ public class URLHelper if (options.charAt(valueIndex) == '\'') { - if (valueIndex + 1 < options.length()) + if ((valueIndex + 1) < options.length()) { - if (options.charAt(valueIndex + 1) == DEFAULT_OPTION_SEPERATOR || - options.charAt(valueIndex + 1) == ALTERNATIVE_OPTION_SEPARATOR || - options.charAt(valueIndex + 1) == BROKER_SEPARATOR || - options.charAt(valueIndex + 1) == '\'') + if ((options.charAt(valueIndex + 1) == DEFAULT_OPTION_SEPERATOR) + || (options.charAt(valueIndex + 1) == ALTERNATIVE_OPTION_SEPARATOR) + || (options.charAt(valueIndex + 1) == BROKER_SEPARATOR) + || (options.charAt(valueIndex + 1) == '\'')) { nestedQuotes--; -// System.out.println( -// options + "\n" + "-" + nestedQuotes + ":" + getPositionString(valueIndex - 2, 1)); + if (nestedQuotes == 0) { - //We've found the value of an option + // We've found the value of an option break; } } else { nestedQuotes++; -// System.out.println( -// options + "\n" + "+" + nestedQuotes + ":" + getPositionString(valueIndex - 2, 1)); } } else @@ -98,11 +95,11 @@ public class URLHelper } } - if (nestedQuotes != 0 || valueIndex < (optionIndex + 2)) + if ((nestedQuotes != 0) || (valueIndex < (optionIndex + 2))) { int sepIndex = 0; - //Try and identify illegal separator character + // Try and identify illegal separator character if (nestedQuotes > 1) { for (int i = 0; i < nestedQuotes; i++) @@ -112,14 +109,14 @@ public class URLHelper } } - if (sepIndex >= options.length() || sepIndex == 0) + if ((sepIndex >= options.length()) || (sepIndex == 0)) { throw parseError(valueIndex, "Unterminated option", options); } else { - throw parseError(sepIndex, "Unterminated option. Possible illegal option separator:'" + - options.charAt(sepIndex) + "'", options); + throw parseError(sepIndex, "Unterminated option. Possible illegal option separator:'" + + options.charAt(sepIndex) + "'", options); } } @@ -130,12 +127,11 @@ public class URLHelper if (valueIndex < (options.length() - 1)) { - //Recurse to get remaining options + // Recurse to get remaining options parseOptions(optionMap, options.substring(valueIndex + 2)); } } - public static URLSyntaxException parseError(int index, String error, String url) { return parseError(index, 1, error, url); |
