protected String createPermissionString(ActiveMQDestination dest, String verb) {
        if (dest.isComposite()) {
            throw new IllegalArgumentException("Use createPermissionStrings for composite destinations.");
        }

        StringBuilder sb = new StringBuilder();

        if (permissionStringPrefix != null) {
            sb.append(permissionStringPrefix);
            if (!permissionStringPrefix.endsWith(":")) {
                sb.append(":");
            }
        }

        if (dest.isTemporary()) {
            sb.append("temp-");
        }
        if (dest.isTopic()) {
            sb.append("topic:");
        } else {
            sb.append("queue:");
        }

        sb.append(dest.getPhysicalName());
        sb.append(':');
        sb.append(verb);

        return sb.toString();

    }
@Test(expected = IllegalArgumentException.class)
    public void testCreatePermissionStringWithCompositeDestination() {
        ActiveMQTopic topicA = new ActiveMQTopic("A");
        ActiveMQTopic topicB = new ActiveMQTopic("B");
        ActiveMQDestination composite = new AnyDestination(new ActiveMQDestination[]{topicA, topicB});
        resolver.createPermissionString(composite, "read");
    }