diff options
author | Angel Avila | 2015-02-03 20:47:51 +0000 |
---|---|---|
committer | Angel Avila | 2015-02-03 20:47:51 +0000 |
commit | 88b2ab62926953927c2241a988cba05784477e14 (patch) | |
tree | fcf5430a26f2954144902ef4fac853e59a845061 | |
parent | 9babe673433afb08388fa3ee2f4609b9a26f4a28 (diff) | |
download | org.eclipse.osee-dispo_refator.tar.gz org.eclipse.osee-dispo_refator.tar.xz org.eclipse.osee-dispo_refator.zip |
ALMOSTdispo_refator
Change-Id: If9646795fee6a2138cc411029a01cddfe2eae683
11 files changed, 212 insertions, 304 deletions
diff --git a/plugins/org.eclipse.osee.disposition.rest.test/src/org/eclipse/osee/disposition/rest/resources/DispoSetResourceTest.java b/plugins/org.eclipse.osee.disposition.rest.test/src/org/eclipse/osee/disposition/rest/resources/DispoSetResourceTest.java index 75cf31383be..bd5ca269dc9 100644 --- a/plugins/org.eclipse.osee.disposition.rest.test/src/org/eclipse/osee/disposition/rest/resources/DispoSetResourceTest.java +++ b/plugins/org.eclipse.osee.disposition.rest.test/src/org/eclipse/osee/disposition/rest/resources/DispoSetResourceTest.java @@ -120,8 +120,8 @@ public class DispoSetResourceTest { public void testGetAll() throws JSONException { // No Sets List<DispoSet> emptyResultSet = new ArrayList<DispoSet>(); - when(dispositionApi.getDispoSets(program)).thenReturn(emptyResultSet); - Response noSetsResponse = resource.getAllDispoSets("testScript"); + when(dispositionApi.getDispoSets(program, "testScript")).thenReturn(emptyResultSet); + Iterable<DispoSet> noSetsResponse = resource.getAllDispoSets("testScript"); String messageActual = (String) noSetsResponse.getEntity(); assertEquals(Response.Status.NOT_FOUND.getStatusCode(), noSetsResponse.getStatus()); assertEquals("[]", messageActual); diff --git a/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/internal/DispoApiImpl.java b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/internal/DispoApiImpl.java index 08d4cdba96a..7f08be7c02a 100644 --- a/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/internal/DispoApiImpl.java +++ b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/internal/DispoApiImpl.java @@ -44,7 +44,6 @@ import org.eclipse.osee.framework.jdk.core.type.OseeCoreException; import org.eclipse.osee.framework.jdk.core.type.ResultSet; import org.eclipse.osee.logger.Log; import org.eclipse.osee.orcs.data.ArtifactReadable; -import org.json.JSONException; /** * @author Angel Avila @@ -445,11 +444,7 @@ public class DispoApiImpl implements DispoApi { } List<DispoItem> toEdit = Collections.emptyList(); OperationReport report = new OperationReport(); - try { - toEdit = copier.copyEntireSet(destinationItems, getDispoItems(program, source.getGuid()), true, report); - } catch (JSONException ex) { - report.addOtherMessage(ex.getMessage()); - } + toEdit = copier.copyEntireSet(destinationItems, getDispoItems(program, source.getGuid()), true, report); if (!toEdit.isEmpty()) { editDispoItems(program, toEdit, false); } diff --git a/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/internal/importer/DispoItemDataCopier.java b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/internal/importer/DispoItemDataCopier.java index d473df33204..6696ae0b84a 100644 --- a/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/internal/importer/DispoItemDataCopier.java +++ b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/internal/importer/DispoItemDataCopier.java @@ -13,7 +13,6 @@ package org.eclipse.osee.disposition.rest.internal.importer; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; -import java.util.Iterator; import java.util.List; import java.util.Map; import org.eclipse.osee.disposition.model.Discrepancy; @@ -23,18 +22,14 @@ import org.eclipse.osee.disposition.model.DispoItemData; import org.eclipse.osee.disposition.model.DispoStrings; import org.eclipse.osee.disposition.rest.internal.LocationRangesCompressor; import org.eclipse.osee.disposition.rest.internal.report.OperationReport; -import org.eclipse.osee.disposition.rest.util.DispoUtil; import org.eclipse.osee.framework.jdk.core.type.Pair; -import org.json.JSONArray; -import org.json.JSONException; -import org.json.JSONObject; /** * @author Angel Avila */ public class DispoItemDataCopier { - public static void copyOldItemData(DispoItem sourceItem, DispoItemData destItem, OperationReport report) throws JSONException { + public static void copyOldItemData(DispoItem sourceItem, DispoItemData destItem, OperationReport report) { StringBuilder message = new StringBuilder(); Map<String, Discrepancy> destItemDiscrepancies = destItem.getDiscrepanciesList(); @@ -49,42 +44,33 @@ public class DispoItemDataCopier { report.addMessageForItem(destItem.getName(), message.toString()); } - private static void updateTestPointNumbersForAnntations(HashMap<String, Integer> idsToUpdate, JSONArray annotations, JSONObject discrepancies, StringBuilder message) throws JSONException { - for (int j = 0; j < annotations.length(); j++) { - JSONObject annotationAsJson = annotations.getJSONObject(j); - DispoAnnotationData annotation = DispoUtil.jsonObjToDispoAnnotationData(annotationAsJson); - JSONArray idsOfCoveredDiscrepancies = annotation.getIdsOfCoveredDiscrepancies(); - + private static void updateTestPointNumbersForAnntations(HashMap<String, Integer> idsToUpdate, List<DispoAnnotationData> annotations, Map<String, Discrepancy> discrepancies, StringBuilder message) { + for (DispoAnnotationData annotation : annotations) { + List<String> idsOfCoveredDiscrepancies = annotation.getIdsOfCoveredDiscrepancies(); updateIdsCoveredDiscrepancies(idsToUpdate, idsOfCoveredDiscrepancies, annotations, discrepancies, annotation, message); } } - private static void updateIdsCoveredDiscrepancies(HashMap<String, Integer> idsToUpdate, JSONArray idsOfCoveredDiscrepancies, JSONArray annotations, JSONObject discrepancies, DispoAnnotationData annotation, StringBuilder message) throws JSONException { - int length = idsOfCoveredDiscrepancies.length(); - for (int i = 0; i < length; i++) { - String coveredId = idsOfCoveredDiscrepancies.getString(i); + private static void updateIdsCoveredDiscrepancies(HashMap<String, Integer> idsToUpdate, List<String> idsOfCoveredDiscrepancies, List<DispoAnnotationData> annotations, Map<String, Discrepancy> discrepancies, DispoAnnotationData annotation, StringBuilder message) { + for (String coveredId : idsOfCoveredDiscrepancies) { if (idsToUpdate.containsKey(coveredId)) { String newLocRef = rebuildLocRef(idsOfCoveredDiscrepancies, discrepancies, idsToUpdate, message); if (!newLocRef.isEmpty()) { annotation.setLocationRefs(newLocRef); } - JSONObject updatedAnnotationAsJson = DispoUtil.annotationToJsonObj(annotation); - annotations.put(annotation.getIndex(), updatedAnnotationAsJson); + annotations.add(annotation.getIndex(), annotation); break; // We can break here because we're going reconstruct the whole locRefs for the annotation, no need to keep checking } } } - private static String rebuildLocRef(JSONArray idsOfCoveredDiscrepancies, JSONObject discrepancies, HashMap<String, Integer> idsToUpdate, StringBuilder message) throws JSONException { + private static String rebuildLocRef(List<String> idsOfCoveredDiscrepancies, Map<String, Discrepancy> discrepancies, HashMap<String, Integer> idsToUpdate, StringBuilder message) { boolean isGaveup = false; - int length = idsOfCoveredDiscrepancies.length(); List<Integer> testPointNumber = new ArrayList<Integer>(); - for (int i = 0; i < length; i++) { - String id = idsOfCoveredDiscrepancies.getString(i); - if (discrepancies.has(id)) { - JSONObject discrepancyAsObject = discrepancies.getJSONObject(id); - Discrepancy discrepancy = DispoUtil.jsonObjToDiscrepancy(discrepancyAsObject); + for (String id : idsOfCoveredDiscrepancies) { + if (discrepancies.containsKey(id)) { + Discrepancy discrepancy = discrepancies.get(id); testPointNumber.add(discrepancy.getLocation()); } else if (idsToUpdate.containsKey(id)) { int justTestPoint = idsToUpdate.get(id); @@ -107,17 +93,13 @@ public class DispoItemDataCopier { return toReturn; } - @SuppressWarnings("unchecked") - private static HashMap<String, Integer> matchupOldDiscrepancies(JSONObject oldDiscrepancies, JSONObject newDiscrepancies, JSONArray annotations, StringBuilder message, Boolean needsReview) throws JSONException { + private static HashMap<String, Integer> matchupOldDiscrepancies(Map<String, Discrepancy> oldDiscrepancies, Map<String, Discrepancy> newDiscrepancies, List<DispoAnnotationData> annotations, StringBuilder message, Boolean needsReview) { HashMap<String, Pair<Discrepancy, Boolean>> textToNewDiscrepancies = createTextToDiscrepanciesMap(newDiscrepancies); HashMap<String, Integer> idsToUpdate = new HashMap<String, Integer>(); - Iterator<String> iterator = oldDiscrepancies.keys(); - while (iterator.hasNext()) { - String key = iterator.next(); - JSONObject oldDiscrepancyAsJson = oldDiscrepancies.getJSONObject(key); - Discrepancy oldDiscrepany = DispoUtil.jsonObjToDiscrepancy(oldDiscrepancyAsJson); + for (String key : oldDiscrepancies.keySet()) { + Discrepancy oldDiscrepany = oldDiscrepancies.get(key); String normalizedText = oldDiscrepany.getText().replaceFirst(".*?\\.", ""); Pair<Discrepancy, Boolean> matchedPair = textToNewDiscrepancies.get(normalizedText); @@ -148,9 +130,8 @@ public class DispoItemDataCopier { idsToUpdate.put(idOfOldDiscrep, newTestPointNumber); } - JSONObject matchedNewDiscrepAsJson = DispoUtil.discrepancyToJsonObj(matchedNewDiscrepancy); newDiscrepancies.remove(idToReplace); - newDiscrepancies.put(idOfOldDiscrep, matchedNewDiscrepAsJson); + newDiscrepancies.put(idOfOldDiscrep, matchedNewDiscrepancy); } else { // This discrepancy doesn't exist on the new Item message.append("Test Point:"); @@ -165,45 +146,38 @@ public class DispoItemDataCopier { return idsToUpdate; } - private static void removeDiscrepancyFromAnnotation(Discrepancy toRemove, JSONArray annotations) throws JSONException { - for (int i = 0; i < annotations.length(); i++) { - JSONObject annotationAsJson = annotations.getJSONObject(i); - DispoAnnotationData annotation = DispoUtil.jsonObjToDispoAnnotationData(annotationAsJson); - JSONArray idsOfCoveredDiscrepancies = annotation.getIdsOfCoveredDiscrepancies(); + private static void removeDiscrepancyFromAnnotation(Discrepancy toRemove, List<DispoAnnotationData> annotations) { + for (DispoAnnotationData annotation : annotations) { + List<String> idsOfCoveredDiscrepancies = annotation.getIdsOfCoveredDiscrepancies(); if (idsOfCoveredDiscrepancies.toString().contains(toRemove.getId())) { replaceIdInList(toRemove, idsOfCoveredDiscrepancies); annotation.setIsConnected(false); } - JSONObject updatedAnnotationAsJson = DispoUtil.annotationToJsonObj(annotation); - annotations.put(annotation.getIndex(), updatedAnnotationAsJson); + annotations.add(annotation.getIndex(), annotation); } } - private static void replaceIdInList(Discrepancy discrepany, JSONArray idsList) throws JSONException { - int length = idsList.length(); + private static void replaceIdInList(Discrepancy discrepany, List<String> idsList) { String id = discrepany.getId(); - for (int i = 0; i < length; i++) { - if (id.equals(idsList.getString(i))) { + for (int i = 0; i < idsList.size(); i++) { + if (id.equals(idsList.get(i))) { int testPoint = discrepany.getLocation() * -1; - String newMockId = DispoStrings.DeletedDiscrepancy + testPoint; - idsList.put(i, newMockId); + String newFakeId = DispoStrings.DeletedDiscrepancy + testPoint; + idsList.add(i, newFakeId); break; } } } - @SuppressWarnings("unchecked") - private static HashMap<String, Pair<Discrepancy, Boolean>> createTextToDiscrepanciesMap(JSONObject discrepancies) throws JSONException { + private static HashMap<String, Pair<Discrepancy, Boolean>> createTextToDiscrepanciesMap(Map<String, Discrepancy> discrepancies) { HashMap<String, Pair<Discrepancy, Boolean>> textToDiscrepancy = new HashMap<String, Pair<Discrepancy, Boolean>>(); - Iterator<String> iterator = discrepancies.keys(); - while (iterator.hasNext()) { - String key = iterator.next(); - JSONObject discrepancyAsObject = discrepancies.getJSONObject(key); - Discrepancy discrepancy = DispoUtil.jsonObjToDiscrepancy(discrepancyAsObject); + for (String key : discrepancies.keySet()) { + Discrepancy discrepancy = discrepancies.get(key); String normalizedText = discrepancy.getText().replaceFirst(".*?\\.", ""); // Want to exclude Point number from text we match with - Pair newPair = new Pair<Discrepancy, Boolean>(discrepancy, textToDiscrepancy.containsKey(normalizedText)); + Pair<Discrepancy, Boolean> newPair = + new Pair<Discrepancy, Boolean>(discrepancy, textToDiscrepancy.containsKey(normalizedText)); textToDiscrepancy.put(normalizedText, newPair); } diff --git a/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/internal/importer/coverage/LisFileParser.java b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/internal/importer/coverage/LisFileParser.java index bb36176a371..163ff623600 100644 --- a/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/internal/importer/coverage/LisFileParser.java +++ b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/internal/importer/coverage/LisFileParser.java @@ -20,7 +20,6 @@ import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; -import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; @@ -35,7 +34,6 @@ import org.eclipse.osee.disposition.rest.internal.DispoConnector; import org.eclipse.osee.disposition.rest.internal.DispoDataFactory; import org.eclipse.osee.disposition.rest.internal.importer.AnnotationCopier; import org.eclipse.osee.disposition.rest.internal.report.OperationReport; -import org.eclipse.osee.disposition.rest.util.DispoUtil; import org.eclipse.osee.framework.core.util.Result; import org.eclipse.osee.framework.jdk.core.type.OseeCoreException; import org.eclipse.osee.framework.jdk.core.type.Pair; @@ -51,9 +49,6 @@ import org.eclipse.osee.vcast.model.VCastInstrumentedFile; import org.eclipse.osee.vcast.model.VCastResult; import org.eclipse.osee.vcast.model.VCastSourceFileJoin; import org.eclipse.osee.vcast.model.VCastStatementCoverage; -import org.json.JSONArray; -import org.json.JSONException; -import org.json.JSONObject; /** * @author Angel Avila @@ -94,34 +89,27 @@ public class LisFileParser implements DispoImporterApi { try { processResult(result, report); } catch (Exception ex) { - // + report.addOtherMessage(ex.toString()); } } - try { - processExceptionHandled(report); - } catch (JSONException ex) { - // - } + processExceptionHandled(report); Collection<DispoItemData> values = datIdToItem.values(); for (DispoItemData item : values) { dataFactory.initDispoItem(item); - item.setTotalPoints(String.valueOf(item.getAnnotationsList().length() + item.getDiscrepanciesList().length())); + item.setTotalPoints(String.valueOf(item.getAnnotationsList().size() + item.getDiscrepanciesList().size())); } // This is a reimport so we'll need to copy all the annotations if (!exisitingItems.isEmpty()) { AnnotationCopier copier = new AnnotationCopier(dispoConnector); - try { - List<DispoItemData> itemsFromImport = new ArrayList<DispoItemData>(); - itemsFromImport.addAll(values); + List<DispoItemData> itemsFromImport = new ArrayList<DispoItemData>(); + itemsFromImport.addAll(values); - toReturn = copier.copyEntireSet(itemsFromImport, exisitingItems.values(), false, report); - } catch (JSONException ex) { - // - } + toReturn = copier.copyEntireSet(itemsFromImport, exisitingItems.values(), false, report); + // } else { toReturn = new ArrayList<DispoItem>(); toReturn.addAll(values); @@ -129,7 +117,7 @@ public class LisFileParser implements DispoImporterApi { return toReturn; } - private void processExceptionHandled(OperationReport report) throws JSONException { + private void processExceptionHandled(OperationReport report) { for (String datId : datIdsCoveredByException) { Matcher matcher = Pattern.compile("\\d*:\\d*:").matcher(datId); matcher.find(); @@ -197,7 +185,7 @@ public class LisFileParser implements DispoImporterApi { private void processFunction(String lisFileName, VCastLisFileParser lisFileParser, int fileNum, VCastDataStore dataStore, VCastInstrumentedFile instrumentedFile, VCastFunction function, OperationReport report) { int functionNum = function.getFindex(); DispoItemData newItem = new DispoItemData(); - newItem.setAnnotationsList(new JSONArray()); + newItem.setAnnotationsList(new ArrayList<DispoAnnotationData>()); newItem.setName(lisFileName + "." + function.getName()); String datId = generateDatId(fileNum, functionNum); @@ -213,18 +201,18 @@ public class LisFileParser implements DispoImporterApi { instrumentedFile.getId(), function.getId(), ex.getMessage()); } - Map<String, JSONObject> discrepancies = new HashMap<String, JSONObject>(); + Map<String, Discrepancy> discrepancies = new HashMap<String, Discrepancy>(); for (VCastStatementCoverage statementCoverageItem : statementCoverageItems) { processStatement(lisFileName, lisFileParser, fileNum, functionNum, function, statementCoverageItem, discrepancies, report); } - newItem.setDiscrepanciesList(new JSONObject(discrepancies)); + newItem.setDiscrepanciesList(discrepancies); // add discrepancies to item } - private void processStatement(String lisFileName, VCastLisFileParser lisFileParser, int fileNum, int functionNum, VCastFunction function, VCastStatementCoverage statementCoverageItem, Map<String, JSONObject> discrepancies, OperationReport report) { + private void processStatement(String lisFileName, VCastLisFileParser lisFileParser, int fileNum, int functionNum, VCastFunction function, VCastStatementCoverage statementCoverageItem, Map<String, Discrepancy> discrepancies, OperationReport report) { // Create discrepancy for every line, annotate with test usnit or exception handled Integer functionNumber = function.getFindex(); Integer lineNumber = statementCoverageItem.getLine(); @@ -243,7 +231,7 @@ public class LisFileParser implements DispoImporterApi { newDiscrepancy.setLocation(lineNumber); String id = String.valueOf(Lib.generateUuid()); newDiscrepancy.setId(id); - discrepancies.put(id, new JSONObject(newDiscrepancy)); + discrepancies.put(id, newDiscrepancy); // Is covered by exception handling, pass as parameter from DispoApiImpl if (lineData.getSecond()) { @@ -305,13 +293,9 @@ public class LisFileParser implements DispoImporterApi { } } - private void removeDisrepancy(String location, JSONObject discrepancies) throws JSONException { - @SuppressWarnings("unchecked") - Iterator<String> iterator = discrepancies.keys(); - while (iterator.hasNext()) { - String key = iterator.next(); - JSONObject discrepancyAsJson = discrepancies.getJSONObject(key); - Discrepancy discrepancy = DispoUtil.jsonObjToDiscrepancy(discrepancyAsJson); + private void removeDisrepancy(String location, Map<String, Discrepancy> discrepancies) { + for (String key : discrepancies.keySet()) { + Discrepancy discrepancy = discrepancies.get(key); if (String.valueOf(discrepancy.getLocation()).equals(location)) { discrepancies.remove(key); break; @@ -320,7 +304,7 @@ public class LisFileParser implements DispoImporterApi { } - private void addAnnotationForForCoveredLine(DispoItemData item, String location, String resolutionType, String coveringFile) throws JSONException { + private void addAnnotationForForCoveredLine(DispoItemData item, String location, String resolutionType, String coveringFile) { DispoAnnotationData newAnnotation = new DispoAnnotationData(); dataFactory.initAnnotation(newAnnotation); String idOfNewAnnotation = dataFactory.getNewId(); @@ -333,10 +317,10 @@ public class LisFileParser implements DispoImporterApi { newAnnotation.setIsResolutionValid(true); dispoConnector.connectAnnotation(newAnnotation, item.getDiscrepanciesList()); - JSONArray annotationsList = item.getAnnotationsList(); - int newIndex = annotationsList.length(); + List<DispoAnnotationData> annotationsList = item.getAnnotationsList(); + int newIndex = annotationsList.size(); newAnnotation.setIndex(newIndex); - annotationsList.put(newIndex, DispoUtil.annotationToJsonObj(newAnnotation)); + annotationsList.add(newIndex, newAnnotation); } private Collection<VCastResult> getResultFiles(VCastDataStore dataStore) { diff --git a/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/internal/report/ExportSet.java b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/internal/report/ExportSet.java index 2732960e0cd..61c9510d086 100644 --- a/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/internal/report/ExportSet.java +++ b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/internal/report/ExportSet.java @@ -26,9 +26,6 @@ import org.eclipse.osee.disposition.rest.internal.LocationRangesCompressor; import org.eclipse.osee.disposition.rest.util.DispoUtil; import org.eclipse.osee.framework.jdk.core.type.OseeCoreException; import org.eclipse.osee.framework.jdk.core.util.io.xml.ExcelXmlWriter; -import org.json.JSONArray; -import org.json.JSONException; -import org.json.JSONObject; /** * @author Angel Avila @@ -87,12 +84,10 @@ public class ExportSet { } - private static String prettifyAnnotations(JSONArray annotations) throws JSONException { + private static String prettifyAnnotations(List<DispoAnnotationData> annotations) { StringBuilder sb = new StringBuilder(); - for (int i = 0; i < annotations.length(); i++) { - JSONObject annotationJson = annotations.getJSONObject(i); - DispoAnnotationData annotation = DispoUtil.jsonObjToDispoAnnotationData(annotationJson); + for (DispoAnnotationData annotation : annotations) { sb.append(annotation.getLocationRefs()); sb.append(":"); sb.append(annotation.getResolution()); diff --git a/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/messages/DispoItemMessageWriter.java b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/messages/DispoItemMessageWriter.java index bd20adf1188..f1b1d1ca8c9 100644 --- a/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/messages/DispoItemMessageWriter.java +++ b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/messages/DispoItemMessageWriter.java @@ -13,41 +13,46 @@ package org.eclipse.osee.disposition.rest.messages; import java.io.IOException; import java.io.OutputStream; import java.lang.annotation.Annotation; +import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import java.nio.charset.Charset; +import java.util.List; import javax.ws.rs.WebApplicationException; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.MultivaluedMap; import javax.ws.rs.ext.MessageBodyWriter; -import org.eclipse.osee.disposition.model.DispoItemData; -import org.json.JSONException; +import org.eclipse.osee.disposition.model.DispoItem; +import org.eclipse.osee.disposition.rest.util.DispoUtil; +import org.json.JSONArray; import org.json.JSONObject; /** * @author Angel Avila */ -public class DispoItemMessageWriter implements MessageBodyWriter<DispoItemData> { +public class DispoItemMessageWriter implements MessageBodyWriter<List<DispoItem>> { @Override public boolean isWriteable(Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType) { - return type == DispoItemData.class; + if (genericType instanceof ParameterizedType) { + return ((ParameterizedType) genericType).getActualTypeArguments()[0] == DispoItem.class; + } else { + return false; + } } @Override - public long getSize(DispoItemData dispoItem, Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType) { + public long getSize(List<DispoItem> dispoItems, Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType) { return -1; } @Override - public void writeTo(DispoItemData dispoItem, Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType, MultivaluedMap<String, Object> httpHeaders, OutputStream entityStream) throws IOException, WebApplicationException { - JSONObject jsonObject = new JSONObject(dispoItem); - try { - jsonObject.put("annotationsList", dispoItem.getAnnotationsList()); - jsonObject.put("discrepanciesList", dispoItem.getDiscrepanciesList()); - } catch (JSONException ex) { - throw new IOException("Could not get Lists from Disposition Item", ex); + public void writeTo(List<DispoItem> dispoItems, Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType, MultivaluedMap<String, Object> httpHeaders, OutputStream entityStream) throws IOException, WebApplicationException { + JSONArray jArray = new JSONArray(); + for (DispoItem item : dispoItems) { + JSONObject jObject = DispoUtil.dispoItemToJsonObj(item); + jArray.put(jObject); } - String jsonString = jsonObject.toString(); + String jsonString = jArray.toString(); entityStream.write(jsonString.getBytes(Charset.forName("UTF-8"))); } } diff --git a/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/messages/DispoSetMessageWriter.java b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/messages/DispoSetMessageWriter.java deleted file mode 100644 index cd861410415..00000000000 --- a/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/messages/DispoSetMessageWriter.java +++ /dev/null @@ -1,55 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2013 Boeing. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Boeing - initial API and implementation - *******************************************************************************/ -package org.eclipse.osee.disposition.rest.messages; - -import java.io.IOException; -import java.io.OutputStream; -import java.lang.annotation.Annotation; -import java.lang.reflect.ParameterizedType; -import java.lang.reflect.Type; -import java.nio.charset.Charset; -import javax.ws.rs.WebApplicationException; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.ext.MessageBodyWriter; -import org.eclipse.osee.disposition.model.DispoSet; -import org.json.JSONObject; - -/** - * @author Angel Avila - */ -public class DispoSetMessageWriter implements MessageBodyWriter<DispoSet> { - - @Override - public boolean isWriteable(Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType) { - if (genericType instanceof ParameterizedType) { - return ((ParameterizedType) genericType).getActualTypeArguments()[0] == DispoSet.class; - } else { - return false; - } - } - - @Override - public long getSize(DispoSet dispoSet, Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType) { - return -1; - } - - @Override - public void writeTo(DispoSet dispoSetArt, Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType, MultivaluedMap<String, Object> httpHeaders, OutputStream entityStream) throws IOException, WebApplicationException { - // DispoUtil.setArtToSetData(dispoSet) - // JSONObject jsonObject = DispoUtil.dispoSetToJsonObj(dispoSet); - System.out.println(""); - JSONObject jsonObject = new JSONObject(dispoSetArt); - String jsonString = jsonObject.toString(); - entityStream.write(jsonString.getBytes(Charset.forName("UTF-8"))); - } - -} diff --git a/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/resources/DispoSetResource.java b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/resources/DispoSetResource.java index 5ab8482d689..cbd7e4f4994 100644 --- a/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/resources/DispoSetResource.java +++ b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/resources/DispoSetResource.java @@ -31,9 +31,7 @@ import org.eclipse.osee.disposition.model.DispoSet; import org.eclipse.osee.disposition.model.DispoSetData; import org.eclipse.osee.disposition.model.DispoSetDescriptorData; import org.eclipse.osee.disposition.rest.DispoApi; -import org.eclipse.osee.disposition.rest.util.DispoUtil; import org.eclipse.osee.framework.jdk.core.util.Strings; -import org.json.JSONArray; import org.json.JSONException; /** @@ -74,7 +72,7 @@ public class DispoSetResource { String createdSetId = dispoApi.createDispoSet(program, descriptor).getGuid(); DispoSet createdSet = dispoApi.getDispoSetById(program, createdSetId); status = Status.CREATED; - response = Response.status(status).entity(DispoUtil.setArtToSetData(createdSet)).build(); + response = Response.status(status).entity(createdSet).build(); } else { status = Status.CONFLICT; response = Response.status(status).entity(DispoMessages.Set_ConflictingNames).build(); @@ -103,7 +101,7 @@ public class DispoSetResource { if (result == null) { response = Response.status(Response.Status.NOT_FOUND).entity(DispoMessages.Set_NotFound).build(); } else { - response = Response.status(Response.Status.OK).entity(DispoUtil.setArtToSetData(result)).build(); + response = Response.status(Response.Status.OK).entity(result).build(); } return response; } @@ -185,20 +183,9 @@ public class DispoSetResource { @Path("{setId}/search") @GET @Produces(MediaType.APPLICATION_JSON) - public Response getDispoItemsByAnnotationText(@PathParam("setId") String setId, @QueryParam("value") String value) { - Response response; + public Iterable<DispoItem> getDispoItemsByAnnotationText(@PathParam("setId") String setId, @QueryParam("value") String value) { Collection<DispoItem> foundItems = dispoApi.getDispoItemByAnnotationText(program, setId, value); - if (foundItems.isEmpty()) { - response = Response.status(Response.Status.NOT_FOUND).entity(DispoMessages.Item_NotFound).build(); - } else { - JSONArray jArray = new JSONArray(); - for (DispoItem item : foundItems) { - jArray.put(DispoUtil.dispoItemToJsonObj(item)); - } - - response = Response.status(Response.Status.OK).entity(jArray.toString()).build(); - } - return response; + return foundItems; } } diff --git a/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/util/DispoUtil.java b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/util/DispoUtil.java index 00ef7a89ef0..ed00143a508 100644 --- a/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/util/DispoUtil.java +++ b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/util/DispoUtil.java @@ -17,7 +17,9 @@ import org.eclipse.osee.disposition.model.Discrepancy; import org.eclipse.osee.disposition.model.DispoAnnotationData; import org.eclipse.osee.disposition.model.DispoItem; import org.eclipse.osee.disposition.model.DispoItemData; +import org.eclipse.osee.disposition.model.DispoSetData; import org.eclipse.osee.disposition.model.DispoStrings; +import org.eclipse.osee.disposition.model.Note; import org.eclipse.osee.disposition.rest.internal.LocationRangesCompressor; import org.eclipse.osee.framework.jdk.core.type.OseeCoreException; import org.json.JSONArray; @@ -153,103 +155,106 @@ public final class DispoUtil { } // - // public static DispoItemData jsonObjToDispoItem(JSONObject jsonObject) { - // DispoItemData dispoItem = new DispoItemData(); - // try { - // if (jsonObject.has("name")) { - // dispoItem.setName(jsonObject.getString("name")); - // } - // if (jsonObject.has("guid")) { - // dispoItem.setGuid(jsonObject.getString("guid")); - // } - // if (jsonObject.has("status")) { - // dispoItem.setStatus(jsonObject.getString("status")); - // } - // if (jsonObject.has("totalPoints")) { - // dispoItem.setTotalPoints(jsonObject.getString("totalPoints")); - // } - // if (jsonObject.has("needsRerun")) { - // dispoItem.setNeedsRerun(jsonObject.getBoolean("needsRerun")); - // } - // if (jsonObject.has("version")) { - // dispoItem.setVersion(jsonObject.getString("version")); - // } - // if (jsonObject.has("assignee")) { - // dispoItem.setAssignee(jsonObject.getString("assignee")); - // } - // if (jsonObject.has("category")) { - // dispoItem.setCategory(jsonObject.getString("category")); - // } - // if (jsonObject.has("machine")) { - // dispoItem.setMachine(jsonObject.getString("machine")); - // } - // if (jsonObject.has("elapsedTime")) { - // dispoItem.setElapsedTime(jsonObject.getString("elapsedTime")); - // } - // if (jsonObject.has("aborted")) { - // dispoItem.setAborted(jsonObject.getBoolean("aborted")); - // } - // if (jsonObject.has("itemNotes")) { - // dispoItem.setItemNotes(jsonObject.getString("itemNotes")); - // } - // } catch (JSONException ex) { - // throw new OseeCoreException("Error deserializing a Dispositionable Item.", ex); - // } - // - // return dispoItem; - // } - // - // public static DispoSetData jsonObjToDispoSet(JSONObject jsonObject) { - // DispoSetData dispoSet = new DispoSetData(); - // try { - // if (jsonObject.has("importPath")) { - // dispoSet.setImportPath(jsonObject.getString("importPath")); - // } - // if (jsonObject.has("name")) { - // dispoSet.setName(jsonObject.getString("name")); - // } - // if (jsonObject.has("operation")) { - // dispoSet.setOperation(jsonObject.getString("operation")); - // } - // if (jsonObject.has("notesList")) { - // JSONArray jArray = jsonObject.getJSONArray("notesList"); - // List<Note> notesList = new ArrayList<Note>(); - // for (int i = 0; i < jArray.length(); i++) { - // notesList.add(jsonObjToNote(jArray.getJSONObject(i))); - // } - // dispoSet.setNotesList(notesList); - // } - // } catch (JSONException ex) { - // throw new OseeCoreException("Error deserializing a Dispositionable Item.", ex); - // } - // return dispoSet; - // } + public static DispoItemData jsonObjToDispoItem(JSONObject jsonObject) { + DispoItemData dispoItem = new DispoItemData(); + try { + if (jsonObject.has("name")) { + dispoItem.setName(jsonObject.getString("name")); + } + if (jsonObject.has("guid")) { + dispoItem.setGuid(jsonObject.getString("guid")); + } + if (jsonObject.has("status")) { + dispoItem.setStatus(jsonObject.getString("status")); + } + if (jsonObject.has("totalPoints")) { + dispoItem.setTotalPoints(jsonObject.getString("totalPoints")); + } + if (jsonObject.has("needsRerun")) { + dispoItem.setNeedsRerun(jsonObject.getBoolean("needsRerun")); + } + if (jsonObject.has("version")) { + dispoItem.setVersion(jsonObject.getString("version")); + } + if (jsonObject.has("assignee")) { + dispoItem.setAssignee(jsonObject.getString("assignee")); + } + if (jsonObject.has("category")) { + dispoItem.setCategory(jsonObject.getString("category")); + } + if (jsonObject.has("machine")) { + dispoItem.setMachine(jsonObject.getString("machine")); + } + if (jsonObject.has("elapsedTime")) { + dispoItem.setElapsedTime(jsonObject.getString("elapsedTime")); + } + if (jsonObject.has("aborted")) { + dispoItem.setAborted(jsonObject.getBoolean("aborted")); + } + if (jsonObject.has("itemNotes")) { + dispoItem.setItemNotes(jsonObject.getString("itemNotes")); + } + } catch (JSONException ex) { + throw new OseeCoreException("Error deserializing a Dispositionable Item.", ex); + } + + return dispoItem; + } + // - // public static JSONObject dispoItemToJsonObj(DispoItem dispoItem) { - // JSONObject jsonObject = new JSONObject(); - // try { - // jsonObject.put("discrepanciesAsRanges", discrepanciesToString(dispoItem.getDiscrepanciesList())); - // jsonObject.put("failureCount", dispoItem.getDiscrepanciesList().size()); - // jsonObject.put("name", dispoItem.getName()); - // jsonObject.put("status", dispoItem.getStatus()); - // jsonObject.put("totalPoints", dispoItem.getTotalPoints()); - // jsonObject.put("assignee", dispoItem.getAssignee()); - // jsonObject.put("needsRerun", dispoItem.getNeedsRerun()); - // jsonObject.put("guid", dispoItem.getGuid()); - // jsonObject.put("category", dispoItem.getCategory()); - // jsonObject.put("machine", dispoItem.getMachine()); - // jsonObject.put("elapsedTime", dispoItem.getElapsedTime()); - // jsonObject.put("aborted", dispoItem.getAborted()); - // jsonObject.put("lastUpdated", dispoItem.getLastUpdate()); - // jsonObject.put("creationDate", dispoItem.getCreationDate()); - // jsonObject.put("itemNotes", dispoItem.getItemNotes()); - // jsonObject.put("version", dispoItem.getVersion()); - // } catch (JSONException ex) { - // throw new OseeCoreException("Error deserializing a Dispositionable Item.", ex); - // } + public static DispoSetData jsonObjToDispoSet(JSONObject jsonObject) { + DispoSetData dispoSet = new DispoSetData(); + try { + if (jsonObject.has("importPath")) { + dispoSet.setImportPath(jsonObject.getString("importPath")); + } + if (jsonObject.has("name")) { + dispoSet.setName(jsonObject.getString("name")); + } + if (jsonObject.has("operation")) { + dispoSet.setOperation(jsonObject.getString("operation")); + } + if (jsonObject.has("notesList")) { + JSONArray jArray = jsonObject.getJSONArray("notesList"); + List<Note> notesList = new ArrayList<Note>(); + for (int i = 0; i < jArray.length(); i++) { + notesList.add(jsonObjToNote(jArray.getJSONObject(i))); + } + dispoSet.setNotesList(notesList); + } + } catch (JSONException ex) { + throw new OseeCoreException("Error deserializing a Dispositionable Item.", ex); + } + return dispoSet; + } + // - // return jsonObject; - // } + public static JSONObject dispoItemToJsonObj(DispoItem dispoItem) { + JSONObject jsonObject = new JSONObject(); + try { + jsonObject.put("discrepanciesAsRanges", discrepanciesToString(dispoItem.getDiscrepanciesList())); + jsonObject.put("failureCount", dispoItem.getDiscrepanciesList().size()); + jsonObject.put("name", dispoItem.getName()); + jsonObject.put("status", dispoItem.getStatus()); + jsonObject.put("totalPoints", dispoItem.getTotalPoints()); + jsonObject.put("assignee", dispoItem.getAssignee()); + jsonObject.put("needsRerun", dispoItem.getNeedsRerun()); + jsonObject.put("guid", dispoItem.getGuid()); + jsonObject.put("category", dispoItem.getCategory()); + jsonObject.put("machine", dispoItem.getMachine()); + jsonObject.put("elapsedTime", dispoItem.getElapsedTime()); + jsonObject.put("aborted", dispoItem.getAborted()); + jsonObject.put("lastUpdated", dispoItem.getLastUpdate()); + jsonObject.put("creationDate", dispoItem.getCreationDate()); + jsonObject.put("itemNotes", dispoItem.getItemNotes()); + jsonObject.put("version", dispoItem.getVersion()); + } catch (JSONException ex) { + throw new OseeCoreException("Error deserializing a Dispositionable Item.", ex); + } + + return jsonObject; + } + // public static JSONObject discrepancyToJsonObj(Discrepancy discrepancy) { JSONObject toReturn = new JSONObject(discrepancy); @@ -366,19 +371,18 @@ public final class DispoUtil { return discrepancy; } - // public static LocationRange jsonObjToLocationRagne(JSONObject object) throws JSONException { - // LocationRange range = new LocationRange(); - // range.setStart(object.getInt("start")); - // range.setEnd(object.getInt("end")); - // return range; - // } - // - // public static Note jsonObjToNote(JSONObject object) throws JSONException { - // Note note = new Note(); - // note.setContent(object.getString("content")); - // note.setDateString(object.getString("dateString")); - // note.setType(object.getString("type")); - // return note; - // } - // } + // public static LocationRange jsonObjToLocationRagne(JSONObject object) throws JSONException { + // LocationRange range = new LocationRange(); + // range.setStart(object.getInt("start")); + // range.setEnd(object.getInt("end")); + // return range; + // } + + public static Note jsonObjToNote(JSONObject object) throws JSONException { + Note note = new Note(); + note.setContent(object.getString("content")); + note.setDateString(object.getString("dateString")); + note.setType(object.getString("type")); + return note; + } } diff --git a/plugins/org.eclipse.osee.disposition.rest/web/user.html b/plugins/org.eclipse.osee.disposition.rest/web/user.html index d587c904e10..54651947b8b 100644 --- a/plugins/org.eclipse.osee.disposition.rest/web/user.html +++ b/plugins/org.eclipse.osee.disposition.rest/web/user.html @@ -12,7 +12,6 @@ </div> <div class="span3"> ATS Version: - <select class="form-control" ng-show="programs" ng-model="programSelection" ng-disabled="isSearchView" ng-change="updateProgram()" ng-options="obj.value as obj.text for obj in programs"></select> <select class="form-control" ng-show="programs" ng-model="programSelection" ng-change="updateProgram()" ng-options="program.guid as program.name for program in programs"></select> </div> <div class="span3"> diff --git a/plugins/org.eclipse.osee.support.config/launchConfig/osee.hsql.json b/plugins/org.eclipse.osee.support.config/launchConfig/osee.hsql.json index 244075e58ea..3ce3002e97c 100644 --- a/plugins/org.eclipse.osee.support.config/launchConfig/osee.hsql.json +++ b/plugins/org.eclipse.osee.support.config/launchConfig/osee.hsql.json @@ -26,9 +26,29 @@ { "service.pid": "org.eclipse.osee.http.jetty.internal.osgi.JettyHttpService", "jetty.server.context.session.inactive.interval": 3600, - "jetty.server.session.manager.factory": "JDBC", + "jetty.server.session.manager.factory": "IN_MEMORY", "jetty.jdbc.cluster.name" : "OSEE", "jetty.jdbc.save.interval.secs" : 30 - } + }, + { + "service.pid": "org.eclipse.osee.jaxrs.server.internal.security.oauth2.provider.OAuth2ServerProvider", + "jaxrs.oauth2.provider.enabled" : true, + "jaxrs.oauth2.provider.secret.key":"T0W3wQ1mMqmgdSxklHxYqg" + }, + { + "service.pid": "org.eclipse.osee.authentication.admin.internal.AuthenticationAdminImpl", + "authentication.scheme.allowed": "LDAP", + "authentication.scheme.allowed.default": "LDAP" + }, + { + "service.pid": "org.eclipse.osee.authentication.ldap.internal.LdapAuthenticationProvider", + "ldap.server.address": "ldap://msa-support.msc.az.boeing.com", + "ldap.credential.source": "SYSTEM", + "ldap.account.search.base": "DC=msc,DC=az,DC=boeing,DC=com", + "ldap.account.search.pattern": "(&(objectClass=person)(uid=${username}))", + "ldap.account.display.name": "cn", + "ldap.account.email.address": "mail", + "ldap.group.search.base": "DC=msc,DC=az,DC=boeing,DC=com" + } ] }
\ No newline at end of file |