ArrayList<Class<?>> searchClasses = new ArrayList<>(); searchClasses.add(template.getClass()); query.setObjectClasses(searchClasses); query.setPlatformIdent(template.getPlatformIdent()); query.setSensorTypeIdent(template.getSensorTypeIdent()); query.setToDate(toDate); query.setFromDate(fromDate); if (template instanceof MethodSensorData) { query.setMethodIdent(((MethodSensorData) template).getMethodIdent()); if (template instanceof InvocationSequenceData) { query.setOnlyInvocationsWithoutChildren(true); query.addIndexingRestriction(IndexQueryRestrictionFactory.equal("jmxSensorDefinitionDataIdentId", ((JmxSensorValueData) template).getJmxSensorDefinitionDataIdentId()));
/** * Initializes the index query. */ @BeforeMethod public void initMethod() { storageIndexQuery = new StorageIndexQuery(); }
if (query.getMinId() != 0) { index = Arrays.binarySearch(idArray, 0, size, query.getMinId()); if (index < 0) { index = -index - 1; if ((query.getExcludeIds() != null) && query.getExcludeIds().contains(idArray[index])) { continue; if ((0 != idArray[index]) && ((query.getIncludeIds() == null) || query.getIncludeIds().contains(idArray[index]))) { SimpleStorageDescriptor simpleDescriptor = descriptorArray[index]; if (null != simpleDescriptor) {
/** * {@inheritDoc} */ @Override public String toString() { ToStringBuilder toStringBuilder = new ToStringBuilder(this); toStringBuilder.append("minId", getMinId()); toStringBuilder.append("platformIdent", getPlatformIdent()); toStringBuilder.append("sensorTypeIdent", getSensorTypeIdent()); toStringBuilder.append("methodIdent", getMethodIdent()); toStringBuilder.append("objectClasses", getObjectClasses()); toStringBuilder.append("fromDate", getFromDate()); toStringBuilder.append("toDate", getToDate()); toStringBuilder.append("indexingRestrictionList", getIndexingRestrictionList()); toStringBuilder.append("onlyInvocationsWithoutChildren", onlyInvocationsWithoutChildren); toStringBuilder.append("includeIds", includeIds); toStringBuilder.append("excludeIds", excludeIds); toStringBuilder.append("sql", sql); return toStringBuilder.toString(); } }
/** * {@inheritDoc} */ @Override public List<DefaultData> getDataObjectsSinceIdIgnoreMethodId(DefaultData template) { StorageIndexQuery query = storageIndexQueryProvider.createNewStorageIndexQuery(); query.setMinId(template.getId()); ArrayList<Class<?>> searchClasses = new ArrayList<>(); searchClasses.add(template.getClass()); query.setObjectClasses(searchClasses); query.setPlatformIdent(template.getPlatformIdent()); return super.executeQuery(query); }
/** * {@inheritDoc} */ @Override public List<DefaultData> getDataObjectsSinceId(DefaultData template) { StorageIndexQuery query = storageIndexQueryProvider.createNewStorageIndexQuery(); query.setMinId(template.getId()); ArrayList<Class<?>> searchClasses = new ArrayList<>(); searchClasses.add(template.getClass()); query.setObjectClasses(searchClasses); query.setPlatformIdent(template.getPlatformIdent()); query.setSensorTypeIdent(template.getSensorTypeIdent()); if (template instanceof MethodSensorData) { query.setMethodIdent(((MethodSensorData) template).getMethodIdent()); if (template instanceof InvocationSequenceData) { query.setOnlyInvocationsWithoutChildren(true); } } return super.executeQuery(query); }
StorageIndexQuery query = storageIndexQueryProvider.createNewStorageIndexQuery(); query.setObjectClasses(Arrays.asList(JmxSensorValueData.class)); query.setPlatformIdent(template.getPlatformIdent()); query.setSensorTypeIdent(template.getSensorTypeIdent()); query.setFromDate(new Timestamp(fromDate.getTime())); query.setToDate(new Timestamp(toDate.getTime())); query.addIndexingRestriction(IndexQueryRestrictionFactory.equal("jmxSensorDefinitionDataIdentId", template.getJmxSensorDefinitionDataIdentId()));
/** * {@inheritDoc} */ @Override public InvocationSequenceData getInvocationSequenceDetail(InvocationSequenceData template) { // here we need to create new query since this one does not exist in factory StorageIndexQuery query = invocationDataQueryFactory.getIndexQueryProvider().getIndexQuery(); ArrayList<Class<?>> searchedClasses = new ArrayList<>(); searchedClasses.add(InvocationSequenceData.class); query.setObjectClasses(searchedClasses); query.setPlatformIdent(template.getPlatformIdent()); query.setMethodIdent(template.getMethodIdent()); query.setSensorTypeIdent(template.getSensorTypeIdent()); query.setOnlyInvocationsWithoutChildren(false); ArrayList<Long> includeIds = new ArrayList<>(); includeIds.add(template.getId()); query.setIncludeIds(includeIds); List<InvocationSequenceData> results = super.executeQuery(query); if (results.size() == 1) { return results.get(0); } return null; }
/** * {@inheritDoc} */ @Override public DefaultData getLastDataObject(DefaultData template) { StorageIndexQuery query = storageIndexQueryProvider.createNewStorageIndexQuery(); query.setMinId(template.getId()); ArrayList<Class<?>> searchClasses = new ArrayList<>(); searchClasses.add(template.getClass()); query.setObjectClasses(searchClasses); query.setPlatformIdent(template.getPlatformIdent()); query.setSensorTypeIdent(template.getSensorTypeIdent()); List<DefaultData> resultList = super.executeQuery(query); if (CollectionUtils.isNotEmpty(resultList)) { Iterator<DefaultData> it = resultList.iterator(); DefaultData lastObject = it.next(); while (it.hasNext()) { DefaultData next = it.next(); if (next.getTimeStamp().after(lastObject.getTimeStamp())) { lastObject = next; } } return lastObject; } else { return null; } }
StorageIndexQuery query = new StorageIndexQuery(); List<Class<?>> searchedClasses = new ArrayList<>(); searchedClasses.add(InvocationSequenceData.class); query.setObjectClasses(searchedClasses);
storageDescriptor2.setPositionAndSize(0L, 200L); storageIndexQuery.setPlatformIdent(10L); storageIndexQuery.setPlatformIdent(10L); storageIndexQuery.setSensorTypeIdent(10L);
storageDescriptor2.setPositionAndSize(0L, 200L); storageIndexQuery.setFromDate(minusHour); storageIndexQuery.setToDate(plusHour);
storageIndexQuery.setObjectClasses(searchedClasses);
/** * {@inheritDoc} */ @Override public Object[] getKeys(IIndexQuery query) { if (query instanceof StorageIndexQuery) { if (null != ((StorageIndexQuery) query).getSql()) { Object[] keys = new Object[1]; keys[0] = getInternalHash(((StorageIndexQuery) query).getSql().hashCode()); return keys; } } return new Object[0]; }
/** * {@inheritDoc} */ @Override public Object[] getKeys(IIndexQuery query) { Object[] keys = new Object[1]; if (query instanceof StorageIndexQuery) { if (((StorageIndexQuery) query).isOnlyInvocationsWithoutChildren()) { keys[0] = Boolean.TRUE; } else { keys[0] = Boolean.FALSE; } } else { keys[0] = Boolean.FALSE; } return keys; }
storageDescriptor2.setPositionAndSize(0L, 200L); storageIndexQuery.setPlatformIdent(10L);
storageDescriptor2.setPositionAndSize(0L, 200L); storageIndexQuery.setMethodIdent(10L);
StorageIndexQuery query = new StorageIndexQuery(); List<Class<?>> searchedClasses = new ArrayList<>(); searchedClasses.add(InvocationSequenceData.class); query.setObjectClasses(searchedClasses);
storageDescriptor2.setPositionAndSize(0L, 200L); storageIndexQuery.setPlatformIdent(10L); storageIndexQuery.setPlatformIdent(10L); storageIndexQuery.setSensorTypeIdent(10L);
/** * Tests the functionality of the {@link SqlStringIndexer}. */ @Test public void sqlStringIndexer() { SqlStatementData data = mock(SqlStatementData.class); SqlStringIndexer<DefaultData> indexer = new SqlStringIndexer<>(); when(data.getSql()).thenReturn(RandomStringUtils.random(100)); Object key1 = indexer.getKey(data); when(data.getSql()).thenReturn(RandomStringUtils.random(100)); Object key2 = indexer.getKey(data); assertThat(key1, is(not(key2))); // assert that if max keys is set it will work indexer = new SqlStringIndexer<>(1); when(data.getSql()).thenReturn(RandomStringUtils.random(100)); key1 = indexer.getKey(data); when(data.getSql()).thenReturn(RandomStringUtils.random(100)); key2 = indexer.getKey(data); assertThat(key1, is(key2)); StorageIndexQuery query = mock(StorageIndexQuery.class); assertThat(indexer.getKeys(query), is(emptyArray())); when(query.getSql()).thenReturn(RandomStringUtils.random(100)); Object[] keys = indexer.getKeys(query); assertThat(keys, is(arrayWithSize(1))); assertThat(keys[0], is(notNullValue())); }