summaryrefslogtreecommitdiffstats
path: root/mso-api-handlers/mso-api-handler-infra/src/main
AgeCommit message (Collapse)AuthorFilesLines
2018-09-17Accept VNF Recreate RequestsBenjamin, Max (mb388a)4-5/+32
Updated nfRole in sample catdb json response Added gr-api-default recipe for recreate Updated description in catdb response json Updated catdb response file to have the correct action Added action to common package Removed requestor ids and source from test requests Began adding recreate endpoint and tests Began adding validation for recreate and junit tests Change-Id: I60c588be104b82b2d0dfb8587069e04f7b4710be Issue-ID: SO-1057 Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
2018-09-13Stability fixesBenjamin, Max (mb388a)1-8/+6
sdnc now logs the full response message as a json removed erroneous encoding of variables with full XML Return created network from getVirtualLinkL3Network added exception logger to workflowaction aai check Check for null value for vnfcPorts before referencing it Added test case for invalid camunda response Changed to use updateStatus method Added saving for currentActiveReq and test for 401 resp Change JUnit to use expectedException and clean up unused items. Add vfModuleId to the exception message for missing model info. Report an error if VF Module model info is expected but is null. - Just renamed the Cvnfc and Vnfc set names - Updated code to check for duplicate VNFC's across multiple modules in the same VNF. - Removed commented out if statement line for ALLOTTED_RESOURCE - Reinitialize the Cvnfc and Vnfc Sets each time we iterate the VFModule loop. This will avoid the concurrent modification exception. Eliminated Ben from the sample request Changed to use else if for null check Added null check before catdb call and test case Fix implementation of a call to VNF Adapter for DeleteVolumeGroupBB. Update the method to no call save and do a put Revert usage of PUT method, use save instead Change-Id: I9f69fb68d0639c23b8e1de6931938119bd3ac54b Issue-ID: SO-1032 Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
2018-09-08fixed null pointer on northboundBenjamin, Max (mb388a)1-1/+3
Removed ID from sample request JSON Added null check to fix null query value parameter error Change-Id: I1bf427b7864560bbbd577972763be439edad6ec0 Issue-ID: SO-943 Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
2018-09-08added generic fabric support to SOBenjamin, Max (mb388a)9-21/+74
Fix Autoincrement of ID field in table Fix accidental removal of method Update usage of requestdb client removed unused imports in common tasks and test Fix broken branch, have unit tests pass references the Epic branch Fix broken branch from compiling committing classpath for vfc adapter cause its not going away added in the fail case for when there are no profiles removed second set of adapters in application test yml removed double adapters in request db application test added jpa repo dependency to the so bpmn folder pom add creation timestamp column to the table added in null checks for Config returned from policy switched to string in requestprocess with jenerate switched to string in requestprocess with jenerate updated aai version in common pom to 605 from 591 renamed the db scripts for flyway sync to register added endpoint to application test yml for failing test ... Change-Id: I800f837ea75d7cdff740dc3a387e4d7654cfd085 Issue-ID: SO-972 Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
2018-09-04fix sonar issue in SpringContextHelper.javaSandeep J1-2/+3
fixed sonar issue detailed in SO-965 Issue-ID: SO-965 Change-Id: Iae43c4d053b14586670c0f0f7c3a8701c32288bb Signed-off-by: Sandeep J <sandeejh@in.ibm.com>
2018-08-31Update LoggingSmokowski, Steve (ss835w)2-3/+3
Add CXF interceptor for SOAP based logging Clean up extra logging statements Add UT to ensure MDC properly populated Change package name on Jax-RS Filter to be more accurate Issue-ID: SO-947 Change-Id: I3a2afc58de3bf370675658ce3d19cf899b90def7 Change-Id: I3a2afc58de3bf370675658ce3d19cf899b90def7 Signed-off-by: Smokowski, Steve (ss835w) <ss835w@us.att.com>
2018-08-28Converted ServiceInstances to catalog db clientBenjamin, Max (mb388a)1-135/+74
- Fixed issues related to created Date Format, enabled required Test - Fixed issues related to queryParam names, enabled required Test - Fixed issues related to queryParam names - Improving coverage for catalogDbClient by another 10% (its 78% now) - Improving coverage for catalogDbClient by another 10%. There is a failing test which will be explored shortly - Improving coverage for catalogDbClient, adding some tests and their basic asserts - merging with dev and resolving the compilation issue arising due to it - Removing some TODO introduced in code for incremental pushes - Fixing failing unit test cases with the build - Refactoring done for code change in catalogDBClient - merged changes with development branch - Modified unit tests for Catalogdb Client related code - Modified unit tests for Catalogdb Client related code - Fixed some of the repository code for retrieving single resource - Modified unit tests for Catalogdb Client related code - Modified unit tests for Catalogdb Client related code - Modified unit tests for Catalogdb Client related code - Removed @Param from repositories and added -Parameters argument in maven compile plugin ... Change-Id: Ieeb7bcc21a573465e485fedfbbe771c8b89db3f8 Issue-ID: SO-925 Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
2018-08-27Merge "request db access converted to rest"Rob Daugherty10-237/+41
2018-08-24Added actions to common APIH packageBrittany Plummer (bp896r)1-1/+1
Added scaleOut to common APIH Action enums Change-Id: I94f3d6b68d8890dd41aa4bd9ff51e5ecd2253383 Issue-ID: SO-904 Signed-off-by: Brittany Plummer (bp896r) <bp896r@att.com>
2018-08-24request db access converted to restBenjamin, Max (mb388a)10-237/+41
[MSO-5031]_updated_JUnits_to_assert_request_body_for_requestDb_client Marking JPARepositories as Remote Rest repositories for TenantIsolationRunnable class | Minor refactoring Add request DB Config to ATT specific ASDC controller test yaml Adding requestDB Endpoint to yaml so as to pass the tests of asdc controller Adding requestDB Endpoint to yaml so as to pass the tests Adding requestDB Endpoint to yaml so as to pass the tests Handling the build failure due to mock mismatch Handling the build failure due to conflicting beans and additional minor refactoring Handling the build failure due to conflicting beans Adding RequestDB endpoint to yaml files for running tests Removing non-entity classes from ClassURLMapper class Marking JPARepositories as Remote Rest repositories for TenantIsolationRunnable class | Fixing minor Bug Marking JPARepositories as Remote Rest repositories for TenantIsolationRunnable class | Fixing junits Marking JPARepositories as Remote Rest repositories for TenantIsolationRunnable class | Fixing getMultipleOperationalEnvServiceModelStatus Marking JPARepositories as Remote Rest repositories for TenantIsolationRunnable class | Fixing Junits Marking JPARepositories as Remote Rest repositories for RequestsDBHelper Marking JPARepositories as Remote Rest repositories for TenantIsolationRunnable class | Moving RequestsDbClient to requestdb package Marking JPARepositories as Remote Rest repositories for TenantIsolationRunnable class | Fixing Junits Marking JPARepositories as Remote Rest repositories for TenantIsolationRunnable class | Initial Checkin Change-Id: I4053919e98afb8db962511be0a3318b1bf8af88a Issue-ID: SO-903 Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
2018-08-22removed problematic swagger dependencyBenjamin, Max (mb388a)3-15/+33
removed swagger dependency which was causing issues Change-Id: I1e840f7ea9a45547c2562ce628c38f7c7e065e65 Issue-ID: SO-880 Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
2018-08-14Added vfModule scale out endpoint and validationBrittany Plummer (bp896r)7-5/+83
Issue-ID: SO-764 Change-Id: I6fc983ed6bc9d9c410406db1f2355c27e201b4f4 Signed-off-by: Brittany Plummer (bp896r) <bp896r@att.com>
2018-08-10Merge "Fix Error Scenario"Rob Daugherty1-3/+15
2018-08-10Fix Error ScenarioSmokowski, Steve (ss835w)1-3/+15
If Camunda returns a non-auth error, or invalid JSON. APIH was not logging the error or properly updating the request database record Issue-ID: SO-818 Change-Id: I8b164002132ca6c25f95e1fa2b194e6cb4c3be03 Change-Id: If6e06de0fb8a01a00ef06ade915dd7c13623047b Signed-off-by: Smokowski, Steve (ss835w) <ss835w@us.att.com>
2018-08-10Improve LoggingSmokowski, Steve (ss835w)1-8/+5
Add Stack trace to be logged, currently only a generic error message is logged Issue-ID: SO-846 Change-Id: I8479247227cf08de25bece5077003ee83c08472d Change-Id: I8479247227cf08de25bece5077003ee83c08472d Signed-off-by: Smokowski, Steve (ss835w) <ss835w@us.att.com>
2018-08-09Remove PropertySmokowski, Steve (ss835w)1-2/+0
Remove BPEL properties that are no longer used Issue-ID: SO-817 Change-Id: Ie654562dabaddfcff68de3dfddeb85eed478b0a5 Change-Id: I6a418c73608d08f4cf12833f893e671ffa77beb0 Signed-off-by: Smokowski, Steve (ss835w) <ss835w@us.att.com>
2018-08-07E2EServiceInstances to be free of catalogdbBenjamin, Max (mb388a)4-91/+89
Fixing Junits Making MSO requests free from direct repository calls Add @Param annotation so as to fix JPA methods with query parameters Fix createE2EServiceInstance Test Add Unit Tests for Sunny day scenarios revert import auto-alignment Issue-ID: SO-811 Change-Id: I9f69d817622b0807642a783311d6959817a77970 Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
2018-08-06issue while persisting dataBenjamin, Max (mb388a)4-33/+52
Fixing issue while persisting data into the infra active requests table Changing a URL to make it more consistent Removing MSORequest Dependency from all classes but E2EServiceInstance rename the yaml configuration key to something which is already present in d2d Issue-ID: SO-790 Change-Id: I4535a13e2b86ee0eb8c4b0e34aa02f522c0c1a3a Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
2018-08-02update infra apihandler to utilize restBenjamin, Max (mb388a)5-140/+224
rather than direct access Change-Id: I0cd3d3902e32249263298f91263401ce05c34be3 Issue-ID: SO-790 Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
2018-07-31Containerization feature of SOBenjamin, Max (mb388a)192-9219/+11415
Change-Id: I95381232eeefcd247a66a5cec370a8ce1c288e18 Issue-ID: SO-670 Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
2018-07-27Inlined local variables, used diamond operatorbiniek1-113/+58
Change-Id: Ib7b528b6e560fedb9fc23bc6ae5457c913faeeb1 Issue-ID: SO-506 Signed-off-by: biniek <lukasz.biniek@nokia.com>
2018-07-26Merge "Use defined constant END_OF_THE_TRANSACTION"Marcus Williams1-13/+13
2018-07-26Use defined constant END_OF_THE_TRANSACTIONEthan Hampton1-13/+13
Replace literal 'End of the transaction, the final response is: ' with already-defined constant END_OF_THE_TRANSACTION. Issue-ID: SO-666 Change-Id: I96e097df2042eeace55c8692c4dfd95df2594d13 Signed-off-by: Ethan Hampton <ethanx.hampton@intel.com>
2018-07-25Merge "Replace printStackTrace with usage of logger"Seshu Kumar M2-9/+5
2018-06-14Merge "Removed commented-out code block"Marcus Williams1-2/+0
2018-06-12Removed commented-out code blockMariah Jacobs1-2/+0
Removed two lines of commented-out code for readability. Issue-ID: SO-666 Change-Id: If897ba1f7b4eaeab2bb41c2c7e7b8e6a8e34b245 Signed-off-by: Mariah Jacobs <mariah.jacobs@intel.com>
2018-06-11Return expression instead of variable 'returnResp'Mariah Jacobs1-4/+1
Immediately return expression instead of assigning it to variable "returnResp". Issue-ID: SO-666 Change-Id: I7a9de4ebfb59776d9225f3bd29ef57d184b2679a Signed-off-by: Mariah Jacobs <mariah.jacobs@intel.com>
2018-05-28CorrelationId implementation correctionLukasz Muszkieta3-111/+64
service instance id is now correctly passed in case of delete instance operation Change-Id: Ifb5c27194d6a588852051df0aa391b559b484ac0 Issue-ID: SO-640 Signed-off-by: Lukasz Muszkieta <lukasz.muszkieta@nokia.com>
2018-05-24Replace printStackTrace with usage of loggerMichal Korman2-9/+5
Change-Id: I648e5a25337beca1f8c483ba6e5359d245e237d3 Issue-ID: SO-642 Signed-off-by: mkorman <michal.korman@nokia.com>
2018-05-24Revert correlationId implLukasz Muszkieta3-63/+111
This reverts commit c40b51651eff7997eb1bc823644a059b5406868c. Change-Id: I99e03cf9be05110ca7b4609a35ce7106f3c30b3b Issue-ID: SO-640 Signed-off-by: Lukasz Muszkieta <lukasz.muszkieta@nokia.com>
2018-05-22Merge "Add correlationId to ServiceInstancesRequest"Seshu Kumar M3-111/+63
2018-05-16Only set recipe when null in getServiceURIArthur Martella1-7/+7
Change-Id: I526d79d602d27c7c734bd1e38a4733176bd55f15 Issue-ID: SO-619 Signed-off-by: Arthur Martella <am153x@att.com>
2018-05-15WorkflowResponse json issuesRob Daugherty3-6/+6
This commit adds some robustness to the interface between the API-H and BPMN, specifically, in how the response is handled. I don't have proof, but there appears to be some randomness to the json provider behavior when used with the jax-rs. Sometimes, the serializer is adding the root element, and sometimes it is not. Maybe there's something wrong with the configuration. Maybe we have competing json providers. I couldn't pin this down. I'm almost certain it is the presence of the root element in the content that causes the API-H code to fail parsing of the BPMN response. This doesn't kill the request, as you might expect, but rather, the API-H passes the BPMN response through to the client (VID, or policy, or whatever). The original problem (SO-586) was "fixed" by "removing the wrapper". This "wrapper" is a needed feature of the interface between BPMN and the API-H. We shouldn't have removed it. The fact that the "fix" appeared to work is due to the behavior I described in the previous paragraph. The API-H chokes on the message, and it passes it through unchanged. Not really what we want. So, I don't know why the jackson/json behavior is flaky and different now, but I can (and did) modify the API-H so it can parse a json message whether or not it has a root element. Note that WorkflowResponse.java (in BPMN) and CamundaResponse.java (in the API-H) are basically the same bean representing the message format. Seems less than ideal to have two different classes. Also note that I changed the name of the "response" attribute of the WorkflowResponse and CamundaResponse classes to "content". Got tired of seeing this nonsense everywhere in the code: response.getResponse() Change-Id: Icaf70f8457de99e493cf882170fe778c620308c9 Issue-ID: SO-586 Issue-ID: SO-618 Signed-off-by: Rob Daugherty <rd472p@att.com>
2018-05-14Unwrap root value of request bodyArthur Martella1-1/+3
Change-Id: I04144bbd22773dfda08d7b13f16080930b7edb3a Issue-ID: SO-621 Signed-off-by: Arthur Martella <am153x@att.com>
2018-05-10Fix bugs reported by sonarEthan Lynn1-2/+3
Use new variable in convertJsonToCloudOrchestrationRequest, fix bug reported by sonar. Change-Id: I3f95bd410d950d4661584c1510a66ce90d6785d5 Issue-ID: SO-580 Signed-off-by: Ethan Lynn <ethanlynnl@vmware.com>
2018-05-08Add correlationId to ServiceInstancesRequestLukasz Muszkieta3-111/+63
Change-Id: Ia38fa1234f7b89c0574c74efe62d7b270c8ff987 Issue-ID: SO-596 Signed-off-by: Lukasz Muszkieta <lukasz.muszkieta@nokia.com>
2018-04-27Add correlationId to ServiceInstancesRequestLukasz Muszkieta1-7/+4
Change-Id: Idc5ee56660da31f08fd8ed3a67b7cd28f9844f43 Issue-ID: SO-596 Signed-off-by: Lukasz Muszkieta <lukasz.muszkieta@nokia.com>
2018-04-26Remove operation status set in api-handlerc001491071-261/+14
Remove operation status set in api-handler Change-Id: I579d25044130b0701231c0a2d42534e8c63e3ebd Issue-ID: SO-587 Signed-off-by: c00149107 <chenchuanyu@huawei.com>
2018-04-24Sonar Major Bug FixingSumapriya1-1/+1
File:E2EServiceInstances.java Line:L706 Sonar Link:https://sonar.onap.org/project/issues?assigned=false&id=org.onap.so%3Aso&open=AWJskpquRGy6eclHE4zt&resolved=false&rules=squid%3AS1132&severities=MAJOR Change-Id: Iba618d98de4153deefa3822240b3ec29226bef68 Issue-ID: SO-592 Signed-off-by: Sumapriya <SS00493505@techmahindra.com>
2018-04-23Sonar Major Bug FixingSumapriya2-3/+2
File: MsoVnfAdapterImpl.java Sonar Link: https://sonar.onap.org/project/issues?assigned=false&id=org.onap.so%3Aso&open=AWHCr-UwEU5FCDfKtmD4&resolved=false&rules=squid%3AS1481&severities=MAJOR Location: src/main/java/org/openecomp/mso/adapters/vnf/MsoVnfAdapterImpl.java Line No:L1888 File: E2EServiceInstances.java Sonar Link: https://sonar.onap.org/project/issues?assigned=false&id=org.onap.so%3Aso&open=AWHCr-iMEU5FCDfKtmO-&resolved=false&rules=squid%3AS1481&severities=MAJOR Location: src/main/java/org/openecomp/mso/apihandlerinfra/E2EServiceInstances.java Line No:L1326 File: MsoRequest.java Sonar Link: https://sonar.onap.org/project/issues?assigned=false&id=org.onap.so%3Aso&open=AWHCr-jXEU5FCDfKtmSQ&resolved=false&rules=squid%3AS1481&severities=MAJOR Location: src/main/java/org/openecomp/mso/apihandlerinfra/MsoRequest.java Line No:L916 File: SdncUnderlayVpnOperationClient.java Sonar Link: https://sonar.onap.org/project/issues?assigned=false&id=org.onap.so%3Aso&open=AWIP10X8RGy6eclHDJ5J&resolved=false&rules=squid%3AS1481&severities=MAJOR Location: src/main/java/org/opencomp/mso/bpmn/infrastructure/workflow/serviceTask/SdncUnderlayVpnOperationClient.java Line No:L70 Change-Id: Id2548cb7e9ef2a916d5adbd93fa5ded4fba6d7ab Issue-ID: SO-582 Signed-off-by: Sumapriya <SS00493505@techmahindra.com>
2018-04-23Sonar-Critical Bug FixingAS004650592-1456/+1456
File:RestfulUtil.java Line:L85 Sonar Link: https://sonar.onap.org/issues?assigned=false&projectUuids=AWHCr9eDWid2ybiDeORt&resolved=false&rules=squid%3AS1166&severities=BLOCKER%2CCRITICAL File:E2EServiceInstances.java Line:L263 L1059 Sonar Link: https://sonar.onap.org/issues?assigned=false&projectUuids=AWHCr9eDWid2ybiDeORt&resolved=false&rules=squid%3AS1166&severities=BLOCKER%2CCRITICAL File:OrchestrationRequests.java Line:L343 Sonar Link: https://sonar.onap.org/issues?assigned=false&projectUuids=AWHCr9eDWid2ybiDeORt&resolved=false&rules=squid%3AS1166&severities=BLOCKER%2CCRITICAL File:ASDCConfiguration.java Line:L286 L378 SonarLink: https://sonar.onap.org/issues?assigned=false&projectUuids=AWHCr9eDWid2ybiDeORt&resolved=false&rules=squid%3AS1166&severities=BLOCKER%2CCRITICAL File:ResourceInput.java Line:L287 Sonar Link: https://sonar.onap.org/issues?assigned=false&projectUuids=AWHCr9eDWid2ybiDeORt&resolved=false&rules=squid%3AS1166&severities=BLOCKER%2CCRITICAL File:ResourceRecipeRequest.java Line:L136 Sonar Link: https://sonar.onap.org/issues?assigned=false&projectUuids=AWHCr9eDWid2ybiDeORt&resolved=false&rules=squid%3AS1166&severities=BLOCKER%2CCRITICAL File:ResourceRequestBuilder.java Line:L108 L214 Sonar Link: https://sonar.onap.org/issues?assigned=false&projectUuids=AWHCr9eDWid2ybiDeORt&resolved=false&rules=squid%3AS1166&severities=BLOCKER%2CCRITICAL File:CheckAaiForCorrelationIdDelegate.java Line:L70 Sonar Link: https://sonar.onap.org/issues?assigned=false&projectUuids=AWHCr9eDWid2ybiDeORt&resolved=false&rules=squid%3AS1166&severities=BLOCKER%2CCRITICAL File:AbstractSdncOperationTask.java Line:L359 Sonar Link: https://sonar.onap.org/issues?assigned=false&projectUuids=AWHCr9eDWid2ybiDeORt&resolved=false&rules=squid%3AS1166&severities=BLOCKER%2CCRITICAL File:DmaapClient.java Line:L62 Sonar Link: https://sonar.onap.org/issues?assigned=false&projectUuids=AWHCr9eDWid2ybiDeORt&resolved=false&rules=squid%3AS1166&severities=BLOCKER%2CCRITICAL File:HasAnnotationPropertyWithValueMatcher.java Line:L60 Sonar Link: https://sonar.onap.org/issues?assigned=false&projectUuids=AWHCr9eDWid2ybiDeORt&resolved=false&rules=squid%3AS1166&severities=BLOCKER%2CCRITICAL Change-Id: Ic168a118790c31850a9f32f98465be5d52b8c96f Issue-ID: SO-581 Signed-off-by: AS00465059 <AS00465059@techmahindra.com>
2018-04-20updateE2EServiceInstance error staus conflictYulian Han1-23/+18
Change-Id: Idaa55084f5ecb0dd3636c232cebc14fa5f064305 Issue-ID: SO-578 Signed-off-by: Yulian Han <elaine.hanyulian@huawei.com>
2018-04-19Merge "AAIRestClient support for Basic Auth"Seshu Kumar M1-0/+10
2018-04-19E2EServiceInstance Update API bugs fixYulian Han1-5/+5
Change-Id: Idaa55084f5ecb0dd3636c232cebc14fa5f064300 Issue-ID: SO-578 Signed-off-by: Yulian Han <elaine.hanyulian@huawei.com>
2018-04-18AAIRestClient support for Basic AuthRob Daugherty1-0/+10
Adding support for Basic Auth in the AAI Rest Clients because ONAP uses this (whereas ECOMP uses 2-way SSL). In general, each AAI client will allow the user to configure properties called "aai.auth" and "mso.msoKey". If these are set, then the client will add the Authorization header to every request. Change-Id: I7c81ec05d2ec4a7dca131f2e9e19d341ac89b09f Issue-ID: SO-576 Signed-off-by: Rob Daugherty <rd472p@att.com>
2018-04-10CompareModel API use POST to instead GETYulian Han1-1/+1
Change-Id: Idaa55084f5ecb0dd3636c232cebc14fa5f064601 Issue-ID: SO-565 Signed-off-by: Yulian Han <elaine.hanyulian@huawei.com>
2018-03-29Merge "Add additional junits"Rob Daugherty3-0/+12
2018-03-29Add additional junitsSmokowski, Steve (ss835w)3-0/+12
Change-Id: Ifd792d5739394c29555c9b2a3447d7088d865a07 Issue-ID: SO-549 Signed-off-by: Smokowski, Steve (ss835w) <ss835w@us.att.com>
2018-03-28removed unused api-handler codeBenjamin, Max (mb388a)34-8848/+48
Change-Id: I4fc23794cc96092ca4144bd847de91cff4bdb02b Issue-ID: SO-548 Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
2018-03-28MSO API Handler Infra test repairArthur Martella1-1/+1
Repairing a number of tests in ServiceInstancesTest. Change-Id: Ic74015fb092433a0aa26d22ea726321d1c98efe3 Issue-ID: SO-489 Signed-off-by: Arthur Martella <amartell@research.att.com>