public Site retrieveSiteByDomainName(final String domainName, final boolean persistentResult) {
//Since the methods on this class are frequently called during regular page requests and transactions are expensive,
//only run the operation under a transaction if there is not already an entity manager in the view
final Site[] response = new Site[1];
transUtil.runOptionalTransactionalOperation(new StreamCapableTransactionalOperationAdapter() {
@Override
public void execute() throws Throwable {
String domainPrefix = null;
if (domainName != null) {
int pos = domainName.indexOf('.');