Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/Evolveum/midpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
Erik Suta committed May 26, 2014
2 parents 9158ff5 + 59a4751 commit e33d33f
Show file tree
Hide file tree
Showing 7 changed files with 35 additions and 64 deletions.
Expand Up @@ -23,6 +23,8 @@
import com.evolveum.midpoint.schema.RetrieveOption;
import com.evolveum.midpoint.schema.SelectorOptions;

import com.evolveum.midpoint.web.page.error.PageError;
import com.evolveum.midpoint.web.util.WebMiscUtil;
import org.apache.commons.lang.Validate;

import com.evolveum.midpoint.prism.PrismObject;
Expand All @@ -39,6 +41,7 @@
import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType;

import org.apache.wicket.Component;
import org.apache.wicket.RestartResponseException;

/**
* @author lazyman
Expand Down Expand Up @@ -83,15 +86,16 @@ public Iterator<W> internalIterator(long first, long count) {
for (PrismObject<T> object : list) {
getAvailableData().add(createDataObjectWrapper(object));
}

result.recordSuccess();
} catch (Exception ex) {
result.recordFatalError("Couldn't list objects.", ex);
LoggingUtils.logException(LOGGER, "Couldn't list objects", ex);
} finally {
result.computeStatusIfUnknown();
}

if (!result.isSuccess()) {
if (!WebMiscUtil.isSuccessOrHandledError(result)) {
getPage().showResultInSession(result);
throw new RestartResponseException(PageError.class);
}

LOGGER.trace("end::iterator()");
Expand All @@ -110,16 +114,18 @@ protected int internalSize() {
try {
Task task = getPage().createSimpleTask(OPERATION_COUNT_OBJECTS);
count = getModel().countObjects(type, getQuery(), options, task, result);

result.recordSuccess();
} catch (Exception ex) {
result.recordFatalError("Couldn't count objects.", ex);
LoggingUtils.logException(LOGGER, "Couldn't count objects", ex);
} finally {
result.computeStatusIfUnknown();
}

if (!result.isSuccess()) {
if (!WebMiscUtil.isSuccessOrHandledError(result)) {
getPage().showResultInSession(result);
throw new RestartResponseException(PageError.class);
}

LOGGER.trace("end::internalSize()");
return count;
}
Expand Down
Expand Up @@ -92,10 +92,10 @@ public Iterator<DebugObjectItem> internalIterator(long first, long count) {
for (PrismObject<? extends ObjectType> object : list) {
getAvailableData().add(createItem(object, result));
}

result.recordSuccess();
} catch (Exception ex) {
result.recordFatalError("Couldn't list objects.", ex);
} finally {
result.computeStatusIfUnknown();
}

if (!result.isSuccess()) {
Expand Down Expand Up @@ -174,10 +174,10 @@ protected int internalSize() {
count = getModel().countObjects(type, getQuery(),
SelectorOptions.createCollection(new ItemPath(), GetOperationOptions.createRaw()),
getPage().createSimpleTask(OPERATION_COUNT_OBJECTS), result);

result.recordSuccess();
} catch (Exception ex) {
result.recordFatalError("Couldn't count objects.", ex);
} finally {
result.computeStatusIfUnknown();
}

if (!result.isSuccess()) {
Expand Down
Expand Up @@ -798,6 +798,7 @@ private void selectTreeItemPerformed(AjaxRequestTarget target) {
basicSearch.getModel().setObject(null);

TablePanel table = getTable();
table.setCurrentPage(null);

target.add(table);
target.add(get(ID_SEARCH_FORM));
Expand All @@ -808,7 +809,6 @@ private ObjectQuery createTableQuery() {
String oid = dto != null ? dto.getOid() : getModel().getObject();

OrgFilter org = OrgFilter.createOrg(oid, OrgFilter.Scope.ONE_LEVEL);
// return ObjectQuery.createObjectQuery(org);

BasicSearchPanel<String> basicSearch = (BasicSearchPanel) get(createComponentPath(ID_SEARCH_FORM, ID_BASIC_SEARCH));
String object = basicSearch.getModelObject();
Expand All @@ -825,7 +825,6 @@ private ObjectQuery createTableQuery() {
return ObjectQuery.createObjectQuery(org);
}


SubstringFilter substring = SubstringFilter.createSubstring(ObjectType.F_NAME, ObjectType.class, context,
PolyStringNormMatchingRule.NAME, normalizedString);

Expand Down

Large diffs are not rendered by default.

Expand Up @@ -87,7 +87,7 @@ public void test200PrepareBigXml() throws Exception {
String orgOID = org.getOid();
for (int j = 1; j <= USER_PER_ORG_COUNT; j++) {
UserType user = createUserType((i - 1) * USER_PER_ORG_COUNT + j, orgOID);
for (int k = 1; k < RESOURCE_OIDS.size(); k++) {
for (int k = 1; k <= RESOURCE_OIDS.size(); k++) {
ShadowType shadow = createShadow(user, RESOURCE_OIDS.get(k - 1), k);
writeObject(shadow, writer);

Expand Down Expand Up @@ -230,4 +230,4 @@ private void writeHeader(Writer writer) throws IOException {
private void writeFooter(Writer writer) throws IOException {
writer.write("</objects>");
}
}
}
Expand Up @@ -34,6 +34,7 @@
import com.evolveum.midpoint.repo.sql.data.common.other.RObjectType;
import com.evolveum.midpoint.repo.sql.data.common.type.RAssignmentExtensionType;
import com.evolveum.midpoint.repo.sql.data.common.type.RObjectExtensionType;
import com.evolveum.midpoint.repo.sql.data.common.type.RParentOrgRef;
import com.evolveum.midpoint.repo.sql.query.QueryException;
import com.evolveum.midpoint.repo.sql.type.XMLGregorianCalendarType;
import com.evolveum.midpoint.repo.sql.util.HibernateToSqlTranslator;
Expand Down Expand Up @@ -790,48 +791,6 @@ private void addFullObjectProjectionList(String prefix, ProjectionList list, boo
}
}

@Test(enabled = false) //TODO ENABLE [lazyman]
public void queryOrgStructure() throws Exception {
Session session = open();

try {
ProjectionList list = Projections.projectionList();
addFullObjectProjectionList("o", list, false);
addFullObjectProjectionList("o", list, true);
list.add(Projections.groupProperty("o.name.orig"));
list.add(Projections.groupProperty("closure.descendant"));


Criteria main = session.createCriteria(RObject.class, "o");
main.createCriteria("descendants", "closure").setFetchMode("closure.ancestor", FetchMode.DEFAULT)
.createAlias("closure.ancestor", "anc").setProjection(list);
main.addOrder(Order.asc("o.name.orig"));

Conjunction conjunction = Restrictions.conjunction();
conjunction.add(Restrictions.eq("anc.oid", "some oid"));
conjunction.add(Restrictions.le("closure.depth", 1));
conjunction.add(Restrictions.gt("closure.depth", 0));
main.add(conjunction);

String expected = HibernateToSqlTranslator.toSql(main);

OrgFilter orgFilter = OrgFilter.createOrg("some oid", OrgFilter.Scope.ONE_LEVEL);
ObjectQuery query = ObjectQuery.createObjectQuery(orgFilter);
query.setPaging(ObjectPaging.createPaging(null, null, ObjectType.F_NAME, OrderDirection.ASCENDING));

String real = getInterpretedQuery(session, ObjectType.class, query);

LOGGER.info("exp. query>\n{}\nreal query>\n{}", new Object[]{expected, real});

OperationResult result = new OperationResult("query org structure");
repositoryService.searchObjects(ObjectType.class, query, null, result);

AssertJUnit.assertEquals(expected, real);
} finally {
close(session);
}
}

@Test
public void countObjectOrderByName() throws Exception {
Session session = open();
Expand Down Expand Up @@ -939,13 +898,20 @@ public void queryOrgTreeFindOrgs() throws Exception {
Session session = open();

try {
Query query = session.createQuery(
"select o.fullObject,o.stringsCount,o.longsCount,o.datesCount,o.referencesCount,o.polysCount from " +
"ROrg as o where o.oid in (select distinct p.ownerOid from RParentOrgRef p where p.targetOid=:oid)"
);
query.setString("oid", "1234");

String expected = HibernateToSqlTranslator.toSql(factory, query.getQueryString());
Criteria main = session.createCriteria(ROrg.class, "o");
ProjectionList projections = Projections.projectionList();
addFullObjectProjectionList("o", projections, false);
main.setProjection(projections);

DetachedCriteria detached = DetachedCriteria.forClass(RParentOrgRef.class, "p");
detached.setProjection(Projections.distinct(Projections.property("p.ownerOid")));
detached.add(Restrictions.eq("p.targetOid", "some oid"));

main.add(Subqueries.propertyIn("o.oid", detached));
main.addOrder(Order.asc("o.name.orig"));

String expected = HibernateToSqlTranslator.toSql(main);

OrgFilter orgFilter = OrgFilter.createOrg("some oid", OrgFilter.Scope.ONE_LEVEL);
ObjectQuery objectQuery = ObjectQuery.createObjectQuery(orgFilter);
Expand Down
Expand Up @@ -24,7 +24,7 @@ public class QueryEngine {
private static final List<CustomQuery> queryLibrary = new ArrayList<>();

static {
queryLibrary.add(new OrgFilterQuery());
// queryLibrary.add(new OrgFilterQuery());
}

private SqlRepositoryConfiguration repoConfiguration;
Expand Down

0 comments on commit e33d33f

Please sign in to comment.