3 &   $            I         $   $ y 1 y 1 1 $ $  ~ ~ $  ~  ~   I  I   ~     W $    ] ^ x x    ^ ^ ^ ^ $ x $ $ $ I  I* y   x  x 1    y   $3     & ! $"# $%&'() * +,-F+. /0 1  $2 $3  /4 56 57 89:;< =>?@ABC DEFG HIJKLM N OP QRS T UV W yXY Z[ \] ^_ `a 1bc ydefghi Q`j ~k lm nopq $rs tu vwx yz{ |}~ $                       +   + +  5 ~;  ~ @ @ D D D D D  D P P T  T T \ \ \ b  b b $ $ u  x z | ~   InnerClassesignorePUTexceptionsZTEST_SERVICE_BASELjava/lang/String; ConstantValueECHO_MMPEXCEPTION_SERVICE pathInfoBaseMRC-Lorg/dataone/client/rest/MultipartRestClient;log Lorg/apache/commons/logging/Log;methodMatchPattern methodMapLjava/util/HashMap; SignaturerLjava/util/HashMap;>;>;clientMethodMapMNALjava/util/HashMap;clientMethodMapCNd1ExceptionListLjava/util/List;$Ljava/util/List;currentMethodKeynodeType'Lorg/dataone/service/types/v1/NodeType;errorCollector Lorg/junit/rules/ErrorCollector;RuntimeVisibleAnnotationsLorg/junit/Rule;$assertionsDisabled(Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis3Lorg/dataone/client/ClientArchitectureConformityIT; methodKey StackMapTablesetUp()V ExceptionsLorg/junit/BeforeClass;setUpTestParameters()Ljava/util/Collection;key methodKeysLjava/util/TreeSet; paramListLjava/util/ArrayList;LocalVariableTypeTable'Ljava/util/TreeSet;*Ljava/util/ArrayList<[Ljava/lang/Object;>;-()Ljava/util/Collection<[Ljava/lang/Object;>; Parameters,Lorg/junit/runners/Parameterized$Parameters; testHarnesstestEscapedPatternx pathPatternybuildMethodListKey.(Ljava/lang/reflect/Method;)Ljava/lang/String;methodLjava/lang/reflect/Method; methodString qualifiedNamegetCNInterfaceMethods()Ljava/util/HashMap;mmethodsjava/lang/reflect/Method;cLjava/lang/Class; methodMapKeyinterfaceMethodList interfaces[Ljava/lang/Class;clientInterfaceMethodsLjava/lang/Class<*>;)Ljava/util/ArrayList;[Ljava/lang/Class<*>;C()Ljava/util/HashMap;getMNInterfaceMethodsgetD1Exceptions()Ljava/util/List;resourceLjava/net/URL; directoryLjava/io/File; packageName classLoaderLjava/lang/ClassLoader;path resourcesLjava/util/Enumeration;dirsclasses'Ljava/util/Enumeration; Ljava/util/List;&()Ljava/util/List; findClasses2(Ljava/io/File;Ljava/lang/String;)Ljava/util/List;filefiles[Ljava/io/File;F(Ljava/io/File;Ljava/lang/String;)Ljava/util/List;testMethodIsDocumentedLorg/junit/Test;testMethodIsImplementedtestMethodParameterAgreementtype docParamTypeparamTypeSimpleNameiI docParamTypesimplParamTypesimplHasSession docHasSessionsessionCorrectiontestMethodReturnTypeAgreement docReturnTypeimplReturnTypeexpectedReturnTypereturnTypeSimpleName testHttpVerb echoResponsedocVerbeLjava/lang/Exception;exceptionLocationtestPath pathMatchtestMethodParameters paramTypeexpectedLocationmatcherLjava/util/regex/Matcher;paramKeyactualLocation echoedVerbparampatLjava/util/regex/Pattern; parameters paramTypes paramLocationtestMethodExceptionHandlingactualException d1Exception docExceptions exceptionNamegetEchoResponse&(Ljava/lang/String;)Ljava/lang/String; testResourced1nodeLorg/dataone/client/D1Node;SI(Lorg/dataone/client/D1Node;Ljava/lang/reflect/Method;)Ljava/lang/String; paramObjects[Ljava/lang/Object;sf/Lorg/dataone/service/exceptions/ServiceFailure;-Ljava/lang/reflect/InvocationTargetException;YgetExceptionResponse exceptionexceptionReturnedbuildParameterObjectInstances/(Ljava/lang/reflect/Method;)[Ljava/lang/Object;paramsbuildParamObject%(Ljava/lang/Class;)Ljava/lang/Object; contentBytes[Bid)Lorg/dataone/service/types/v1/Identifier;smd-Lorg/dataone/service/types/v2/SystemMetadata;mmcoLjava/lang/reflect/Constructor;nr,Lorg/dataone/service/types/v1/NodeReference;s&Lorg/dataone/service/types/v1/Subject;nfoLjava/lang/Object;((Ljava/lang/Class<*>;)Ljava/lang/Object;findParameterLocationJ(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;lineechoText parameterNameparamTestObject textLines[Ljava/lang/String;location pathLocationi verifyUrlPath'(Ljava/lang/String;Ljava/lang/String;)Z pathInfoLine getUrlPathgetVerblineOfInterestwords checkEqualsK(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Vhostmessages1s2)(Ljava/lang/String;Ljava/lang/String;II)V checkTrue((Ljava/lang/String;Ljava/lang/String;Z)Vb handleFail'(Ljava/lang/String;Ljava/lang/String;)V SourceFile#ClientArchitectureConformityIT.javaLorg/junit/runner/RunWith;value!Lorg/junit/runners/Parameterized; org/junit/rules/ErrorCollector CN.     MN.    D1Client.useLocalCachefalse CNode.useObjectFormatCache/org/dataone/client/rest/HttpMultipartRestClient $org/dataone/client/ArchitectureUtilsphttps://repository.dataone.org/documents/Projects/cicore/architecture/api-documentation/MethodCrossReference.xls  java/util/TreeSet     java/util/ArrayList    java/lang/String   java/lang/Object !"test# $%/werth/rtyudfgh/xcvbg/{pid}\{\w+\}\\w+\$ &'$/werth/rtyudfgh/xcvbg/testIdentifier/backslash pattern in replace should find target ()java/lang/StringBuilder *) +,( -. /0 \sthrows\s.* org/dataone/client/v2/CNode 12 3)D1Node 4" Interface under test: 5 67 89 Method from interface: :7 java/util/HashMap ;" <= org/dataone/client/v2/MNode Method from classes: ,org/dataone/service/exceptions/BaseException >?@A BC DE java/lang/AssertionError FG HI J K java/net/URL java/io/File L)   BaseException M" N OP Q. ;R.class S TU /Vmethod should be documented. W" {|method should be implemented. XYjava/util/Listjava/lang/reflect/Method Z2bad nodeType value: [) ~java/lang/ClassSession]number of parameters in implemented method should match number of parameters in documentation \U tz X]Implemented parameter type () at position +^ should match documented type () _n3Implementation does not have parameter at position  returnType `apingDate>Implemented return type (%s) should match documented type (%s) bc1org/dataone/client/ClientArchitectureConformityIT/echomm 34get verb from documentMapverbHEADHEAD method will return 'null' q4 tumethod verb should agreejava/lang/Exception dunexpected error at '' ea: f) g creating pathMatch \\w+$testPath() pathMatch: path_info should be matched by . got: p4 mnunexpected error at  (\w+).* hi\documentation error: the number of params and paramTypes in the documentation are not equal. j) k !l m n0 bcFileParamPUTDELETE %s operation: parameter '%s' is expected to be in a file or param part, but cannot be properly tested in a %s operation against the echo service. (actual location WAS null) parameter '' is not in expected location(did not find method in documentation map#::::::: checkExceptionHandling vs.  exceptions SynchronizationFailed : : : : : SKIPPING:  : : : : : checking: A4method should throw exception ''method should recast '' to 'ServiceFailure'ServiceFailure&http://dev-testing.dataone.org/testsvco pqr storg/dataone/client/D1Node 39 u)set PATH_INFO base (prefix): DE vw+java/lang/reflect/InvocationTargetException xy-org/dataone/service/exceptions/ServiceFailureError invoking method  detail code = z) {)invocation class: +|class of method being invoked: }a1Error building parameters for or invoking method echo response: D - - - - calling http://dev-testing.dataone.org/testsvc/exception/1http://dev-testing.dataone.org/testsvc/exception/exceptionReturned: building instance for: ~) GHjava/util/Date java.io.InputStreamsome input for the streamUTF-8 java/io/ByteArrayInputStream long java.lang.Integerjava/lang/Integer java.lang.Booleanjava/lang/Boolean java.lang.String testString-org/dataone/service/exceptions/NotImplementeddetailCodeStringdescriptionString Event  Permission ReplicationStatus SystemMetadata'org/dataone/service/types/v1/IdentifiertestIdentifier +org/dataone/service/types/v2/SystemMetadata  nodeIdString    text/plain  submitterString        %org/dataone/service/types/v1/Checksum  MD5 *asqweroivlksjklrwe452398opvds9fdcvoipefnwrrightsHolderString 4org/dataone/service/exceptions/SynchronizationFailed   created :setValue  setValue : testjava/lang/NoSuchMethodExceptionNode*org/dataone/service/types/v1/NodeReferencetestNodeReference!org/dataone/service/types/v2/Node fako blah blah blah somewhere over the rainbow    Person$org/dataone/service/types/v1/Subject testSubject#org/dataone/service/types/v1/Person Sleepy  Dwarf Group"org/dataone/service/types/v1/Group testGroupName  Replica$org/dataone/service/types/v1/Replica     request.META[ QUERY_STRING ]Queryrequest.POST=6,2:>?@rA1Y2B4C46DE::66  9 2: A1Y2F4 346G* H'W Ƅr<EMIYJN,:66B2:H:*K%1Y24346: - LW-;;Z(8W^x    f x) ^I(  +2]U*(Uo 1 <?  3M,YKN=L+M,>6,2:>?@rA1Y2B4C46DE::66  9 2: A1Y2F4 346G* H'W ƄrNEMIYJN,:66a2:A1Y2O4346GH:*K%1Y2 4346: - LW-MM^(8W^x#$%&'()*%%+-//f x) ^I(  +Q!|t*(!tq 1 <^ PQRSKTULV+ WYX*./YM+,ZNY:-[%-\]:^Y_`aWػY:b:"#^:*cdWefWPPJ5678(91:7;@<I=T>h?k@tABCDEGRT 1~7x@ot; 7x@ot;+(*$  oYM*g,*hN-:662:iHVjkl WYX,1Y2+4k4j46cmW+jno,jjpdqaWz,2 STUWX/Y7ZR[|\]X`4/u -0)'K** r* stijik *** u* s* stpqr&p)t *<! * vIwvxLM** vyzMB* * vyzM$** 1Y2{4*|46},~M+ YL>,:66"2:>@> 6+b:""#$:@ 66 6** ,`+6,,,2>:^++$:** 1Y24444446tf`++`$:** 1Y2444444`6t** 1Y246}.z{|"}6~@Tuy~ &/4Pz P<C/     X$    V6   %4@@@Dr* vIvxLM** vyMB* * vyM$** 1Y2{4*|46}* o +$N,>:** &YSY-S-t:"6@Tu4'!6 IWLL*ML* vIvx$N-@** *,** *,->M,** 1Y24+44,C44,46}Z]N .7@DJSWZ]^b}4 N.,^:JB:L* vIvx$L1Y24* vIvx$+-446MA1Y24,46GL*N** 1Y24,44*-46*,-t>M,** 1Y24+44,C44,46}(N  (+?i! #4iS.::I L* vIvx$L*M* s* vIvN* vIwv:* vIv:-PK:-** }+6-:"#$:   : : +$: $:  :  : :   : *, 1Y2(4 46:*,: Y @  @E@ @1,šK** &YSY SYS}(** 1Y2Ķ4 4Ŷ46 ** ƶ}>M,** 1Y24+44,C44,46}(.),(1+223?4U5l69;<=@ABCGHIJKMNQRS%T-WJZQ[Z\d]n^acknqrxtuvwv{   !" # J$Q%& %  A'(U)lh*Q+2:  U)lh*Q+,(2-<-$ , B:.xcA1Y2Ƕ4* 46D* vIvx$!L* vIȶvMN-b:"#$:ʶ@"A1Y2˶446DIJA1Y2̶446D*:,K+** 1Y2ζ44϶46(** 1Y2ж44Ѷ46ҶG>M,** 1Y24+44,C44,46}F$'ZDF\`~!$'(,G_bHV/~0\1`(:F2c\1`1h>T$B:34;MN*ә;<1Y2Զ4+46ոN*-* vyM8N1Y2Զ4+46ոN*-* vyM-:-A1Y2ڶ446D,:),3Iadk~*567 I8439N*,:,+W:ߚ'*:1Y24,346}2:1Y244446Nd:A1Y24+6GA1Y24,6G*,H1Y24,346}A1Y24-46G-wN !&EOjtwyR :;O%<=^>y_67(8?@0@.B`A4MN:A1Y24+46G*ә7<1Y24+46ոN* vy:4N1Y24+46ոN* vy:*:-W6:A1Y24Q46G޶>M,R"/GJQc{~   H :;1>BC67c8?0S@2DEZ+zM,&N6,FA1Y24,246G-*,2S-2 -&  6BLRX4J  ZZUF O:; UF8CGHoTM+@NY-M+@ M+@YM+@YM+@$YM+eoY   M+ o  M+o Mq+o M]+oYN-Y:- !"#$%&'Y()Y(*+Y,-./0.123"4M+ʶo5Y  6M+~7N-89MA1Y2:4,6G+;~Y$S<:,&Y1Y2(4+>46SWA1Y2=4+>46G:+?oO@YAN-BC,D-E,DFG,DHI,DJK,D L,DMN+Oo;PYQN-RS,T-U,T$YVSWX,TYZ+[o9PYQN-RS,\-],\^_,\PY-SW`?+ao2@YAN-BC,b-c,bde,bY(f,03>2L"#$%&.'6(B)N*[+g,t-0123456789:;<=>?'@2A:BBCNDZEfFqG|HJLMQRSUVW0Z3X5^B_J`QaYbccmdwefghijklmnopqrs#t+u2v:wDxRzz  IJKLMNCOPQJARS-TU+TU+'VSTTRWX T7"YYZ[XDB;\]^_>`abc +g::::66   2:  ,l^ h i:} j :k k :Y l :G m :5 n$ 1Y2o4-46lp: _:n (1<ADOSVaehswzR(d efghi jk4  ll)+mnt*,N-+%*e op4H:M+B+gN-:66)2:nq:rM ,& '2=@F4'T8hiHHeEo+ll&q4T+gMN,:66!2:s N --tg:d2.  "-039=?K>"TTTeMhi KrK silltul*uY*+,-vwW "4vwxytzl*xY*+,ywW '34vwx y {|`*zY*+,{wW 7C*vw}~U*|Y*+,}wW GS vwU&~VA | @ c*|zxu&