You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by aw...@apache.org on 2010/03/08 20:15:14 UTC
svn commit: r920462 - in
/incubator/aries/trunk/jmx/jmx-itests/src/test/java/org/apache/aries/jmx/permissionadmin:
./ PermissionAdminMBeanTest.java
Author: awojtuniak
Date: Mon Mar 8 19:15:14 2010
New Revision: 920462
URL: http://svn.apache.org/viewvc?rev=920462&view=rev
Log:
ARIES-32 itest for PermissionAdminMBean
Added:
incubator/aries/trunk/jmx/jmx-itests/src/test/java/org/apache/aries/jmx/permissionadmin/
incubator/aries/trunk/jmx/jmx-itests/src/test/java/org/apache/aries/jmx/permissionadmin/PermissionAdminMBeanTest.java (with props)
Added: incubator/aries/trunk/jmx/jmx-itests/src/test/java/org/apache/aries/jmx/permissionadmin/PermissionAdminMBeanTest.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/jmx/jmx-itests/src/test/java/org/apache/aries/jmx/permissionadmin/PermissionAdminMBeanTest.java?rev=920462&view=auto
==============================================================================
--- incubator/aries/trunk/jmx/jmx-itests/src/test/java/org/apache/aries/jmx/permissionadmin/PermissionAdminMBeanTest.java (added)
+++ incubator/aries/trunk/jmx/jmx-itests/src/test/java/org/apache/aries/jmx/permissionadmin/PermissionAdminMBeanTest.java Mon Mar 8 19:15:14 2010
@@ -0,0 +1,130 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.aries.jmx.permissionadmin;
+
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.ops4j.pax.exam.CoreOptions.provision;
+import static org.ops4j.pax.swissbox.tinybundles.core.TinyBundles.newBundle;
+import static org.ops4j.pax.swissbox.tinybundles.core.TinyBundles.withBnd;
+
+import java.io.IOException;
+
+import org.apache.aries.jmx.AbstractIntegrationTest;
+import org.junit.Test;
+import org.ops4j.pax.exam.CoreOptions;
+import org.ops4j.pax.exam.Option;
+import org.ops4j.pax.exam.junit.Configuration;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.Constants;
+import org.osgi.framework.ServiceReference;
+import org.osgi.jmx.service.permissionadmin.PermissionAdminMBean;
+import org.osgi.service.permissionadmin.PermissionAdmin;
+import org.osgi.service.permissionadmin.PermissionInfo;
+
+/**
+ *
+ *
+ * @version $Rev$ $Date$
+ */
+public class PermissionAdminMBeanTest extends AbstractIntegrationTest {
+
+ @Configuration
+ public static Option[] configuration() {
+ Option[] options = CoreOptions.options(
+ CoreOptions.equinox(),
+ mavenBundle("org.ops4j.pax.logging", "pax-logging-api"),
+ mavenBundle("org.ops4j.pax.logging", "pax-logging-service"),
+ mavenBundle("org.apache.aries.jmx", "org.apache.aries.jmx"),
+ provision(newBundle()
+ .add(org.apache.aries.jmx.test.bundlea.Activator.class)
+ .add(org.apache.aries.jmx.test.bundlea.api.InterfaceA.class)
+ .add(org.apache.aries.jmx.test.bundlea.impl.A.class)
+ .set(Constants.BUNDLE_SYMBOLICNAME, "org.apache.aries.jmx.test.bundlea")
+ .set(Constants.BUNDLE_VERSION, "2.0.0")
+ .set(Constants.IMPORT_PACKAGE,
+ "org.osgi.framework;version=1.5.0,org.osgi.util.tracker,org.apache.aries.jmx.test.bundleb.api;version=1.1.0;resolution:=optional")
+ .set(Constants.BUNDLE_ACTIVATOR,
+ org.apache.aries.jmx.test.bundlea.Activator.class.getName())
+ .build(withBnd()))
+ );
+ options = updateOptions(options);
+ return options;
+ }
+
+ @Test
+ public void testMBeanInterface() throws IOException {
+ PermissionAdminMBean mBean = getMBean(PermissionAdminMBean.OBJECTNAME, PermissionAdminMBean.class);
+ PermissionAdmin permAdminService = getService(PermissionAdmin.class);
+ assertNotNull(permAdminService);
+
+ String[] serviceLocation = permAdminService.getLocations();
+ String[] mBeanLocations = mBean.listLocations();
+ assertArrayEquals(serviceLocation, mBeanLocations);
+
+ PermissionInfo defPerm = new PermissionInfo("AllPermission", "*", "*");
+ permAdminService.setDefaultPermissions(new PermissionInfo[]{defPerm});
+ PermissionInfo[] permissions = permAdminService.getDefaultPermissions();
+ assertNotNull(permissions);
+
+ String[] encoded = toEncodedPerm(permissions);
+ String[] mBeanDefPermissions = mBean.listDefaultPermissions();
+ assertArrayEquals(encoded, mBeanDefPermissions);
+
+ Bundle a = getBundle("org.apache.aries.jmx.test.bundlea");
+ assertNotNull(a);
+
+ String location = a.getLocation();
+
+ PermissionInfo bundleaPerm = new PermissionInfo("ServicePermission", "ServiceA", "GET");
+ mBean.setPermissions(location, new String[]{bundleaPerm.getEncoded()});
+
+ String[] serviceBundleaPerm = toEncodedPerm(permAdminService.getPermissions(location));
+ String[] mBeanBundleaPerm = mBean.getPermissions(location);
+ assertNotNull(mBeanBundleaPerm);
+ assertArrayEquals(serviceBundleaPerm, mBeanBundleaPerm);
+
+ PermissionInfo defaultPerm = new PermissionInfo("AllPermission", "*", "GET");
+ mBean.setDefaultPermissions(new String[]{defaultPerm.getEncoded()});
+
+ String[] serviceDefaultPerm = toEncodedPerm(permAdminService.getDefaultPermissions());
+ String[] mBeanDefaultPerm = mBean.listDefaultPermissions();
+ assertNotNull(mBeanDefaultPerm);
+ assertArrayEquals(serviceDefaultPerm, mBeanDefaultPerm);
+ }
+
+ private String[] toEncodedPerm(PermissionInfo[] permissions){
+ assertNotNull(permissions);
+ String[] encoded = new String[permissions.length];
+ for (int i = 0; i < permissions.length; i++) {
+ PermissionInfo info = permissions[i];
+ encoded[i] = info.getEncoded();
+ }
+ return encoded;
+ }
+
+ private <S> S getService(Class<S> serviceInterface){
+ ServiceReference ref = bundleContext.getServiceReference(serviceInterface.getName());
+ if(ref != null){
+ Object service = bundleContext.getService(ref);
+ if(service != null){
+ return (S)service;
+ }
+ }
+ return null;
+ }
+}
\ No newline at end of file
Propchange: incubator/aries/trunk/jmx/jmx-itests/src/test/java/org/apache/aries/jmx/permissionadmin/PermissionAdminMBeanTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/aries/trunk/jmx/jmx-itests/src/test/java/org/apache/aries/jmx/permissionadmin/PermissionAdminMBeanTest.java
------------------------------------------------------------------------------
svn:keywords = Revision Date