diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/RegisterActivity.java b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/RegisterActivity.java index 0ef131041e..5354cc1ae6 100755 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/RegisterActivity.java +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/RegisterActivity.java @@ -54,6 +54,7 @@ public class RegisterActivity extends Activity { private EditText mHostView; private View mProgressView; private View mLoginFormView; + private Button deviceRegisterButton; private Handler mUiHandler = new Handler(); @Override @@ -73,7 +74,7 @@ public class RegisterActivity extends Activity { AvailableSensorsInDevice availableSensorsInDevice = new AvailableSensorsInDevice(getApplicationContext()); availableSensorsInDevice.setContent(); - Button deviceRegisterButton = (Button) findViewById(R.id.device_register_button); + deviceRegisterButton = (Button) findViewById(R.id.device_register_button); deviceRegisterButton.setOnClickListener(new OnClickListener() { @@ -204,6 +205,7 @@ public class RegisterActivity extends Activity { // and hide the relevant UI components. mProgressView.setVisibility(show ? View.VISIBLE : View.GONE); mLoginFormView.setVisibility(show ? View.GONE : View.VISIBLE); + deviceRegisterButton.setVisibility(show? View.VISIBLE : View.GONE); } } diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/data/publisher/DataPublisherService.java b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/data/publisher/DataPublisherService.java index 0335ffe50b..ecff96371b 100755 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/data/publisher/DataPublisherService.java +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/data/publisher/DataPublisherService.java @@ -52,11 +52,8 @@ import java.util.List; * This is an android service which publishes the data to the server. */ public class DataPublisherService extends Service { - private static final String TAG = DataPublisherService.class.getName(); - private static String KEY_TAG = "key"; - private static String TIME_TAG = "time"; - private static String VALUE_TAG = "value"; - public static Context context; + private final String TAG = DataPublisherService.class.getName(); + private Context context; @Nullable @Override @@ -68,9 +65,9 @@ public class DataPublisherService extends Service { public int onStartCommand(Intent intent, int flags, int startId) { context = this; Log.d(TAG, "service started"); - Runnable runnable = new Runnable() { - @Override - public void run() { +// Runnable runnable = new Runnable() { +// @Override +// public void run() { try { List events = new ArrayList<>(); //retrieve sensor data. @@ -315,10 +312,10 @@ public class DataPublisherService extends Service { } catch (TransportHandlerException e) { Log.e(TAG, "Data Publish Failed", e); } - } - }; - Thread dataUploaderThread = new Thread(runnable); - dataUploaderThread.start(); +// } +// }; +// Thread dataUploaderThread = new Thread(runnable); +// dataUploaderThread.start(); return Service.START_NOT_STICKY; } } \ No newline at end of file diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/event/streams/location/LocationDataReader.java b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/event/streams/location/LocationDataReader.java index 976e6d0bdc..f79cc64f52 100755 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/event/streams/location/LocationDataReader.java +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/event/streams/location/LocationDataReader.java @@ -183,8 +183,8 @@ public class LocationDataReader extends DataReader implements LocationListener { double distance =CalculationByDistance(latitude, longitude, lat_old, lon_old)/1000; speed = (float)distance/(float)time; - Toast.makeText(mContext, longitude+"\n"+latitude+"\nDistance is: " - +distance+"\nSpeed is: "+speed , Toast.LENGTH_SHORT).show(); +// Toast.makeText(mContext, longitude+"\n"+latitude+"\nDistance is: " +// +distance+"\nSpeed is: "+speed , Toast.LENGTH_SHORT).show(); Intent intent = new Intent("speedUpdate"); diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/realtimeviewer/ActivitySelectSensor.java b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/realtimeviewer/ActivitySelectSensor.java index f8d658f69d..fd7bf2ae9e 100755 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/realtimeviewer/ActivitySelectSensor.java +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/realtimeviewer/ActivitySelectSensor.java @@ -73,7 +73,7 @@ public class ActivitySelectSensor extends AppCompatActivity private ListView listView; private SensorManager sensorManager; private ArrayList sensors = new ArrayList<>(); - private EditText sessionIdText; +// private EditText sessionIdText; private RealTimeSensorReader sensorReader = null; private RealTimeSensorChangeReceiver realTimeSensorChangeReceiver = new RealTimeSensorChangeReceiver(); private SupportedSensors supportedSensors = SupportedSensors.getInstance(); @@ -87,21 +87,21 @@ public class ActivitySelectSensor extends AppCompatActivity Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); - sessionIdText = (EditText) findViewById(R.id.sessionId); - sessionIdText.setCursorVisible(false); + //sessionIdText = (EditText) findViewById(R.id.sessionId); +// sessionIdText.setCursorVisible(false); listView = (ListView) findViewById(R.id.senseListContainer); - verifyBluetooth(); + //verifyBluetooth(); registerReceiver(realTimeSensorChangeReceiver, new IntentFilter("sensorDataMap")); - sessionIdText.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - sessionIdText.setCursorVisible(true); - - } - }); +// sessionIdText.setOnClickListener(new View.OnClickListener() { +// @Override +// public void onClick(View v) { +// sessionIdText.setCursorVisible(true); +// +// } +// }); //Publish data FloatingActionButton fbtnPublishData = (FloatingActionButton) findViewById(R.id.publish); @@ -126,33 +126,33 @@ public class ActivitySelectSensor extends AppCompatActivity } }); - FloatingActionButton fbtnSpeechRecongnizer = (FloatingActionButton) findViewById(R.id.speech); - fbtnSpeechRecongnizer.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - String sessionId = sessionIdText.getText().toString(); - if (!sessionId.isEmpty()) { - Intent intent = new Intent(getApplicationContext(), WordRecognitionActivity.class); - intent.putExtra("sessionId", sessionId); - startActivity(intent); - } else { - Toast.makeText(ActivitySelectSensor.this, "Please type a session id value", Toast.LENGTH_SHORT) - .show(); - } - - } - }); - - FloatingActionButton fbtnBeaconMonitor = (FloatingActionButton) findViewById(R.id.beacon); - fbtnBeaconMonitor.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - Intent intent = new Intent(getApplicationContext(), BeaconMonitoringActivity.class); - startActivity(intent); - - - } - }); + //FloatingActionButton fbtnSpeechRecongnizer = (FloatingActionButton) findViewById(R.id.speech); +// fbtnSpeechRecongnizer.setOnClickListener(new View.OnClickListener() { +// @Override +// public void onClick(View v) { +// String sessionId = sessionIdText.getText().toString(); +// if (!sessionId.isEmpty()) { +// Intent intent = new Intent(getApplicationContext(), WordRecognitionActivity.class); +// intent.putExtra("sessionId", sessionId); +// startActivity(intent); +// } else { +// Toast.makeText(ActivitySelectSensor.this, "Please type a session id value", Toast.LENGTH_SHORT) +// .show(); +// } +// +// } +// }); + +// FloatingActionButton fbtnBeaconMonitor = (FloatingActionButton) findViewById(R.id.beacon); +// fbtnBeaconMonitor.setOnClickListener(new View.OnClickListener() { +// @Override +// public void onClick(View v) { +// Intent intent = new Intent(getApplicationContext(), BeaconMonitoringActivity.class); +// startActivity(intent); +// +// +// } +// }); sharedPreferences = getSharedPreferences(SupportedSensors.SELECTED_SENSORS, 0); @@ -313,43 +313,43 @@ public class ActivitySelectSensor extends AppCompatActivity unregisterReceiver(realTimeSensorChangeReceiver); } - private void verifyBluetooth() { - - try { - if (!BeaconManager.getInstanceForApplication(this).checkAvailability()) { - final AlertDialog.Builder builder = new AlertDialog.Builder(this); - builder.setTitle("Bluetooth not enabled"); - builder.setMessage("Please enable bluetooth in settings and restart this application."); - builder.setPositiveButton(android.R.string.ok, null); - builder.setOnDismissListener(new DialogInterface.OnDismissListener() { - - @Override - public void onDismiss(DialogInterface dialog) { - finish(); - System.exit(0); - } - - }); - builder.show(); - - } - } catch (RuntimeException e) { - final AlertDialog.Builder builder = new AlertDialog.Builder(this); - builder.setTitle("Bluetooth LE not available"); - builder.setMessage("Sorry, this device does not support Bluetooth LE."); - builder.setPositiveButton(android.R.string.ok, null); - builder.setOnDismissListener(new DialogInterface.OnDismissListener() { - - @Override - public void onDismiss(DialogInterface dialog) { - finish(); - System.exit(0); - } - - }); - builder.show(); - - } - - } +// private void verifyBluetooth() { +// +// try { +// if (!BeaconManager.getInstanceForApplication(this).checkAvailability()) { +// final AlertDialog.Builder builder = new AlertDialog.Builder(this); +// builder.setTitle("Bluetooth not enabled"); +// builder.setMessage("Please enable bluetooth in settings and restart this application."); +// builder.setPositiveButton(android.R.string.ok, null); +// builder.setOnDismissListener(new DialogInterface.OnDismissListener() { +// +// @Override +// public void onDismiss(DialogInterface dialog) { +// finish(); +// System.exit(0); +// } +// +// }); +// builder.show(); +// +// } +// } catch (RuntimeException e) { +// final AlertDialog.Builder builder = new AlertDialog.Builder(this); +// builder.setTitle("Bluetooth LE not available"); +// builder.setMessage("Sorry, this device does not support Bluetooth LE."); +// builder.setPositiveButton(android.R.string.ok, null); +// builder.setOnDismissListener(new DialogInterface.OnDismissListener() { +// +// @Override +// public void onDismiss(DialogInterface dialog) { +// finish(); +// System.exit(0); +// } +// +// }); +// builder.show(); +// +// } +// +// } } diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/util/SenseClientAsyncExecutor.java b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/util/SenseClientAsyncExecutor.java index 9289a29a80..6b1591ce93 100755 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/util/SenseClientAsyncExecutor.java +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/util/SenseClientAsyncExecutor.java @@ -57,6 +57,7 @@ public class SenseClientAsyncExecutor extends AsyncTask - - + android:layout_height="100dp" + android:layout_margin="20dp" + android:orientation="horizontal"> - + + + + + + + + + + + + - + + + + + + + + + + + + + + + - + + + - - diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/res/layout/content_activity_select_sensor.xml b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/res/layout/content_activity_select_sensor.xml index e431b902a2..d3d332de3d 100755 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/res/layout/content_activity_select_sensor.xml +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/res/layout/content_activity_select_sensor.xml @@ -11,18 +11,18 @@ tools:context="org.wso2.carbon.iot.android.sense.realtimeviewer.ActivitySelectSensor" android:id="@+id/parentContainer"> - + + + + + + + > diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/res/menu/activity_activity_select_sensor_drawer.xml b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/res/menu/activity_activity_select_sensor_drawer.xml index 861bf44cda..cdcb375809 100755 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/res/menu/activity_activity_select_sensor_drawer.xml +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/res/menu/activity_activity_select_sensor_drawer.xml @@ -3,8 +3,8 @@ - + + diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/build.gradle b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/build.gradle index 83876c80ad..b3722d0822 100755 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/build.gradle +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/build.gradle @@ -6,7 +6,7 @@ buildscript { maven { url 'https://repo.eclipse.org/content/repositories/paho-releases/' } } dependencies { - classpath 'com.android.tools.build:gradle:2.1.0' + classpath 'com.android.tools.build:gradle:2.2.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/gradle/wrapper/gradle-wrapper.properties b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/gradle/wrapper/gradle-wrapper.properties index e7ff442f33..f88c58d1a7 100755 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/gradle/wrapper/gradle-wrapper.properties +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Wed May 11 14:40:10 IST 2016 +#Mon Jan 09 12:13:26 IST 2017 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/AndroidSenseServiceImpl.java b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/AndroidSenseServiceImpl.java index 5a4b65ddb8..d4d117f18d 100644 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/AndroidSenseServiceImpl.java +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/AndroidSenseServiceImpl.java @@ -48,7 +48,6 @@ import java.util.Properties; public class AndroidSenseServiceImpl implements AndroidSenseService { private static Log log = LogFactory.getLog(AndroidSenseServiceImpl.class); - private static String DEFAULT_MQTT_ENDPOINT = "tcp://localhost:1886"; @Path("device/{deviceId}/words") @POST diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/constants/AndroidSenseConstants.java b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/constants/AndroidSenseConstants.java index 68678d0006..3c1e93a5c3 100644 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/constants/AndroidSenseConstants.java +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/constants/AndroidSenseConstants.java @@ -40,7 +40,7 @@ public class AndroidSenseConstants { public static final String HOST_NAME = "HostName"; public static final String LOCALHOST = "localhost"; public static final String CONFIG_TYPE = "general"; - public static final String DEFAULT_ENDPOINT = "tcp://localhost:1886"; + public static final String DEFAULT_ENDPOINT = "tcp://${mqtt.broker.host}:${mqtt.broker.port}"; public static final String SCOPE = "scope"; diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/util/APIUtil.java b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/util/APIUtil.java index 850b766c80..aa8fda595c 100644 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/util/APIUtil.java +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/util/APIUtil.java @@ -13,6 +13,7 @@ import org.wso2.carbon.apimgt.application.extension.APIManagementProviderService import org.wso2.carbon.base.ServerConfiguration; import org.wso2.carbon.context.CarbonContext; import org.wso2.carbon.context.PrivilegedCarbonContext; +import org.wso2.carbon.core.util.Utils; import org.wso2.carbon.device.mgt.common.authorization.DeviceAccessAuthorizationService; import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationEntry; import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationManagementException; @@ -205,7 +206,7 @@ public class APIUtil { } public static String getMqttEndpoint() throws ConfigurationManagementException { - String iotServerIP = AndroidSenseConstants.DEFAULT_ENDPOINT; + String iotServerIP = Utils.replaceSystemProperty(AndroidSenseConstants.DEFAULT_ENDPOINT); iotServerIP = iotServerIP.replace(AndroidSenseConstants.LOCALHOST, getServerUrl());; PlatformConfiguration configuration = APIUtil.getTenantConfigurationManagementService().getConfiguration( AndroidSenseConstants.CONFIG_TYPE); @@ -224,15 +225,11 @@ public class APIUtil { } public static String getServerUrl() { - String hostName = ServerConfiguration.getInstance().getFirstProperty(AndroidSenseConstants.HOST_NAME); try { - if (hostName == null) { - hostName = NetworkUtils.getLocalHostname(); - } + return org.apache.axis2.util.Utils.getIpAddress(); } catch (SocketException e) { - hostName = "localhost"; log.warn("Failed retrieving the hostname, therefore set to localhost", e); + return "localhost"; } - return hostName; } } diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/webapp/WEB-INF/web.xml b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/webapp/WEB-INF/web.xml index be0eee231f..2c66f5c1de 100644 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/webapp/WEB-INF/web.xml +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/webapp/WEB-INF/web.xml @@ -16,10 +16,6 @@ CXFServlet /* - - isAdminService - false - doAuthentication true diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.device-view/device-view.hbs b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.device-view/device-view.hbs index 952d78878e..e23f3c0c1c 100644 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.device-view/device-view.hbs +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.device-view/device-view.hbs @@ -86,7 +86,7 @@ href="{{portalUrl}}/portal/dashboards/geo-dashboard/?GLOBAL-STATE={{anchor}}"> - + View Device Location diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.realtime.analytics-view/analytics-view.hbs b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.realtime.analytics-view/analytics-view.hbs index 02f753c9f7..8c7a7383a6 100644 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.realtime.analytics-view/analytics-view.hbs +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.realtime.analytics-view/analytics-view.hbs @@ -23,7 +23,7 @@ - + View Device Analytics diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.type-view/private/config.json b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.type-view/private/config.json index 7975a2cbab..957ec1811a 100644 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.type-view/private/config.json +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.type-view/private/config.json @@ -1,6 +1,9 @@ { "deviceType": { "label": "Android Sense", - "category": "iot" + "category": "iot", + "scopes" : [ + "perm:android-sense:enroll" + ] } } \ No newline at end of file diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.type-view/type-view.hbs b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.type-view/type-view.hbs index 7d4e1c9b7b..ea00816706 100644 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.type-view/type-view.hbs +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.type-view/type-view.hbs @@ -42,7 +42,7 @@ Download APK Invite by Email - @@ -204,7 +204,7 @@
  • - + You can view all your connected devices @@ -212,7 +212,7 @@
  • - + You can select any one of your connected devices for available @@ -220,7 +220,7 @@
  • - + For historical analytics of sensor data navigate to device analytics page. diff --git a/components/device-types/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/util/ZipUtil.java b/components/device-types/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/util/ZipUtil.java index 414b24847b..627ced2565 100644 --- a/components/device-types/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/util/ZipUtil.java +++ b/components/device-types/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/util/ZipUtil.java @@ -24,6 +24,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.wso2.carbon.base.MultitenantConstants; import org.wso2.carbon.base.ServerConfiguration; +import org.wso2.carbon.core.util.Utils; import org.wso2.carbon.device.mgt.common.DeviceManagementException; import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationEntry; import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationManagementException; @@ -59,7 +60,9 @@ public class ZipUtil { private static final String HTTP_PORT_PROPERTY = "httpPort"; private static final String CONFIG_TYPE = "general"; private static final Log log = LogFactory.getLog(ZipUtil.class); - public static final String HOST_NAME = "HostName"; + private static final String LOCALHOST = "localhost"; + private static final String HTTP_PROTOCOL_HOST = "${iot.gateway.host}"; + private static final String HTTP_PROTOCOL_PORT = "${iot.gateway.http.port}"; public ZipArchive createZipFile(String owner, String tenantDomain, String deviceType, String deviceId, String deviceName, String token, @@ -72,8 +75,10 @@ public class ZipUtil { String iotServerIP; try { - iotServerIP = getServerUrl(); - String httpServerPort = System.getProperty(HTTP_PORT_PROPERTY); + iotServerIP = Utils.replaceSystemProperty(HTTP_PROTOCOL_HOST); + String serverIpAddress = getServerUrl(); + iotServerIP = iotServerIP.replace(LOCALHOST, serverIpAddress); + String httpServerPort = Utils.replaceSystemProperty(HTTP_PROTOCOL_PORT); Map contextParams = new HashMap<>(); @@ -117,17 +122,13 @@ public class ZipUtil { } } - private static String getServerUrl() { - String hostName = ServerConfiguration.getInstance().getFirstProperty(HOST_NAME); + public static String getServerUrl() { try { - if (hostName == null) { - hostName = NetworkUtils.getLocalHostname(); - } + return org.apache.axis2.util.Utils.getIpAddress(); } catch (SocketException e) { - hostName = "localhost"; log.warn("Failed retrieving the hostname, therefore set to localhost", e); + return "localhost"; } - return hostName; } private static ZipArchive getSketchArchive(String archivesPath, String templateSketchPath, Map contextParams diff --git a/components/device-types/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/webapp/WEB-INF/web.xml b/components/device-types/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/webapp/WEB-INF/web.xml index a137eb9cc7..96122464a3 100644 --- a/components/device-types/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/webapp/WEB-INF/web.xml +++ b/components/device-types/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/webapp/WEB-INF/web.xml @@ -16,10 +16,6 @@ CXFServlet /* - - isAdminService - false - doAuthentication true diff --git a/components/device-types/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.arduino.device-view/device-view.hbs b/components/device-types/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.arduino.device-view/device-view.hbs index 23aaa135e4..4f9f3a6e31 100644 --- a/components/device-types/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.arduino.device-view/device-view.hbs +++ b/components/device-types/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.arduino.device-view/device-view.hbs @@ -88,7 +88,7 @@ href="{{portalUrl}}/portal/dashboards/geo-dashboard/?GLOBAL-STATE={{anchor}}"> - + View Device Location diff --git a/components/device-types/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.arduino.realtime.analytics-view/analytics-view.hbs b/components/device-types/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.arduino.realtime.analytics-view/analytics-view.hbs index a261bb0c49..4463eaf8ac 100644 --- a/components/device-types/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.arduino.realtime.analytics-view/analytics-view.hbs +++ b/components/device-types/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.arduino.realtime.analytics-view/analytics-view.hbs @@ -31,7 +31,7 @@ - + View Device Analytics diff --git a/components/device-types/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.arduino.type-view/private/config.json b/components/device-types/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.arduino.type-view/private/config.json index e85ea2bc62..74d66878df 100644 --- a/components/device-types/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.arduino.type-view/private/config.json +++ b/components/device-types/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.arduino.type-view/private/config.json @@ -2,6 +2,10 @@ "deviceType": { "label": "Arduino", "category": "iot", - "downloadAgentUri": "arduino/device/download" + "downloadAgentUri": "arduino/device/download", + "category": "iot", + "scopes" : [ + "perm:arduino:enroll" + ] } } \ No newline at end of file diff --git a/components/device-types/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.arduino.type-view/type-view.hbs b/components/device-types/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.arduino.type-view/type-view.hbs index a2ada8403e..437d5400ab 100644 --- a/components/device-types/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.arduino.type-view/type-view.hbs +++ b/components/device-types/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.arduino.type-view/type-view.hbs @@ -66,7 +66,7 @@ Download Sketch -
    @@ -239,14 +239,14 @@
  • - + Arduino will publish it's internal temperature to WSO2-IoT-Server

    - + LED on PIN 13 can be controlled from Device Management page. diff --git a/components/device-types/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/util/ZipUtil.java b/components/device-types/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/util/ZipUtil.java index d8c955a158..e902609dee 100644 --- a/components/device-types/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/util/ZipUtil.java +++ b/components/device-types/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/util/ZipUtil.java @@ -23,6 +23,7 @@ import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.wso2.carbon.base.ServerConfiguration; +import org.wso2.carbon.core.util.Utils; import org.wso2.carbon.device.mgt.common.DeviceManagementException; import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationEntry; import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationManagementException; @@ -56,15 +57,12 @@ import java.util.zip.ZipOutputStream; public class ZipUtil { private static final Log log = LogFactory.getLog(ZipUtil.class); - public static final String HOST_NAME = "HostName"; - private static final String HTTPS_PORT_PROPERTY = "httpsPort"; - private static final String HTTP_PORT_PROPERTY = "httpPort"; private static final String LOCALHOST = "localhost"; - private static final String HTTPS_PROTOCOL_APPENDER = "https://"; - private static final String HTTP_PROTOCOL_APPENDER = "http://"; + private static final String HTTPS_PROTOCOL_URL = "https://${iot.gateway.host}:${iot.gateway.https.port}"; + private static final String HTTP_PROTOCOL_URL = "http://${iot.gateway.host}:${iot.gateway.http.port}"; private static final String CONFIG_TYPE = "general"; - private static final String DEFAULT_MQTT_ENDPOINT = "tcp://localhost:1886"; + private static final String DEFAULT_MQTT_ENDPOINT = "tcp://${mqtt.broker.host}:${mqtt.broker.port}"; public ZipArchive createZipFile(String owner, String tenantDomain, String deviceType, String deviceId, String deviceName, String token, @@ -78,16 +76,14 @@ public class ZipUtil { try { iotServerIP = getServerUrl(); - String httpsServerPort = System.getProperty(HTTPS_PORT_PROPERTY); - String httpServerPort = System.getProperty(HTTP_PORT_PROPERTY); - String httpsServerEP = HTTPS_PROTOCOL_APPENDER + iotServerIP + ":" + httpsServerPort; - String httpServerEP = HTTP_PROTOCOL_APPENDER + iotServerIP + ":" + httpServerPort; - String apimEndpoint = httpsServerEP; - String mqttEndpoint = DEFAULT_MQTT_ENDPOINT; + String httpsServerEP = Utils.replaceSystemProperty(HTTPS_PROTOCOL_URL); + String httpServerEP = Utils.replaceSystemProperty(HTTP_PROTOCOL_URL); + String mqttEndpoint = Utils.replaceSystemProperty(DEFAULT_MQTT_ENDPOINT); if (mqttEndpoint.contains(LOCALHOST)) { mqttEndpoint = mqttEndpoint.replace(LOCALHOST, iotServerIP); + httpsServerEP = httpsServerEP.replace(LOCALHOST, iotServerIP); + httpServerEP = httpServerEP.replace(LOCALHOST, iotServerIP); } - PlatformConfiguration configuration = APIUtil.getTenantConfigurationManagementService().getConfiguration( CONFIG_TYPE); if (configuration != null && configuration.getConfiguration() != null && configuration @@ -115,7 +111,7 @@ public class ZipUtil { contextParams.put("DEVICE_NAME", deviceName); contextParams.put("HTTPS_EP", httpsServerEP); contextParams.put("HTTP_EP", httpServerEP); - contextParams.put("APIM_EP", apimEndpoint); + contextParams.put("APIM_EP", httpsServerEP); contextParams.put("MQTT_EP", mqttEndpoint); contextParams.put("DEVICE_TOKEN", token); contextParams.put("DEVICE_REFRESH_TOKEN", refreshToken); @@ -130,17 +126,13 @@ public class ZipUtil { } } - private static String getServerUrl() { - String hostName = ServerConfiguration.getInstance().getFirstProperty(HOST_NAME); + public static String getServerUrl() { try { - if (hostName == null) { - hostName = NetworkUtils.getLocalHostname(); - } + return org.apache.axis2.util.Utils.getIpAddress(); } catch (SocketException e) { - hostName = "localhost"; log.warn("Failed retrieving the hostname, therefore set to localhost", e); + return "localhost"; } - return hostName; } private static ZipArchive getSketchArchive(String archivesPath, String templateSketchPath, Map contextParams diff --git a/components/device-types/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/webapp/WEB-INF/web.xml b/components/device-types/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/webapp/WEB-INF/web.xml index 975eb808a0..e6b97eaede 100644 --- a/components/device-types/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/webapp/WEB-INF/web.xml +++ b/components/device-types/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/webapp/WEB-INF/web.xml @@ -16,10 +16,6 @@ CXFServlet /* - - isAdminService - false - doAuthentication true diff --git a/components/device-types/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.raspberrypi.device-view/device-view.hbs b/components/device-types/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.raspberrypi.device-view/device-view.hbs index 42ad0d173f..8f77b561b1 100644 --- a/components/device-types/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.raspberrypi.device-view/device-view.hbs +++ b/components/device-types/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.raspberrypi.device-view/device-view.hbs @@ -88,7 +88,7 @@ href="{{portalUrl}}/portal/dashboards/geo-dashboard/?GLOBAL-STATE={{anchor}}"> - + View Device Location diff --git a/components/device-types/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.raspberrypi.realtime.analytics-view/analytics-view.hbs b/components/device-types/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.raspberrypi.realtime.analytics-view/analytics-view.hbs index a261bb0c49..4463eaf8ac 100644 --- a/components/device-types/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.raspberrypi.realtime.analytics-view/analytics-view.hbs +++ b/components/device-types/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.raspberrypi.realtime.analytics-view/analytics-view.hbs @@ -31,7 +31,7 @@ - + View Device Analytics diff --git a/components/device-types/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.raspberrypi.type-view/private/config.json b/components/device-types/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.raspberrypi.type-view/private/config.json index f19ba03414..224f055c3a 100644 --- a/components/device-types/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.raspberrypi.type-view/private/config.json +++ b/components/device-types/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.raspberrypi.type-view/private/config.json @@ -2,6 +2,9 @@ "deviceType": { "label": "Raspberry Pi", "category": "iot", - "downloadAgentUri": "raspberrypi/device/download" + "downloadAgentUri": "raspberrypi/device/download", + "scopes" : [ + "perm:raspberrypi:enroll" + ] } } \ No newline at end of file diff --git a/components/device-types/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.raspberrypi.type-view/type-view.hbs b/components/device-types/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.raspberrypi.type-view/type-view.hbs index 26dd1b94a5..8b645b36a3 100644 --- a/components/device-types/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.raspberrypi.type-view/type-view.hbs +++ b/components/device-types/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.raspberrypi.type-view/type-view.hbs @@ -61,7 +61,7 @@ Download Agent -
    @@ -217,7 +217,7 @@
  • - + [sudo ./testAgent.sh] - Script to test agent @@ -226,7 +226,7 @@
  • - + [sudo ./startService.sh] - Use this to start diff --git a/components/device-types/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.agent.impl/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/agent/core/AgentUtilOperations.java b/components/device-types/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.agent.impl/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/agent/core/AgentUtilOperations.java index 7a365174b5..8f6fe409b7 100644 --- a/components/device-types/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.agent.impl/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/agent/core/AgentUtilOperations.java +++ b/components/device-types/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.agent.impl/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/agent/core/AgentUtilOperations.java @@ -437,7 +437,7 @@ public class AgentUtilOperations { } private class APIManagerTokenUtils { - public static final String TOKEN_ENDPOINT = "/oauth2/token"; + public static final String TOKEN_ENDPOINT = "/token"; public static final String GRANT_TYPE = "grant_type"; public static final String ACCESS_TOKEN = "access_token"; public static final String REFRESH_TOKEN = "refresh_token"; diff --git a/components/device-types/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/util/ZipUtil.java b/components/device-types/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/util/ZipUtil.java index 39e938f2b8..e9bcb6c60b 100644 --- a/components/device-types/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/util/ZipUtil.java +++ b/components/device-types/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/util/ZipUtil.java @@ -25,14 +25,13 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.json.JSONObject; import org.wso2.carbon.apimgt.application.extension.constants.ApiApplicationConstants; -import org.wso2.carbon.base.ServerConfiguration; +import org.wso2.carbon.core.util.Utils; import org.wso2.carbon.device.mgt.common.DeviceManagementException; import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationEntry; import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationManagementException; import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration; import org.wso2.carbon.device.mgt.iot.virtualfirealarm.service.impl.xmpp.XmppConfig; import org.wso2.carbon.utils.CarbonUtils; -import org.wso2.carbon.utils.NetworkUtils; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; @@ -64,10 +63,10 @@ public class ZipUtil { private static final String HTTP_PORT_PROPERTY = "httpPort"; private static final String LOCALHOST = "localhost"; - private static final String HTTPS_PROTOCOL_APPENDER = "https://"; - private static final String HTTP_PROTOCOL_APPENDER = "http://"; + private static final String HTTPS_PROTOCOL_URL = "https://${iot.gateway.host}:${iot.gateway.https.port}"; + private static final String HTTP_PROTOCOL_URL = "http://${iot.gateway.host}:${iot.gateway.http.port}"; private static final String CONFIG_TYPE = "general"; - private static final String DEFAULT_MQTT_ENDPOINT = "tcp://localhost:1886"; + private static final String DEFAULT_MQTT_ENDPOINT = "tcp://${mqtt.broker.host}:${mqtt.broker.port}"; public static final String HOST_NAME = "HostName"; public ZipArchive createZipFile(String owner, String deviceType, String deviceId, String deviceName, @@ -83,13 +82,13 @@ public class ZipUtil { try { iotServerIP = getServerUrl(); - String httpsServerPort = System.getProperty(HTTPS_PORT_PROPERTY); - String httpServerPort = System.getProperty(HTTP_PORT_PROPERTY); - String httpsServerEP = HTTPS_PROTOCOL_APPENDER + iotServerIP + ":" + httpsServerPort; - String httpServerEP = HTTP_PROTOCOL_APPENDER + iotServerIP + ":" + httpServerPort; - String mqttEndpoint = DEFAULT_MQTT_ENDPOINT; + String httpsServerEP = Utils.replaceSystemProperty(HTTPS_PROTOCOL_URL); + String httpServerEP = Utils.replaceSystemProperty(HTTP_PROTOCOL_URL); + String mqttEndpoint = Utils.replaceSystemProperty(DEFAULT_MQTT_ENDPOINT); if (mqttEndpoint.contains(LOCALHOST)) { mqttEndpoint = mqttEndpoint.replace(LOCALHOST, iotServerIP); + httpsServerEP = httpsServerEP.replace(LOCALHOST, iotServerIP); + httpServerEP = httpServerEP.replace(LOCALHOST, iotServerIP); } String xmppEndpoint = ""; @@ -161,16 +160,12 @@ public class ZipUtil { } public static String getServerUrl() { - String hostName = ServerConfiguration.getInstance().getFirstProperty(HOST_NAME); try { - if (hostName == null) { - hostName = NetworkUtils.getLocalHostname(); - } + return org.apache.axis2.util.Utils.getIpAddress(); } catch (SocketException e) { - hostName = "localhost"; log.warn("Failed retrieving the hostname, therefore set to localhost", e); + return "localhost"; } - return hostName; } public static ZipArchive getSketchArchive(String archivesPath, String templateSketchPath, Map contextParams diff --git a/components/device-types/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/webapp/WEB-INF/web.xml b/components/device-types/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/webapp/WEB-INF/web.xml index eb4a397bf7..4337c57204 100644 --- a/components/device-types/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/webapp/WEB-INF/web.xml +++ b/components/device-types/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/webapp/WEB-INF/web.xml @@ -16,18 +16,10 @@ CXFServlet /* - - isAdminService - false - doAuthentication true - - providerTenantDomain - carbon.super - diff --git a/components/device-types/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.virtual_firealarm.device-view/device-view.hbs b/components/device-types/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.virtual_firealarm.device-view/device-view.hbs index 9cd2ca642b..c746157822 100644 --- a/components/device-types/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.virtual_firealarm.device-view/device-view.hbs +++ b/components/device-types/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.virtual_firealarm.device-view/device-view.hbs @@ -80,7 +80,7 @@ - + Add device specific policy diff --git a/components/device-types/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.virtual_firealarm.realtime.analytics-view/analytics-view.hbs b/components/device-types/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.virtual_firealarm.realtime.analytics-view/analytics-view.hbs index 0a7848a4d8..3c6c98445e 100755 --- a/components/device-types/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.virtual_firealarm.realtime.analytics-view/analytics-view.hbs +++ b/components/device-types/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.virtual_firealarm.realtime.analytics-view/analytics-view.hbs @@ -31,7 +31,7 @@ - + View Device Analytics diff --git a/components/device-types/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.virtual_firealarm.type-view/private/config.json b/components/device-types/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.virtual_firealarm.type-view/private/config.json index 5867d81e9d..5252c86943 100644 --- a/components/device-types/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.virtual_firealarm.type-view/private/config.json +++ b/components/device-types/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.virtual_firealarm.type-view/private/config.json @@ -3,6 +3,9 @@ "label": "Virtual Firealarm", "category": "virtual", "downloadAgentUri": "virtual_firealarm/device/download", + "scopes" : [ + "perm:firealarm:enroll" + ], "features": { "buzz": { "icon" : "fw-dial-up" diff --git a/components/device-types/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.virtual_firealarm.type-view/type-view.hbs b/components/device-types/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.virtual_firealarm.type-view/type-view.hbs index 27b2ae7372..c37a9b9c0b 100644 --- a/components/device-types/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.virtual_firealarm.type-view/type-view.hbs +++ b/components/device-types/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.virtual_firealarm.type-view/type-view.hbs @@ -54,7 +54,7 @@ Download Agent -
    @@ -63,7 +63,7 @@ - + diff --git a/components/extensions/cdmf-transport-adapters/input/org.wso2.carbon.device.mgt.input.adapter.mqtt/src/main/resources/org/wso2/carbon/device/mgt/input/adapter/mqtt/i18n/Resources.properties b/components/extensions/cdmf-transport-adapters/input/org.wso2.carbon.device.mgt.input.adapter.mqtt/src/main/resources/org/wso2/carbon/device/mgt/input/adapter/mqtt/i18n/Resources.properties index a2d8774193..38cfcf7c66 100644 --- a/components/extensions/cdmf-transport-adapters/input/org.wso2.carbon.device.mgt.input.adapter.mqtt/src/main/resources/org/wso2/carbon/device/mgt/input/adapter/mqtt/i18n/Resources.properties +++ b/components/extensions/cdmf-transport-adapters/input/org.wso2.carbon.device.mgt.input.adapter.mqtt/src/main/resources/org/wso2/carbon/device/mgt/input/adapter/mqtt/i18n/Resources.properties @@ -31,7 +31,7 @@ dcrUrl=dcrUrl dcrUrl.hint=dynamic client registration endpoint URL to create application (if required) eg: https://localhost:9443/dynamic-client-web/register contentValidator=contentValidation contentValidator.hint=Class Name of the content Validation or 'default' to set default class, required to implement (if required) -url.hint=MQTT broker url tcp://localhost:1886 +url.hint=MQTT broker url tcp://localhost:1883 cleanSession=Clean Session cleanSession.hint=Persist topic subscriptions and ack positions across client sessions keepAlive=Keep Alive (In seconds) diff --git a/components/extensions/cdmf-transport-adapters/output/org.wso2.carbon.device.mgt.output.adapter.websocket/src/main/java/org/wso2/carbon/device/mgt/output/adapter/websocket/authorization/DeviceAuthorizer.java b/components/extensions/cdmf-transport-adapters/output/org.wso2.carbon.device.mgt.output.adapter.websocket/src/main/java/org/wso2/carbon/device/mgt/output/adapter/websocket/authorization/DeviceAuthorizer.java index d8e779491d..0edea4d1e8 100644 --- a/components/extensions/cdmf-transport-adapters/output/org.wso2.carbon.device.mgt.output.adapter.websocket/src/main/java/org/wso2/carbon/device/mgt/output/adapter/websocket/authorization/DeviceAuthorizer.java +++ b/components/extensions/cdmf-transport-adapters/output/org.wso2.carbon.device.mgt.output.adapter.websocket/src/main/java/org/wso2/carbon/device/mgt/output/adapter/websocket/authorization/DeviceAuthorizer.java @@ -61,6 +61,11 @@ public class DeviceAuthorizer implements Authorizer { @Override public void init(Map globalProperties) { statPermissions = getPermissions(globalProperties); + if (statPermissions != null && !statPermissions.isEmpty()) { + for (String permission : statPermissions) { + PermissionUtil.putPermission(permission); + } + } try { deviceAccessAuthorizationAdminService = Feign.builder() .requestInterceptor(new OAuthRequestInterceptor(globalProperties)) diff --git a/components/extensions/cdmf-transport-adapters/output/org.wso2.carbon.device.mgt.output.adapter.websocket/src/main/java/org/wso2/carbon/device/mgt/output/adapter/websocket/authorization/PermissionUtil.java b/components/extensions/cdmf-transport-adapters/output/org.wso2.carbon.device.mgt.output.adapter.websocket/src/main/java/org/wso2/carbon/device/mgt/output/adapter/websocket/authorization/PermissionUtil.java new file mode 100644 index 0000000000..cab25a8c4a --- /dev/null +++ b/components/extensions/cdmf-transport-adapters/output/org.wso2.carbon.device.mgt.output.adapter.websocket/src/main/java/org/wso2/carbon/device/mgt/output/adapter/websocket/authorization/PermissionUtil.java @@ -0,0 +1,76 @@ +/* + * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * WSO2 Inc. 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.wso2.carbon.device.mgt.output.adapter.websocket.authorization; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.wso2.carbon.base.MultitenantConstants; +import org.wso2.carbon.device.mgt.output.adapter.websocket.internal.WebsocketEventAdaptorServiceDataHolder; +import org.wso2.carbon.registry.api.Resource; +import org.wso2.carbon.registry.core.Registry; +import org.wso2.carbon.registry.core.exceptions.RegistryException; + +import java.util.StringTokenizer; + +/** + * Utility class which holds necessary utility methods required for persisting permissions in + * registry. + */ +public class PermissionUtil { + + public static final String PERMISSION_PROPERTY_NAME = "name"; + private static Log log = LogFactory.getLog(DeviceAuthorizer.class); + + public static void putPermission(String permission) { + try { + StringTokenizer tokenizer = new StringTokenizer(permission, "/"); + String lastToken = "", currentToken, tempPath; + while (tokenizer.hasMoreTokens()) { + currentToken = tokenizer.nextToken(); + tempPath = lastToken + "/" + currentToken; + if (!checkResourceExists(tempPath)) { + createRegistryCollection(tempPath, currentToken); + + } + lastToken = tempPath; + } + } catch (org.wso2.carbon.registry.api.RegistryException e) { + log.error("Failed to creation permission in registry" + permission, e); + } + } + + public static void createRegistryCollection(String path, String resourceName) + throws org.wso2.carbon.registry.api.RegistryException { + Resource resource = getGovernanceRegistry().newCollection(); + resource.addProperty(PERMISSION_PROPERTY_NAME, resourceName); + getGovernanceRegistry().beginTransaction(); + getGovernanceRegistry().put(path, resource); + getGovernanceRegistry().commitTransaction(); + } + + public static boolean checkResourceExists(String path) + throws RegistryException { + return getGovernanceRegistry().resourceExists(path); + } + + public static Registry getGovernanceRegistry() throws RegistryException { + return WebsocketEventAdaptorServiceDataHolder.getRegistryService() + .getGovernanceSystemRegistry(MultitenantConstants.SUPER_TENANT_ID); + } + +} diff --git a/components/extensions/cdmf-transport-adapters/output/org.wso2.carbon.device.mgt.output.adapter.websocket/src/main/java/org/wso2/carbon/device/mgt/output/adapter/websocket/authorization/client/OAuthRequestInterceptor.java b/components/extensions/cdmf-transport-adapters/output/org.wso2.carbon.device.mgt.output.adapter.websocket/src/main/java/org/wso2/carbon/device/mgt/output/adapter/websocket/authorization/client/OAuthRequestInterceptor.java index 8ab7db9384..ffae0b7979 100755 --- a/components/extensions/cdmf-transport-adapters/output/org.wso2.carbon.device.mgt.output.adapter.websocket/src/main/java/org/wso2/carbon/device/mgt/output/adapter/websocket/authorization/client/OAuthRequestInterceptor.java +++ b/components/extensions/cdmf-transport-adapters/output/org.wso2.carbon.device.mgt.output.adapter.websocket/src/main/java/org/wso2/carbon/device/mgt/output/adapter/websocket/authorization/client/OAuthRequestInterceptor.java @@ -45,6 +45,7 @@ public class OAuthRequestInterceptor implements RequestInterceptor { private static final String APPLICATION_NAME = "websocket-app"; private static final String PASSWORD_GRANT_TYPE = "password"; private static final String REFRESH_GRANT_TYPE = "refresh_token"; + private static final String REQUIRED_SCOPE = "perm:authorization:verify"; private ApiApplicationRegistrationService apiApplicationRegistrationService; private TokenIssuerService tokenIssuerService; @@ -76,7 +77,6 @@ public class OAuthRequestInterceptor implements RequestInterceptor { username = getUsername(globalProperties); password = getPassword(globalProperties); tokenEndpoint = getTokenEndpoint(globalProperties); - scopes = getScopes(globalProperties); apiApplicationRegistrationService = Feign.builder().requestInterceptor( new BasicAuthRequestInterceptor(username, password)) .contract(new JAXRSContract()).encoder(new GsonEncoder()).decoder(new GsonDecoder()) @@ -104,11 +104,7 @@ public class OAuthRequestInterceptor implements RequestInterceptor { new BasicAuthRequestInterceptor(consumerKey, consumerSecret)) .contract(new JAXRSContract()).encoder(new GsonEncoder()).decoder(new GsonDecoder()) .target(TokenIssuerService.class, tokenEndpoint); - if (scopes == null || scopes.isEmpty()) { - tokenInfo = tokenIssuerService.getToken(PASSWORD_GRANT_TYPE, username, password); - } else { - tokenInfo = tokenIssuerService.getToken(PASSWORD_GRANT_TYPE, username, password, scopes); - } + tokenInfo = tokenIssuerService.getToken(PASSWORD_GRANT_TYPE, username, password, REQUIRED_SCOPE); tokenInfo.setExpires_in(System.currentTimeMillis() + tokenInfo.getExpires_in()); } synchronized(this) { @@ -163,9 +159,4 @@ public class OAuthRequestInterceptor implements RequestInterceptor { return refreshTimeOffset; } - private String getScopes(Map globalProperties) { - return globalProperties.get(TOKEN_SCOPES); - } - - } diff --git a/components/extensions/cdmf-transport-adapters/output/org.wso2.carbon.device.mgt.output.adapter.websocket/src/main/java/org/wso2/carbon/device/mgt/output/adapter/websocket/authorization/client/dto/TokenIssuerService.java b/components/extensions/cdmf-transport-adapters/output/org.wso2.carbon.device.mgt.output.adapter.websocket/src/main/java/org/wso2/carbon/device/mgt/output/adapter/websocket/authorization/client/dto/TokenIssuerService.java index 046184559b..679d068836 100755 --- a/components/extensions/cdmf-transport-adapters/output/org.wso2.carbon.device.mgt.output.adapter.websocket/src/main/java/org/wso2/carbon/device/mgt/output/adapter/websocket/authorization/client/dto/TokenIssuerService.java +++ b/components/extensions/cdmf-transport-adapters/output/org.wso2.carbon.device.mgt.output.adapter.websocket/src/main/java/org/wso2/carbon/device/mgt/output/adapter/websocket/authorization/client/dto/TokenIssuerService.java @@ -27,6 +27,7 @@ package org.wso2.carbon.device.mgt.output.adapter.websocket.authorization.client.dto; import javax.ws.rs.Consumes; +import javax.ws.rs.FormParam; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; @@ -48,7 +49,7 @@ public interface TokenIssuerService { @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_FORM_URLENCODED) AccessTokenInfo getToken(@QueryParam("grant_type") String grant, @QueryParam("username") String username, - @QueryParam("password") String password, @QueryParam("scopes") String scopes); + @QueryParam("password") String password, @QueryParam("scope") String scopes); @POST @Produces(MediaType.APPLICATION_JSON) diff --git a/components/extensions/cdmf-transport-adapters/output/org.wso2.carbon.device.mgt.output.adapter.websocket/src/main/java/org/wso2/carbon/device/mgt/output/adapter/websocket/internal/WebsocketEventAdaptorServiceDataHolder.java b/components/extensions/cdmf-transport-adapters/output/org.wso2.carbon.device.mgt.output.adapter.websocket/src/main/java/org/wso2/carbon/device/mgt/output/adapter/websocket/internal/WebsocketEventAdaptorServiceDataHolder.java index 0485b07103..7cf22b0a2a 100644 --- a/components/extensions/cdmf-transport-adapters/output/org.wso2.carbon.device.mgt.output.adapter.websocket/src/main/java/org/wso2/carbon/device/mgt/output/adapter/websocket/internal/WebsocketEventAdaptorServiceDataHolder.java +++ b/components/extensions/cdmf-transport-adapters/output/org.wso2.carbon.device.mgt.output.adapter.websocket/src/main/java/org/wso2/carbon/device/mgt/output/adapter/websocket/internal/WebsocketEventAdaptorServiceDataHolder.java @@ -20,6 +20,7 @@ package org.wso2.carbon.device.mgt.output.adapter.websocket.internal; import org.wso2.carbon.device.mgt.output.adapter.websocket.WebsocketOutputCallbackControllerServiceImpl; import org.wso2.carbon.event.stream.core.EventStreamService; +import org.wso2.carbon.registry.core.service.RegistryService; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.LinkedBlockingDeque; @@ -35,6 +36,7 @@ public final class WebsocketEventAdaptorServiceDataHolder { private static ConcurrentHashMap>> tenantSpecificStreamEventMap = new ConcurrentHashMap<>(); private static EventStreamService eventStreamService; + private static RegistryService registryService; public static void registerEventStreamService(EventStreamService eventBuilderService) { WebsocketEventAdaptorServiceDataHolder.eventStreamService = eventBuilderService; @@ -63,4 +65,15 @@ public final class WebsocketEventAdaptorServiceDataHolder { getTenantSpecificStreamEventMap() { return tenantSpecificStreamEventMap; } + + public static RegistryService getRegistryService() { + if (registryService == null) { + throw new IllegalStateException("Registry service is not initialized properly"); + } + return registryService; + } + + public static void setRegistryService(RegistryService registryService) { + WebsocketEventAdaptorServiceDataHolder.registryService = registryService; + } } diff --git a/components/extensions/cdmf-transport-adapters/output/org.wso2.carbon.device.mgt.output.adapter.websocket/src/main/java/org/wso2/carbon/device/mgt/output/adapter/websocket/internal/WebsocketLocalEventAdapterServiceComponent.java b/components/extensions/cdmf-transport-adapters/output/org.wso2.carbon.device.mgt.output.adapter.websocket/src/main/java/org/wso2/carbon/device/mgt/output/adapter/websocket/internal/WebsocketLocalEventAdapterServiceComponent.java index 4820d46e61..9425f9cdad 100644 --- a/components/extensions/cdmf-transport-adapters/output/org.wso2.carbon.device.mgt.output.adapter.websocket/src/main/java/org/wso2/carbon/device/mgt/output/adapter/websocket/internal/WebsocketLocalEventAdapterServiceComponent.java +++ b/components/extensions/cdmf-transport-adapters/output/org.wso2.carbon.device.mgt.output.adapter.websocket/src/main/java/org/wso2/carbon/device/mgt/output/adapter/websocket/internal/WebsocketLocalEventAdapterServiceComponent.java @@ -26,12 +26,19 @@ import org.wso2.carbon.device.mgt.output.adapter.websocket.WebsocketOutputCallba import org.wso2.carbon.event.output.adapter.core.OutputEventAdapterFactory; import org.wso2.carbon.device.mgt.output.adapter.websocket.WebsocketOutputCallbackControllerService; import org.wso2.carbon.event.stream.core.EventStreamService; +import org.wso2.carbon.registry.core.service.RegistryService; /** * @scr.component component.name="output.extensions.secured.websocket.AdapterService.component" immediate="true" * @scr.reference name="eventStreamService.service" * interface="org.wso2.carbon.event.stream.core.EventStreamService" cardinality="1..1" * policy="dynamic" bind="setEventStreamService" unbind="unsetEventStreamService" + * @scr.reference name="registry.service" + * interface="org.wso2.carbon.registry.core.service.RegistryService" + * cardinality="1..1" + * policy="dynamic" + * bind="setRegistryService" + * unbind="unsetRegistryService" */ public class WebsocketLocalEventAdapterServiceComponent { @@ -80,4 +87,28 @@ public class WebsocketLocalEventAdapterServiceComponent { } WebsocketEventAdaptorServiceDataHolder.registerEventStreamService(null); } + + /** + * Sets Registry Service. + * + * @param registryService An instance of RegistryService + */ + protected void setRegistryService(RegistryService registryService) { + if (log.isDebugEnabled()) { + log.debug("Setting Registry Service"); + } + WebsocketEventAdaptorServiceDataHolder.setRegistryService(registryService); + } + + /** + * Unsets Registry Service. + * + * @param registryService An instance of RegistryService + */ + protected void unsetRegistryService(RegistryService registryService) { + if (log.isDebugEnabled()) { + log.debug("Un setting Registry Service"); + } + WebsocketEventAdaptorServiceDataHolder.setRegistryService(null); + } } diff --git a/components/extensions/mb-extensions/org.wso2.carbon.andes.extensions.device.mgt.mqtt.authorization/src/main/java/org/wso2/carbon/andes/extensions/device/mgt/mqtt/authorization/client/OAuthRequestInterceptor.java b/components/extensions/mb-extensions/org.wso2.carbon.andes.extensions.device.mgt.mqtt.authorization/src/main/java/org/wso2/carbon/andes/extensions/device/mgt/mqtt/authorization/client/OAuthRequestInterceptor.java index 886daa9124..f6cbd1c300 100755 --- a/components/extensions/mb-extensions/org.wso2.carbon.andes.extensions.device.mgt.mqtt.authorization/src/main/java/org/wso2/carbon/andes/extensions/device/mgt/mqtt/authorization/client/OAuthRequestInterceptor.java +++ b/components/extensions/mb-extensions/org.wso2.carbon.andes.extensions.device.mgt.mqtt.authorization/src/main/java/org/wso2/carbon/andes/extensions/device/mgt/mqtt/authorization/client/OAuthRequestInterceptor.java @@ -18,6 +18,8 @@ import feign.Feign; import feign.RequestInterceptor; import feign.RequestTemplate; import feign.auth.BasicAuthRequestInterceptor; +import feign.codec.EncodeException; +import feign.codec.Encoder; import feign.gson.GsonDecoder; import feign.gson.GsonEncoder; import feign.jaxrs.JAXRSContract; @@ -40,6 +42,7 @@ public class OAuthRequestInterceptor implements RequestInterceptor { private static final String APPLICATION_NAME = "mqtt_broker"; private static final String PASSWORD_GRANT_TYPE = "password"; private static final String REFRESH_GRANT_TYPE = "refresh_token"; + private static final String REQUIRED_SCOPE = "perm:authorization:verify"; private ApiApplicationRegistrationService apiApplicationRegistrationService; private TokenIssuerService tokenIssuerService; @@ -75,8 +78,9 @@ public class OAuthRequestInterceptor implements RequestInterceptor { tokenIssuerService = Feign.builder().requestInterceptor( new BasicAuthRequestInterceptor(consumerKey, consumerSecret)) .contract(new JAXRSContract()).encoder(new GsonEncoder()).decoder(new GsonDecoder()) - .target(TokenIssuerService.class, AuthorizationConfigurationManager.getInstance().getTokenEndpoint()); - tokenInfo = tokenIssuerService.getToken(PASSWORD_GRANT_TYPE, username, password); + .target(TokenIssuerService.class, + AuthorizationConfigurationManager.getInstance().getTokenEndpoint()); + tokenInfo = tokenIssuerService.getToken(PASSWORD_GRANT_TYPE, username, password, REQUIRED_SCOPE); tokenInfo.setExpires_in(System.currentTimeMillis() + tokenInfo.getExpires_in()); } synchronized (this) { @@ -89,5 +93,4 @@ public class OAuthRequestInterceptor implements RequestInterceptor { template.header("Authorization", headerValue); } - } diff --git a/components/extensions/mb-extensions/org.wso2.carbon.andes.extensions.device.mgt.mqtt.authorization/src/main/java/org/wso2/carbon/andes/extensions/device/mgt/mqtt/authorization/client/dto/TokenIssuerService.java b/components/extensions/mb-extensions/org.wso2.carbon.andes.extensions.device.mgt.mqtt.authorization/src/main/java/org/wso2/carbon/andes/extensions/device/mgt/mqtt/authorization/client/dto/TokenIssuerService.java index 3e8413b457..7af04744a4 100755 --- a/components/extensions/mb-extensions/org.wso2.carbon.andes.extensions.device.mgt.mqtt.authorization/src/main/java/org/wso2/carbon/andes/extensions/device/mgt/mqtt/authorization/client/dto/TokenIssuerService.java +++ b/components/extensions/mb-extensions/org.wso2.carbon.andes.extensions.device.mgt.mqtt.authorization/src/main/java/org/wso2/carbon/andes/extensions/device/mgt/mqtt/authorization/client/dto/TokenIssuerService.java @@ -33,6 +33,12 @@ public interface TokenIssuerService { AccessTokenInfo getToken(@QueryParam("grant_type") String grant, @QueryParam("username") String username, @QueryParam("password") String password); + @POST + @Produces(MediaType.APPLICATION_JSON) + @Consumes(MediaType.APPLICATION_FORM_URLENCODED) + AccessTokenInfo getToken(@QueryParam("grant_type") String grant, @QueryParam("username") String username, + @QueryParam("password") String password, @QueryParam("scope") String scopes); + @POST @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_FORM_URLENCODED) diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.api/src/main/webapp/WEB-INF/web.xml b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.api/src/main/webapp/WEB-INF/web.xml index 63510fe9b1..b22bd2b5d6 100644 --- a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.api/src/main/webapp/WEB-INF/web.xml +++ b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.api/src/main/webapp/WEB-INF/web.xml @@ -42,11 +42,6 @@ 60 - - - isAdminService - false - managed-api-enabled true diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.device-view/device-view.hbs b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.device-view/device-view.hbs index 66cc6dca4b..4d66722555 100644 --- a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.device-view/device-view.hbs +++ b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.device-view/device-view.hbs @@ -52,7 +52,7 @@ Status {{#equal device.status "ACTIVE"}}Active{{/equal}} + class="fw fw-success icon-success">Active{{/equal}} {{#equal device.status "INACTIVE"}}Inactive{{/equal}} {{#equal device.status "BLOCKED"}}
    + href="{{portalUrl}}/portal/dashboards/geo-dashboard/?GLOBAL-STATE={{deviceId}},{{deviceType}}"> - + View device on the map @@ -439,4 +439,4 @@ {{js "js/device-detail.js"}} {{js "js/load-map.js"}} {{/if}} -{{/zone}} \ No newline at end of file +{{/zone}} diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.device-view/device-view.js b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.device-view/device-view.js index ee77264770..c192718e88 100644 --- a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.device-view/device-view.js +++ b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.device-view/device-view.js @@ -213,7 +213,7 @@ function onRequest(context) { deviceViewData["autoCompleteParams"] = autoCompleteParams; deviceViewData["portalUrl"] = devicemgtProps['portalURL']; - var anchor = { "device" : { "id" : deviceId, "type" : deviceType}}; - deviceViewData["anchor"] = JSON.stringify(anchor); + deviceViewData["deviceId"] = deviceId; + deviceViewData["deviceType"] = deviceType; return deviceViewData; } diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.device-view/public/js/device-detail.js b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.device-view/public/js/device-detail.js index 0c08e071e3..449dec84c0 100755 --- a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.device-view/public/js/device-detail.js +++ b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.device-view/public/js/device-detail.js @@ -157,7 +157,7 @@ var InitiateViewOption = null; var html; switch (status) { case "COMPLETED" : - html = " Completed"; + html = " Completed"; break; case "PENDING" : html = " Pending"; @@ -166,10 +166,10 @@ var InitiateViewOption = null; html = " Error"; break; case "IN_PROGRESS" : - html = " In Progress"; + html = " In Progress"; break; case "REPEATED" : - html = " Repeated"; + html = " Repeated"; break; } return html; diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.device-view/public/templates/applications-list.hbs b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.device-view/public/templates/applications-list.hbs index 3b55136af9..ec6029dcc2 100755 --- a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.device-view/public/templates/applications-list.hbs +++ b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.device-view/public/templates/applications-list.hbs @@ -7,7 +7,7 @@ {{#equal platform "windows"}}{{/equal}} {{#equal isActive true}} - +  Active {{name}} diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.device-view/public/templates/policy-compliance.hbs b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.device-view/public/templates/policy-compliance.hbs index b38f5cbd51..8fba741a6a 100755 --- a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.device-view/public/templates/policy-compliance.hbs +++ b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.device-view/public/templates/policy-compliance.hbs @@ -34,7 +34,7 @@
    Compliance : {{#equal compliance "COMPLIANT"}} - Compliant + Compliant {{/equal}} {{#equal compliance "NON-COMPLIANT"}} Not Compliant @@ -48,7 +48,7 @@ - + View @@ -70,7 +70,7 @@ {{featureCode}} - {{#equal compliance true}} Compliant{{/equal}} + {{#equal compliance true}} Compliant{{/equal}} {{#equal compliance false}} Not Compliant{{/equal}} diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.operation-bar/operation-bar.hbs b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.operation-bar/operation-bar.hbs index c9f1d5c584..688302a90d 100644 --- a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.operation-bar/operation-bar.hbs +++ b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.operation-bar/operation-bar.hbs @@ -55,7 +55,7 @@

    - + {{name}} @@ -126,7 +126,7 @@

    - +
    diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.policy-edit/public/templates/android-policy-edit.hbs b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.policy-edit/public/templates/android-policy-edit.hbs index d99897ea72..b6aba2f230 100644 --- a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.policy-edit/public/templates/android-policy-edit.hbs +++ b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.policy-edit/public/templates/android-policy-edit.hbs @@ -23,8 +23,8 @@ Passcode Policy - + class="fw fw-success">
    +
    @@ -32,8 +32,8 @@ Restrictions - - + + @@ -42,8 +42,8 @@ Encryption Settings - + class="fw fw-success"> + @@ -52,8 +52,8 @@ Wi-Fi Settings - - + + @@ -61,8 +61,8 @@ Virtual Private Network - - + + @@ -70,8 +70,8 @@ Work-Profile Configurations - - + + @@ -81,8 +81,8 @@ Application Restrictions - + class="fw fw-success"> + @@ -91,9 +91,9 @@ System Update Policy (COSU) + class="fw fw-success"> + class="fw fw-success"> @@ -102,8 +102,8 @@ Whitelist Apps (COSU) - + class="fw fw-success"> + @@ -965,7 +965,7 @@ data-click-event="add-form"> - + Add Application @@ -1010,7 +1010,7 @@ - + @@ -1400,7 +1400,7 @@ data-click-event="add-form"> - + Add Application @@ -1446,7 +1446,7 @@ - + diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.policy-view/public/templates/android-policy-view.hbs b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.policy-view/public/templates/android-policy-view.hbs index 984bc21af3..2037c9c1c8 100644 --- a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.policy-view/public/templates/android-policy-view.hbs +++ b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.policy-view/public/templates/android-policy-view.hbs @@ -6,8 +6,8 @@ Passcode Policy - + class="fw fw-success"> + @@ -15,8 +15,8 @@ Restrictions - - + + @@ -25,8 +25,8 @@ Encryption Settings - + class="fw fw-success"> + @@ -35,8 +35,8 @@ Wi-Fi Settings - - + + @@ -44,8 +44,8 @@ Virtual Private Network - - + + @@ -53,8 +53,8 @@ Work-Profile Configurations - - + + @@ -64,8 +64,8 @@ Applications Restrictions - + class="fw fw-success"> + @@ -74,9 +74,9 @@ System Update Policy (COSU) + class="fw fw-success"> + class="fw fw-success"> @@ -85,8 +85,8 @@ Whitelist Apps (COSU) - + class="fw fw-success"> + @@ -779,13 +779,13 @@ - + - + @@ -964,7 +964,7 @@ data-click-event="add-form"> - + Add Application @@ -1009,7 +1009,7 @@ - + @@ -1511,7 +1511,7 @@ data-click-event="add-form"> - + Add Application @@ -1558,7 +1558,7 @@ - + diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.policy-wizard/public/templates/android-policy-operations.hbs b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.policy-wizard/public/templates/android-policy-operations.hbs index 00fdac102e..1f58ea3290 100644 --- a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.policy-wizard/public/templates/android-policy-operations.hbs +++ b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.policy-wizard/public/templates/android-policy-operations.hbs @@ -23,8 +23,8 @@ Passcode Policy - + class="fw fw-success"> + @@ -32,8 +32,8 @@ Restrictions - - + + @@ -42,8 +42,8 @@ Encryption Settings - + class="fw fw-success"> + @@ -52,8 +52,8 @@ Wi-Fi Settings - - + + @@ -61,8 +61,8 @@ Virtual Private Network - - + + @@ -70,8 +70,8 @@ Work-Profile Configurations - - + + @@ -81,8 +81,8 @@ Application Restrictions - + class="fw fw-success"> + @@ -91,9 +91,9 @@ System Update Policy (COSU) + class="fw fw-success"> + class="fw fw-success"> @@ -102,8 +102,8 @@ Whitelist Apps (COSU) - + class="fw fw-success"> + @@ -965,7 +965,7 @@ data-click-event="add-form"> - + Add Application @@ -1010,7 +1010,7 @@ - + @@ -1400,7 +1400,7 @@ data-click-event="add-form"> - + Add Application @@ -1446,7 +1446,7 @@ - + diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.type-view/private/config.json b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.type-view/private/config.json index 230cb4a934..19c89fd378 100644 --- a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.type-view/private/config.json +++ b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.type-view/private/config.json @@ -4,6 +4,37 @@ "category": "mobile", "analyticsEnabled": "false", "groupingEnabled": "false", + "scopes" : [ + "perm:android:enroll", + "perm:android:wipe", + "perm:android:ring", + "perm:android:lock-devices", + "perm:android:configure-vpn", + "perm:android:configure-wifi", + "perm:android:enroll", + "perm:android:uninstall-application", + "perm:android:manage-configuration", + "perm:android:location", + "perm:android:install-application", + "perm:android:mute", + "perm:android:change-lock-code", + "perm:android:blacklist-applications", + "perm:android:set-password-policy", + "perm:android:encrypt-storage", + "perm:android:clear-password", + "perm:android:enterprise-wipe", + "perm:android:info", + "perm:android:view-configuration", + "perm:android:upgrade-firmware", + "perm:android:set-webclip", + "perm:android:send-notification", + "perm:android:disenroll", + "perm:android:update-application", + "perm:android:unlock-devices", + "perm:android:control-camera", + "perm:android:reboot", + "perm:android:logcat" + ], "features": { "DEVICE_RING": { "icon": "fw-dial-up", diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.type-view/type-view.hbs b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.type-view/type-view.hbs index 84049aefe4..a5a93a8038 100644 --- a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.type-view/type-view.hbs +++ b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.type-view/type-view.hbs @@ -21,7 +21,7 @@ Download APK Invite by Email -

    What You Need

    diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/uuf-template-app/app/units/uuf.unit.navbar.toggle-menu.right/right.hbs b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/uuf-template-app/app/units/uuf.unit.navbar.toggle-menu.right/right.hbs index bbb67cedf2..fc727600b0 100644 --- a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/uuf-template-app/app/units/uuf.unit.navbar.toggle-menu.right/right.hbs +++ b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/uuf-template-app/app/units/uuf.unit.navbar.toggle-menu.right/right.hbs @@ -24,7 +24,7 @@ {{#defineZone "toggleMenuRight-icon"}} - + {{/defineZone}} diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/uuf-template-app/app/units/uuf.unit.theme/public/lib/font-wso2_1.2/css/font-wso2.css b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/uuf-template-app/app/units/uuf.unit.theme/public/lib/font-wso2_1.2/css/font-wso2.css index 70f4dbfea5..db79654074 100644 --- a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/uuf-template-app/app/units/uuf.unit.theme/public/lib/font-wso2_1.2/css/font-wso2.css +++ b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/uuf-template-app/app/units/uuf.unit.theme/public/lib/font-wso2_1.2/css/font-wso2.css @@ -1,32 +1,51 @@ +/*! +~ Copyright (c) WSO2 Inc. (http://wso2.com) All Rights Reserved. +~ +~ Licensed 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. +*/ + + @font-face { - font-family: 'font-wso2'; - src:url('../fonts/font-wso2.eot?k4i0fx'); - src:url('../fonts/font-wso2.eot?#iefixk4i0fx') format('embedded-opentype'), - url('../fonts/font-wso2.ttf?k4i0fx') format('truetype'), - url('../fonts/font-wso2.woff?k4i0fx') format('woff'), - url('../fonts/font-wso2.svg?k4i0fx#font-wso2') format('svg'); - font-weight: normal; - font-style: normal; + font-family:"font-wso2"; + src:local("font-wso2"), url("../fonts/font-wso2.eot?cbfd3c5fdcdc6493e67be73fa5dd0ac0"); + src:local("font-wso2"), + url("../fonts/font-wso2.eot?#iefix") format("embedded-opentype"), + url("../fonts/font-wso2.woff2?cbfd3c5fdcdc6493e67be73fa5dd0ac0") format("woff2"), + url("../fonts/font-wso2.woff?cbfd3c5fdcdc6493e67be73fa5dd0ac0") format("woff"), + url("../fonts/font-wso2.ttf?cbfd3c5fdcdc6493e67be73fa5dd0ac0") format("truetype"), + url("../fonts/font-wso2.svg?cbfd3c5fdcdc6493e67be73fa5dd0ac0#font-wso2") format("svg"); + font-weight:normal; + font-style:normal; } .fw, [class^="fw-"], [class*=" fw-"] { - display: inline-block; font: normal normal normal 14px/1 font-wso2; - font-size: inherit; - speak: none; - font-style: normal; + display: inline-block; font-weight: normal; + font-style: normal; + font-size: inherit; font-variant: normal; - text-transform: none; - vertical-align: middle; - + speak: none; + text-decoration: inherit; + /* Better Font Rendering =========== */ + text-transform: none; + text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; - text-rendering: auto; - transform: translate(0, 0); } + /* ======================================================================== * font options * ======================================================================== */ @@ -75,12 +94,6 @@ border: solid 0.08em #eeeeee; border-radius: .1em; } -.fw-border-top { - border-top: .15em solid #333; -} -.fw-border-bottom { - border-bottom: .15em solid #333; -} .fw-background { background: #888; border-radius: .3em; @@ -148,154 +161,6 @@ opacity: 0.3; } } -.fw-point-up { - -webkit-animation: fw-point-up 2s ease-out infinite; - animation: fw-point-up 2s ease-out infinite; - transform: translate3d(0, 50%, 0); -} -@-webkit-keyframes fw-point-up { - 0% { - opacity: 0; - } - 30% { - opacity: 0; - } - 50% { - opacity: 1; - } - 100% { - opacity: 0; - -webkit-transform: translate3d(0, 15%, 0); - transform: translate3d(0, 15%, 0) - } -} -@keyframes fw-point-up { - 0% { - opacity: 0; - } - 30% { - opacity: 0; - } - 50% { - opacity: 1; - } - 100% { - opacity: 0; - -webkit-transform: translate3d(0, 15%, 0); - transform: translate3d(0, 15%, 0) - } -} -.fw-point-down { - -webkit-animation: fw-point-down 2s ease-out infinite; - animation: fw-point-down 2s ease-out infinite; - transform: translate3d(0, -50%, 0); -} -@-webkit-keyframes fw-point-down { - 0% { - opacity: 0; - } - 30% { - opacity: 0; - } - 50% { - opacity: 1; - } - 100% { - opacity: 0; - -webkit-transform: translate3d(0, -15%, 0); - transform: translate3d(0, -15%, 0) - } -} -@keyframes fw-point-down { - 0% { - opacity: 0; - } - 30% { - opacity: 0; - } - 50% { - opacity: 1; - } - 100% { - opacity: 0; - -webkit-transform: translate3d(0, -15%, 0); - transform: translate3d(0, -15%, 0) - } -} -.fw-point-left { - -webkit-animation: fw-point-right 2s ease-out infinite; - animation: fw-point-right 2s ease-out infinite; - transform: translate3d(50%, -10%, 0); -} -@-webkit-keyframes fw-point-left { - 0% { - opacity: 0; - } - 30% { - opacity: 0; - } - 50% { - opacity: 1; - } - 100% { - opacity: 0; - -webkit-transform: translate3d(-25%, -10%, 0); - transform: translate3d(-25%, -10%, 0) - } -} -@keyframes fw-point-left { - 0% { - opacity: 0; - } - 30% { - opacity: 0; - } - 50% { - opacity: 1; - } - 100% { - opacity: 0; - -webkit-transform: translate3d(-25%, -10%, 0); - transform: translate3d(-25%, -10%, 0) - } -} -.fw-point-right { - -webkit-animation: fw-point-right 2s ease-out infinite; - animation: fw-point-right 2s ease-out infinite; - transform: translate3d(-50%, -10%, 0); -} -@-webkit-keyframes fw-point-right { - 0% { - opacity: 0; - } - 30% { - opacity: 0; - } - 50% { - opacity: 1; - } - 100% { - opacity: 0; - -webkit-transform: translate3d(25%, -10%, 0); - transform: translate3d(25%, -10%, 0) - } -} -@keyframes fw-point-right { - 0% { - opacity: 0; - } - 30% { - opacity: 0; - } - 50% { - opacity: 1; - } - 100% { - opacity: 0; - -webkit-transform: translate3d(25%, -10%, 0); - transform: translate3d(25%, -10%, 0) - } -} .fw-rotate-90 { filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); -webkit-transform: rotate(90deg); @@ -333,41 +198,58 @@ :root .fw-flip-vertical { filter: none; } -.fw-stack { +.fw-stack, +.fw-helper { position: relative; display: inline-block; width: 2em; height: 2em; - line-height: 2em; + line-height: 1.85em; vertical-align: middle; } .fw-stack-1x, -.fw-stack-2x { +.fw-stack-2x, +.fw-helper:before, +.fw-helper:after { position: absolute; left: 0; width: 100%; text-align: center; } -.fw-stack-1x { +.fw-stack-1x, +.fw-helper:before { line-height: inherit; } -.fw-stack-2x { - font-size: 2em; +.fw-stack-2x, +.fw-helper:after { + font-size: 1.9em; +} +.fw-helper-slash:before { + font-size: 1.4em; +} +.fw-helper-circle:before, +.fw-helper-square:before { + z-index: 1; +} +.fw-helper-circle-outline:after { + content: "\e61f"; +} +.fw-helper-circle:after { + content: "\e61a"; +} +.fw-helper-square-outline:after { + content: "\e6b2"; +} +.fw-helper-square:after { + content: "\e6b1"; +} +.fw-helper-slash:after { + content: "\e6e1"; } .fw-stack > .fw-stack { position: absolute; font-size: 0.5em; } -.fw-stack > .fw-stack > .fw-stack-1x.fw-stroke { - font-size: 1.1em; - left: 0; - top: 0; -} -.fw-stack > .fw-stack > .fw-stack-2x.fw-stroke { - font-size: 2.3em; - left: -0.07em; - top: -0.07em; -} .fw-stack > .fw-stack.fw-move-top { top: -0.2em; } @@ -380,581 +262,1081 @@ .fw-stack > .fw-stack.fw-move-right { right: -0.5em; } -.fw-inverse { +.fw-inverse:before, +.fw-helper-inverse:after, +.fw-number { color: #ffffff; } +.fw-shadow:before, +.fw-helper-shadow:after { + text-shadow: #ffffff 1px 1px 0; +} +.fw-stroke:before, +.fw-helper-stroke:after { + text-shadow: -2px -2px 0 #ffffff, + 2px -2px 0 #ffffff, + -2px 2px 0 #ffffff, + 2px 2px 0 #ffffff; +} .fw-number { - line-height: 1.8em; + line-height: 2em; + font-family: Arial, Helvetica, sans-serif; } + /* ======================================================================== * font icons * ======================================================================== */ -.fw-mouse-pointer:before { - content: "\e6b1"; +.fw-action-invoke:before { + content:"\e6fe"; } -.fw-pointer:before { - content: "\e6b2"; -} -.fw-hand:before { - content: "\e6b3"; + +.fw-activate:before { + content:"\e6cf"; } -.fw-question-mark:before { - content: "\e6b4"; + +.fw-add:before { + content:"\e615"; } + .fw-airplay:before { - content: "\e600"; + content:"\e600"; } -.fw-apn:before { - content: "\e602"; + +.fw-alarm:before { + content:"\e6c2"; } -.fw-vpn:before { - content: "\e603"; + +.fw-alert:before { + content:"\e6be"; +} + +.fw-analytics-extensions:before { + content:"\e6e2"; +} + +.fw-android:before { + content:"\e606"; +} + +.fw-annotation:before { + content:"\e6e6"; +} + +.fw-api:before { + content:"\e601"; } + +.fw-apn:before { + content:"\e602"; +} + .fw-apple:before { - content: "\e604"; + content:"\e604"; } -.fw-windows:before { - content: "\e605"; + +.fw-application:before { + content:"\e608"; } -.fw-android:before { - content: "\e606"; + +.fw-arduino:before { + content:"\e6ab"; } -.fw-wifi:before { - content: "\e607"; + +.fw-assign:before { + content:"\e6ff"; } + +.fw-bar-chart:before { + content:"\e690"; +} + .fw-battery:before { - content: "\e60a"; + content:"\e60a"; } -.fw-camera:before { - content: "\e613"; + +.fw-blank-document:before { + content:"\e60c"; } -.fw-notification:before { - content: "\e60b"; + +.fw-block:before { + content:"\e695"; } -.fw-settings:before { - content: "\e66f"; + +.fw-bookmark:before { + content:"\e60d"; } -.fw-send:before { - content: "\e66a"; + +.fw-bpel:before { + content:"\e60e"; } -.fw-bookmark:before { - content: "\e60d"; + +.fw-bpmn:before { + content:"\e60f"; } + .fw-bug:before { - content: "\e611"; + content:"\e611"; } -.fw-clock:before { - content: "\e61d"; + +.fw-build:before { + content:"\e6c1"; } + .fw-calendar:before { - content: "\e612"; -} -.fw-add:before { - content: "\e615"; -} -.fw-minus:before { - content: "\e616"; + content:"\e612"; } -.fw-check:before { - content: "\e617"; + +.fw-camera:before { + content:"\e613"; } + .fw-cancel:before { - content: "\e618"; + content:"\e618"; } -.fw-list:before { - content: "\e64c"; + +.fw-carbon:before { + content:"\e6c5"; } -.fw-checklist:before { - content: "\e619"; + +.fw-chat:before { + content:"\e65b"; } -.fw-grid:before { - content: "\e638"; + +.fw-check:before { + content:"\e617"; } -.fw-dots:before { - content: "\e629"; + +.fw-checklist:before { + content:"\e619"; } -.fw-menu:before { - content: "\e651"; + +.fw-circle-outline:before { + content:"\e61f"; } -.fw-tiles:before { - content: "\e681"; + +.fw-circle:before { + content:"\e61a"; } + .fw-clear:before { - content: "\e61b"; -} -.fw-clear-passcode:before { - content: "\e61c"; + content:"\e61b"; } -.fw-enterprise-wipe:before { - content: "\e62f"; + +.fw-clock:before { + content:"\e61d"; } + .fw-cloud:before { - content: "\e61e"; + content:"\e61e"; } -.fw-contact:before { - content: "\e620"; + +.fw-code:before { + content:"\e6f1"; } -.fw-copy:before { - content: "\e621"; + +.fw-compare:before { + content:"\e610"; } -.fw-paste:before { - content: "\e658"; + +.fw-computer:before { + content:"\e653"; } -.fw-undo:before { - content: "\e683"; + +.fw-configarations:before { + content:"\e609"; } -.fw-redo:before { - content: "\e65d"; + +.fw-connector:before { + content:"\e700"; } -.fw-dashboard:before { - content: "\e622"; + +.fw-constant:before { + content:"\e701"; } -.fw-view:before { - content: "\e691"; + +.fw-contact:before { + content:"\e620"; } -.fw-focus:before { - content: "\e6b5"; + +.fw-contract:before { + content:"\e614"; } -.fw-delete:before { - content: "\e624"; + +.fw-copy:before { + content:"\e621"; } -.fw-save:before { - content: "\e665"; + +.fw-cut:before { + content:"\e6f2"; } -.fw-register:before { - content: "\e65e"; + +.fw-dashboard:before { + content:"\e622"; } -.fw-change-passcode:before { - content: "\e614"; + +.fw-database:before { + content:"\e623"; } -.fw-edit:before { - content: "\e62c"; + +.fw-delete:before { + content:"\e624"; } -.fw-sign-up:before { - content: "\e671"; + +.fw-depend:before { + content:"\e6c6"; } + .fw-deploy:before { - content: "\e625"; + content:"\e625"; } -.fw-dial-up:before { - content: "\e627"; + +.fw-deprecate:before { + content:"\e6cb"; } -.fw-dss:before { - content: "\e62a"; + +.fw-design-view:before { + content:"\e6f3"; } -.fw-ebook:before { - content: "\e62b"; + +.fw-devices:before { + content:"\e704"; } -.fw-import:before { - content: "\e63c"; + +.fw-dgm-connector:before { + content:"\e6f4"; } -.fw-export:before { - content: "\e631"; + +.fw-dgm-constant-definition:before { + content:"\e6f5"; } -.fw-factory-reset:before { - content: "\e632"; + +.fw-dgm-fork:before { + content:"\e6e7"; } -.fw-file-browse:before { - content: "\e633"; + +.fw-dgm-header:before { + content:"\e6e8"; } -.fw-grouping:before { - content: "\e6af"; + +.fw-dgm-if-else:before { + content:"\e6e9"; } -.fw-folder:before { - content: "\e6b6"; + +.fw-dgm-lifeline:before { + content:"\e6ea"; } -.fw-filter:before { - content: "\e634"; + +.fw-dgm-logger:before { + content:"\e6eb"; } -.fw-sort:before { - content: "\e673"; + +.fw-dgm-resource:before { + content:"\e6f6"; } -.fw-sort-up:before { - content: "\e64b"; + +.fw-dgm-service:before { + content:"\e6f7"; } -.fw-sort-down:before { - content: "\e663"; + +.fw-dgm-try-catch:before { + content:"\e6ec"; } -.fw-faq:before { - content: "\e6b7"; + +.fw-dgm-type-convertor:before { + content:"\e6f8"; } -.fw-message:before { - content: "\e635"; + +.fw-dgm-type:before { + content:"\e6f9"; } -.fw-forum:before { - content: "\e636"; + +.fw-dial-up:before { + content:"\e627"; } -.fw-chat:before { - content: "\e6b8"; + +.fw-disabled:before { + content:"\e6d1"; } -.fw-mail:before { - content: "\e64f"; + +.fw-display:before { + content:"\e626"; } -.fw-invitation:before { - content: "\e63f"; + +.fw-dmg-resource:before { + content:"\e707"; } -.fw-usb-drive:before { - content: "\e68e"; + +.fw-dmg-service:before { + content:"\e708"; +} + +.fw-document:before { + content:"\e628"; +} + +.fw-down-arrow:before { + content:"\e689"; +} + +.fw-down:before { + content:"\e685"; +} + +.fw-download:before { + content:"\e65f"; +} + +.fw-dss:before { + content:"\e62a"; +} + +.fw-ebook:before { + content:"\e62b"; +} + +.fw-edit:before { + content:"\e62c"; +} + +.fw-ellipsis:before { + content:"\e629"; +} + +.fw-endpoint:before { + content:"\e62d"; +} + +.fw-enterprise:before { + content:"\e6b6"; +} + +.fw-error:before { + content:"\e630"; +} + +.fw-esb-connector:before { + content:"\e6e3"; +} + +.fw-expand:before { + content:"\e61c"; +} + +.fw-export:before { + content:"\e631"; +} + +.fw-extensions:before { + content:"\e6e4"; +} + +.fw-facebook:before { + content:"\e6d3"; +} + +.fw-factory-reset:before { + content:"\e632"; +} + +.fw-fan:before { + content:"\e678"; +} + +.fw-faq:before { + content:"\e62f"; +} + +.fw-file-browse:before { + content:"\e633"; +} + +.fw-filter:before { + content:"\e634"; +} + +.fw-folder:before { + content:"\e62e"; +} + +.fw-format:before { + content:"\e6fa"; +} + +.fw-forum:before { + content:"\e636"; +} + +.fw-function:before { + content:"\e6fb"; +} + +.fw-gadget:before { + content:"\e637"; +} + +.fw-github:before { + content:"\e6d4"; +} + +.fw-globe:before { + content:"\e697"; +} + +.fw-google-docs:before { + content:"\e6d6"; +} + +.fw-google-drive:before { + content:"\e6da"; +} + +.fw-google-plus:before { + content:"\e6d9"; +} + +.fw-google-sheets:before { + content:"\e6d7"; +} + +.fw-google-slides:before { + content:"\e6d8"; +} + +.fw-google:before { + content:"\e6d5"; +} + +.fw-grid:before { + content:"\e638"; +} + +.fw-grip:before { + content:"\e6b7"; +} + +.fw-group:before { + content:"\e6af"; +} + +.fw-hardware:before { + content:"\e6a9"; } + .fw-hdd:before { - content: "\e639"; + content:"\e639"; +} + +.fw-heart:before { + content:"\e6c3"; +} + +.fw-hide:before { + content:"\e6d2"; } + .fw-home:before { - content: "\e63a"; + content:"\e63a"; } + .fw-hour-glass:before { - content: "\e63b"; + content:"\e63b"; +} + +.fw-html:before { + content:"\e69d"; +} + +.fw-http:before { + content:"\e705"; +} + +.fw-import:before { + content:"\e63c"; } + .fw-incoming-call:before { - content: "\e63d"; + content:"\e63d"; +} + +.fw-info:before { + content:"\e63e"; +} + +.fw-instagram:before { + content:"\e6db"; +} + +.fw-invitation:before { + content:"\e63f"; +} + +.fw-invoke:before { + content:"\e6ed"; +} + +.fw-is-connector:before { + content:"\e6e5"; +} + +.fw-jaggery:before { + content:"\e640"; +} + +.fw-java-spring:before { + content:"\e644"; +} + +.fw-java:before { + content:"\e641"; +} + +.fw-javaee:before { + content:"\e642"; +} + +.fw-javascript:before { + content:"\e643"; } + +.fw-jaxrs:before { + content:"\e645"; +} + +.fw-jaxws:before { + content:"\e6c7"; +} + +.fw-jquery:before { + content:"\e646"; +} + .fw-key:before { - content: "\e647"; + content:"\e647"; +} + +.fw-laptop:before { + content:"\e648"; +} + +.fw-layout:before { + content:"\e6bf"; +} + +.fw-ldap:before { + content:"\e649"; +} + +.fw-left-arrow:before { + content:"\e68a"; +} + +.fw-left:before { + content:"\e686"; } + .fw-lifecycle:before { - content: "\e64a"; + content:"\e64a"; +} + +.fw-light:before { + content:"\e680"; } + +.fw-linkedin:before { + content:"\e6dc"; +} + .fw-list-sort:before { - content: "\e64d"; + content:"\e64d"; } -.fw-lock:before { - content: "\e64e"; + +.fw-list:before { + content:"\e64c"; } -.fw-map-location:before { - content: "\e650"; + +.fw-loader:before { + content:"\e6b4"; } -.fw-laptop:before { - content: "\e648"; + +.fw-loader2:before { + content:"\e6ba"; } -.fw-mobile:before { - content: "\e652"; + +.fw-loader3:before { + content:"\e6bb"; } -.fw-ringing:before { - content: "\e694"; + +.fw-loader4:before { + content:"\e6bc"; } -.fw-computer:before { - content: "\e653"; + +.fw-loader5:before { + content:"\e6bd"; } -.fw-devices:before { - content: "\e626"; + +.fw-lock:before { + content:"\e64e"; } -.fw-mute:before { - content: "\e655"; + +.fw-logical:before { + content:"\e702"; } -.fw-unmute:before { - content: "\e6ae"; + +.fw-mail:before { + content:"\e64f"; } -.fw-ok:before { - content: "\e657"; + +.fw-main-function:before { + content:"\e706"; } -.fw-error:before { - content: "\e630"; + +.fw-map-location:before { + content:"\e650"; } -.fw-circle:before { - content: "\e61a"; + +.fw-menu:before { + content:"\e651"; } -.fw-ring:before { - content: "\e61f"; + +.fw-message:before { + content:"\e635"; } -.fw-pdf:before { - content: "\e659"; + +.fw-micro-services:before { + content:"\e6ce"; } + +.fw-minus:before { + content:"\e616"; +} + +.fw-mobile:before { + content:"\e652"; +} + .fw-ms-document:before { - content: "\e654"; + content:"\e654"; } -.fw-pie-chart:before { - content: "\e65a"; + +.fw-mute:before { + content:"\e655"; } -.fw-bar-chart:before { - content: "\e6b0"; + +.fw-nodejs:before { + content:"\e656"; } -.fw-publish:before { - content: "\e65c"; + +.fw-notification:before { + content:"\e60b"; } -.fw-resource:before { - content: "\e660"; + +.fw-organization:before { + content:"\e6ac"; } -.fw-rules:before { - content: "\e664"; + +.fw-own:before { + content:"\e6c8"; } -.fw-scep:before { - content: "\e666"; + +.fw-package:before { + content:"\e6fd"; } -.fw-security:before { - content: "\e669"; + +.fw-pages:before { + content:"\e6c0"; } -.fw-search:before { - content: "\e668"; + +.fw-paste:before { + content:"\e658"; } -.fw-sequence:before { - content: "\e66b"; + +.fw-pdf:before { + content:"\e659"; } -.fw-servers:before { - content: "\e66c"; + +.fw-php:before { + content:"\e6c9"; } -.fw-ldap:before { - content: "\e649"; + +.fw-pie-chart:before { + content:"\e65a"; } -.fw-database:before { - content: "\e623"; + +.fw-pinterest:before { + content:"\e6dd"; } -.fw-hardware:before { - content: "\e6a9"; + +.fw-policy:before { + content:"\e67d"; +} + +.fw-prototype:before { + content:"\e6cc"; +} + +.fw-proxy:before { + content:"\e699"; } -.fw-signal:before { - content: "\e6b9"; + +.fw-public:before { + content:"\e6ad"; } + +.fw-publish:before { + content:"\e65c"; +} + +.fw-question:before { + content:"\e6b0"; +} + .fw-raspberry:before { - content: "\e6aa"; + content:"\e6aa"; } -.fw-arduino:before { - content: "\e6ab"; + +.fw-redo:before { + content:"\e65d"; } -.fw-share:before { - content: "\e670"; + +.fw-refresh:before { + content:"\e692"; } -.fw-star:before { - content: "\e674"; + +.fw-register:before { + content:"\e65e"; } -.fw-coins:before { - content: "\e6ba"; + +.fw-rename:before { + content:"\e6fc"; } -.fw-statistics:before { - content: "\e675"; + +.fw-resource:before { + content:"\e660"; } -.fw-store:before { - content: "\e676"; + +.fw-rest-api:before { + content:"\e661"; } -.fw-subscribe:before { - content: "\e677"; + +.fw-rest-service:before { + content:"\e662"; } -.fw-fan:before { - content: "\e6bb"; + +.fw-retire:before { + content:"\e6cd"; } -.fw-light:before { - content: "\e6bc"; + +.fw-retweet:before { + content:"\e6b9"; } -.fw-subscribed-calendar:before { - content: "\e678"; + +.fw-right-arrow:before { + content:"\e68b"; } -.fw-tag:before { - content: "\e67a"; + +.fw-right:before { + content:"\e687"; } -.fw-tasks:before { - content: "\e67b"; + +.fw-ringing:before { + content:"\e694"; } -.fw-blank-document:before { - content: "\e60c"; + +.fw-rules:before { + content:"\e664"; } -.fw-document:before { - content: "\e628"; + +.fw-save:before { + content:"\e665"; } -.fw-text:before { - content: "\e67c"; + +.fw-scep:before { + content:"\e666"; } -.fw-policy:before { - content: "\e67d"; + +.fw-schema:before { + content:"\e667"; +} + +.fw-search:before { + content:"\e668"; } + .fw-security-policy:before { - content: "\e67e"; + content:"\e67e"; } -.fw-throttling-policy:before { - content: "\e67f"; + +.fw-security:before { + content:"\e669"; } -.fw-ticked-box:before { - content: "\e680"; + +.fw-send:before, .fw-paper-rocket:before { + content:"\e66a"; } -.fw-uncheck:before { - content: "\e682"; + +.fw-sequence:before { + content:"\e66b"; } -.fw-upload:before { - content: "\e68c"; + +.fw-server:before { + content:"\e66c"; } -.fw-download:before { - content: "\e65f"; + +.fw-service-provider:before { + content:"\e66e"; } -.fw-up:before { - content: "\e684"; + +.fw-service:before, .fw-cogwheels:before, .fw-gears:before { + content:"\e66d"; } -.fw-down:before { - content: "\e685"; + +.fw-settings:before, .fw-cogwheel:before, .fw-gear:before { + content:"\e66f"; } -.fw-left:before { - content: "\e686"; + +.fw-share:before { + content:"\e670"; } -.fw-right:before { - content: "\e687"; + +.fw-sign-in:before { + content:"\e671"; } -.fw-up-arrow:before { - content: "\e688"; + +.fw-sign-out:before { + content:"\e6b8"; } -.fw-down-arrow:before { - content: "\e689"; + +.fw-skype:before { + content:"\e6de"; } -.fw-left-arrow:before { - content: "\e68a"; + +.fw-slash:before { + content:"\e6e1"; } -.fw-right-arrow:before { - content: "\e68b"; + +.fw-soap:before { + content:"\e672"; } -.fw-endpoint:before { - content: "\e62d"; + +.fw-sort-down:before { + content:"\e663"; } -.fw-uri:before { - content: "\e68d"; + +.fw-sort-up:before { + content:"\e64b"; } -.fw-broken-link:before { - content: "\e610"; + +.fw-sort:before { + content:"\e673"; } -.fw-user:before { - content: "\e68f"; + +.fw-square-outline:before { + content:"\e6b2"; } -.fw-add-user:before { - content: "\e690"; + +.fw-square:before { + content:"\e6b1"; } -.fw-refresh:before { - content: "\e692"; + +.fw-star:before { + content:"\e674"; } -.fw-warning:before { - content: "\e693"; + +.fw-statistics:before { + content:"\e675"; } -.fw-info:before { - content: "\e63e"; + +.fw-store:before { + content:"\e676"; } -.fw-block:before { - content: "\e695"; + +.fw-subscribe:before { + content:"\e677"; } -.fw-bpmn:before { - content: "\e60f"; + +.fw-success:before { + content:"\e657"; } -.fw-schema:before { - content: "\e667"; + +.fw-swagger:before { + content:"\e679"; } -.fw-organization:before { - content: "\e6ac"; + +.fw-sync:before { + content:"\e6b3"; } -.fw-public:before { - content: "\e6ad"; + +.fw-table:before { + content:"\e6c4"; } -.fw-bpel:before { - content: "\e60e"; + +.fw-tag:before { + content:"\e67a"; } -.fw-application:before { - content: "\e608"; + +.fw-task:before { + content:"\e67b"; } -.fw-applications:before { - content: "\e609"; + +.fw-text:before { + content:"\e67c"; } -.fw-public-app:before { - content: "\e65b"; + +.fw-throttling-policy:before { + content:"\e67f"; } -.fw-enterprise-app:before { - content: "\e62e"; + +.fw-tiles:before { + content:"\e681"; } -.fw-web-app:before { - content: "\e696"; + +.fw-try-catch:before { + content:"\e703"; } -.fw-globe:before { - content: "\e697"; + +.fw-twitter:before { + content:"\e6df"; } -.fw-webclip:before { - content: "\e698"; + +.fw-uncheck:before { + content:"\e682"; } -.fw-proxy:before { - content: "\e699"; + +.fw-undo:before { + content:"\e683"; } -.fw-web-service:before { - content: "\e69a"; + +.fw-ungroup:before { + content:"\e6b5"; } -.fw-website:before { - content: "\e69b"; + +.fw-unmute:before { + content:"\e6ae"; } -.fw-gadget:before { - content: "\e637"; + +.fw-up-arrow:before { + content:"\e688"; } -.fw-api:before { - content: "\e601"; + +.fw-up:before { + content:"\e684"; } -.fw-rest-api:before { - content: "\e661"; + +.fw-upload:before { + content:"\e68c"; } -.fw-rest-service:before { - content: "\e662"; + +.fw-uri:before { + content:"\e68d"; } -.fw-jaxrs:before { - content: "\e645"; + +.fw-usb-drive:before { + content:"\e68e"; } -.fw-service:before { - content: "\e66d"; + +.fw-use:before { + content:"\e6ca"; } -.fw-service-provider:before { - content: "\e66e"; + +.fw-user:before { + content:"\e68f"; } -.fw-java-spring:before { - content: "\e644"; + +.fw-variable:before { + content:"\e6ee"; } -.fw-jquery:before { - content: "\e646"; + +.fw-view:before { + content:"\e691"; } -.fw-swagger:before { - content: "\e679"; + +.fw-vpn:before { + content:"\e603"; } -.fw-java:before { - content: "\e641"; + +.fw-wadl:before { + content:"\e6a1"; } -.fw-javaee:before { - content: "\e642"; + +.fw-war:before { + content:"\e69e"; } -.fw-javascript:before { - content: "\e643"; + +.fw-warning:before { + content:"\e693"; } -.fw-jaggery:before { - content: "\e640"; + +.fw-web-app:before { + content:"\e696"; } -.fw-nodejs:before { - content: "\e656"; + +.fw-web-clip:before { + content:"\e698"; } -.fw-xml:before { - content: "\e69c"; + +.fw-web-service:before { + content:"\e69a"; } -.fw-soap:before { - content: "\e672"; + +.fw-website:before { + content:"\e69b"; } -.fw-html:before { - content: "\e69d"; + +.fw-wifi:before { + content:"\e607"; } -.fw-war:before { - content: "\e69e"; + +.fw-windows:before { + content:"\e605"; } -.fw-xacml:before { - content: "\e69f"; + +.fw-worker:before { + content:"\e6ef"; } + .fw-wsdl:before { - content: "\e6a0"; + content:"\e6a0"; } -.fw-wadl:before { - content: "\e6a1"; + +.fw-wso2-logo:before { + content:"\e6a7"; +} + +.fw-wso2:before { + content:"\e6a8"; +} + +.fw-xacml:before { + content:"\e69f"; } + +.fw-xml:before { + content:"\e69c"; +} + .fw-xq:before { - content: "\e6a2"; + content:"\e6a2"; } + .fw-xsd:before { - content: "\e6a3"; + content:"\e6a3"; } + .fw-xslt:before { - content: "\e6a4"; + content:"\e6a4"; +} + +.fw-youtube:before { + content:"\e6e0"; } + .fw-zoom-in:before { - content: "\e6a5"; + content:"\e6a5"; } + .fw-zoom-out:before { - content: "\e6a6"; + content:"\e6a6"; } -.fw-wso2-logo:before { - content: "\e6a7"; -} -.fw-wso2:before { - content: "\e6a8"; -} \ No newline at end of file + diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/uuf-template-app/app/units/uuf.unit.theme/public/lib/font-wso2_1.2/css/font-wso2.min.css b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/uuf-template-app/app/units/uuf.unit.theme/public/lib/font-wso2_1.2/css/font-wso2.min.css new file mode 100644 index 0000000000..b0590c8c3f --- /dev/null +++ b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/uuf-template-app/app/units/uuf.unit.theme/public/lib/font-wso2_1.2/css/font-wso2.min.css @@ -0,0 +1,15 @@ +/*! +~ Copyright (c) WSO2 Inc. (http://wso2.com) All Rights Reserved. +~ +~ Licensed 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. +*/.fw-fw,.fw-li{text-align:center}@font-face{font-family:font-wso2;src:local("font-wso2"),url(../fonts/font-wso2.eot?cbfd3c5fdcdc6493e67be73fa5dd0ac0);src:local("font-wso2"),url(../fonts/font-wso2.eot?#iefix) format("embedded-opentype"),url(../fonts/font-wso2.woff2?cbfd3c5fdcdc6493e67be73fa5dd0ac0) format("woff2"),url(../fonts/font-wso2.woff?cbfd3c5fdcdc6493e67be73fa5dd0ac0) format("woff"),url(../fonts/font-wso2.ttf?cbfd3c5fdcdc6493e67be73fa5dd0ac0) format("truetype"),url(../fonts/font-wso2.svg?cbfd3c5fdcdc6493e67be73fa5dd0ac0#font-wso2) format("svg");font-weight:400;font-style:normal}.fw,[class*=" fw-"],[class^=fw-]{font:normal normal normal 14px/1 font-wso2;display:inline-block;font-weight:400;font-style:normal;font-size:inherit;font-variant:normal;speak:none;text-decoration:inherit;text-transform:none;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fw-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fw-2x{font-size:2em}.fw-3x{font-size:3em}.fw-4x{font-size:4em}.fw-5x{font-size:5em}.fw-fw{width:1.28571429em}.fw-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fw-ul>li{position:relative}.fw-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em}.fw-li.fw-lg{left:-1.85714286em}.fw-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fw-background{background:#888;border-radius:.3em;padding:.4em .5em .45em}.fw-pull-left{float:left}.fw-pull-right{float:right}.fw.fw-pull-left{margin-right:.3em}.fw.fw-pull-right{margin-left:.3em}.fw-spin{-webkit-animation:fw-spin 2s infinite linear;animation:fw-spin 2s infinite linear}@-webkit-keyframes fw-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fw-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fw-pulse{-webkit-animation:fw-pulse 2s ease-out infinite;animation:fw-pulse 2s ease-out infinite}@-webkit-keyframes fw-pulse{0%,100%,30%{opacity:.3}40%{opacity:1}}@keyframes fw-pulse{0%,100%,30%{opacity:.3}40%{opacity:1}}.fw-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fw-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fw-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fw-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.fw-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}:root .fw-flip-horizontal,:root .fw-flip-vertical,:root .fw-rotate-180,:root .fw-rotate-270,:root .fw-rotate-90{filter:none}.fw-helper,.fw-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:1.85em;vertical-align:middle}.fw-helper:after,.fw-helper:before,.fw-stack-1x,.fw-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fw-helper:before,.fw-stack-1x{line-height:inherit}.fw-helper:after,.fw-stack-2x{font-size:1.9em}.fw-helper-slash:before{font-size:1.4em}.fw-helper-circle:before,.fw-helper-square:before{z-index:1}.fw-helper-circle-outline:after{content:"\e61f"}.fw-helper-circle:after{content:"\e61a"}.fw-helper-square-outline:after{content:"\e6b2"}.fw-helper-square:after{content:"\e6b1"}.fw-helper-slash:after{content:"\e6e1"}.fw-stack>.fw-stack{position:absolute;font-size:.5em}.fw-stack>.fw-stack.fw-move-top{top:-.2em}.fw-stack>.fw-stack.fw-move-bottom{bottom:-.2em}.fw-stack>.fw.stack.fw-move-left{left:-.5em}.fw-stack>.fw-stack.fw-move-right{right:-.5em}.fw-helper-inverse:after,.fw-inverse:before,.fw-number{color:#fff}.fw-helper-shadow:after,.fw-shadow:before{text-shadow:#fff 1px 1px 0}.fw-helper-stroke:after,.fw-stroke:before{text-shadow:-2px -2px 0 #fff,2px -2px 0 #fff,-2px 2px 0 #fff,2px 2px 0 #fff}.fw-number{line-height:2em;font-family:Arial,Helvetica,sans-serif}.fw-action-invoke:before{content:"\e6fe"}.fw-activate:before{content:"\e6cf"}.fw-add:before{content:"\e615"}.fw-airplay:before{content:"\e600"}.fw-alarm:before{content:"\e6c2"}.fw-alert:before{content:"\e6be"}.fw-analytics-extensions:before{content:"\e6e2"}.fw-android:before{content:"\e606"}.fw-annotation:before{content:"\e6e6"}.fw-api:before{content:"\e601"}.fw-apn:before{content:"\e602"}.fw-apple:before{content:"\e604"}.fw-application:before{content:"\e608"}.fw-arduino:before{content:"\e6ab"}.fw-assign:before{content:"\e6ff"}.fw-bar-chart:before{content:"\e690"}.fw-battery:before{content:"\e60a"}.fw-blank-document:before{content:"\e60c"}.fw-block:before{content:"\e695"}.fw-bookmark:before{content:"\e60d"}.fw-bpel:before{content:"\e60e"}.fw-bpmn:before{content:"\e60f"}.fw-bug:before{content:"\e611"}.fw-build:before{content:"\e6c1"}.fw-calendar:before{content:"\e612"}.fw-camera:before{content:"\e613"}.fw-cancel:before{content:"\e618"}.fw-carbon:before{content:"\e6c5"}.fw-chat:before{content:"\e65b"}.fw-check:before{content:"\e617"}.fw-checklist:before{content:"\e619"}.fw-circle-outline:before{content:"\e61f"}.fw-circle:before{content:"\e61a"}.fw-clear:before{content:"\e61b"}.fw-clock:before{content:"\e61d"}.fw-cloud:before{content:"\e61e"}.fw-code:before{content:"\e6f1"}.fw-compare:before{content:"\e610"}.fw-computer:before{content:"\e653"}.fw-configarations:before{content:"\e609"}.fw-connector:before{content:"\e700"}.fw-constant:before{content:"\e701"}.fw-contact:before{content:"\e620"}.fw-contract:before{content:"\e614"}.fw-copy:before{content:"\e621"}.fw-cut:before{content:"\e6f2"}.fw-dashboard:before{content:"\e622"}.fw-database:before{content:"\e623"}.fw-delete:before{content:"\e624"}.fw-depend:before{content:"\e6c6"}.fw-deploy:before{content:"\e625"}.fw-deprecate:before{content:"\e6cb"}.fw-design-view:before{content:"\e6f3"}.fw-devices:before{content:"\e704"}.fw-dgm-connector:before{content:"\e6f4"}.fw-dgm-constant-definition:before{content:"\e6f5"}.fw-dgm-fork:before{content:"\e6e7"}.fw-dgm-header:before{content:"\e6e8"}.fw-dgm-if-else:before{content:"\e6e9"}.fw-dgm-lifeline:before{content:"\e6ea"}.fw-dgm-logger:before{content:"\e6eb"}.fw-dgm-resource:before{content:"\e6f6"}.fw-dgm-service:before{content:"\e6f7"}.fw-dgm-try-catch:before{content:"\e6ec"}.fw-dgm-type-convertor:before{content:"\e6f8"}.fw-dgm-type:before{content:"\e6f9"}.fw-dial-up:before{content:"\e627"}.fw-disabled:before{content:"\e6d1"}.fw-display:before{content:"\e626"}.fw-dmg-resource:before{content:"\e707"}.fw-dmg-service:before{content:"\e708"}.fw-document:before{content:"\e628"}.fw-down-arrow:before{content:"\e689"}.fw-down:before{content:"\e685"}.fw-download:before{content:"\e65f"}.fw-dss:before{content:"\e62a"}.fw-ebook:before{content:"\e62b"}.fw-edit:before{content:"\e62c"}.fw-ellipsis:before{content:"\e629"}.fw-endpoint:before{content:"\e62d"}.fw-enterprise:before{content:"\e6b6"}.fw-error:before{content:"\e630"}.fw-esb-connector:before{content:"\e6e3"}.fw-expand:before{content:"\e61c"}.fw-export:before{content:"\e631"}.fw-extensions:before{content:"\e6e4"}.fw-facebook:before{content:"\e6d3"}.fw-factory-reset:before{content:"\e632"}.fw-fan:before{content:"\e678"}.fw-faq:before{content:"\e62f"}.fw-file-browse:before{content:"\e633"}.fw-filter:before{content:"\e634"}.fw-folder:before{content:"\e62e"}.fw-format:before{content:"\e6fa"}.fw-forum:before{content:"\e636"}.fw-function:before{content:"\e6fb"}.fw-gadget:before{content:"\e637"}.fw-github:before{content:"\e6d4"}.fw-globe:before{content:"\e697"}.fw-google-docs:before{content:"\e6d6"}.fw-google-drive:before{content:"\e6da"}.fw-google-plus:before{content:"\e6d9"}.fw-google-sheets:before{content:"\e6d7"}.fw-google-slides:before{content:"\e6d8"}.fw-google:before{content:"\e6d5"}.fw-grid:before{content:"\e638"}.fw-grip:before{content:"\e6b7"}.fw-group:before{content:"\e6af"}.fw-hardware:before{content:"\e6a9"}.fw-hdd:before{content:"\e639"}.fw-heart:before{content:"\e6c3"}.fw-hide:before{content:"\e6d2"}.fw-home:before{content:"\e63a"}.fw-hour-glass:before{content:"\e63b"}.fw-html:before{content:"\e69d"}.fw-http:before{content:"\e705"}.fw-import:before{content:"\e63c"}.fw-incoming-call:before{content:"\e63d"}.fw-info:before{content:"\e63e"}.fw-instagram:before{content:"\e6db"}.fw-invitation:before{content:"\e63f"}.fw-invoke:before{content:"\e6ed"}.fw-is-connector:before{content:"\e6e5"}.fw-jaggery:before{content:"\e640"}.fw-java-spring:before{content:"\e644"}.fw-java:before{content:"\e641"}.fw-javaee:before{content:"\e642"}.fw-javascript:before{content:"\e643"}.fw-jaxrs:before{content:"\e645"}.fw-jaxws:before{content:"\e6c7"}.fw-jquery:before{content:"\e646"}.fw-key:before{content:"\e647"}.fw-laptop:before{content:"\e648"}.fw-layout:before{content:"\e6bf"}.fw-ldap:before{content:"\e649"}.fw-left-arrow:before{content:"\e68a"}.fw-left:before{content:"\e686"}.fw-lifecycle:before{content:"\e64a"}.fw-light:before{content:"\e680"}.fw-linkedin:before{content:"\e6dc"}.fw-list-sort:before{content:"\e64d"}.fw-list:before{content:"\e64c"}.fw-loader:before{content:"\e6b4"}.fw-loader2:before{content:"\e6ba"}.fw-loader3:before{content:"\e6bb"}.fw-loader4:before{content:"\e6bc"}.fw-loader5:before{content:"\e6bd"}.fw-lock:before{content:"\e64e"}.fw-logical:before{content:"\e702"}.fw-mail:before{content:"\e64f"}.fw-main-function:before{content:"\e706"}.fw-map-location:before{content:"\e650"}.fw-menu:before{content:"\e651"}.fw-message:before{content:"\e635"}.fw-micro-services:before{content:"\e6ce"}.fw-minus:before{content:"\e616"}.fw-mobile:before{content:"\e652"}.fw-ms-document:before{content:"\e654"}.fw-mute:before{content:"\e655"}.fw-nodejs:before{content:"\e656"}.fw-notification:before{content:"\e60b"}.fw-organization:before{content:"\e6ac"}.fw-own:before{content:"\e6c8"}.fw-package:before{content:"\e6fd"}.fw-pages:before{content:"\e6c0"}.fw-paste:before{content:"\e658"}.fw-pdf:before{content:"\e659"}.fw-php:before{content:"\e6c9"}.fw-pie-chart:before{content:"\e65a"}.fw-pinterest:before{content:"\e6dd"}.fw-policy:before{content:"\e67d"}.fw-prototype:before{content:"\e6cc"}.fw-proxy:before{content:"\e699"}.fw-public:before{content:"\e6ad"}.fw-publish:before{content:"\e65c"}.fw-question:before{content:"\e6b0"}.fw-raspberry:before{content:"\e6aa"}.fw-redo:before{content:"\e65d"}.fw-refresh:before{content:"\e692"}.fw-register:before{content:"\e65e"}.fw-rename:before{content:"\e6fc"}.fw-resource:before{content:"\e660"}.fw-rest-api:before{content:"\e661"}.fw-rest-service:before{content:"\e662"}.fw-retire:before{content:"\e6cd"}.fw-retweet:before{content:"\e6b9"}.fw-right-arrow:before{content:"\e68b"}.fw-right:before{content:"\e687"}.fw-ringing:before{content:"\e694"}.fw-rules:before{content:"\e664"}.fw-save:before{content:"\e665"}.fw-scep:before{content:"\e666"}.fw-schema:before{content:"\e667"}.fw-search:before{content:"\e668"}.fw-security-policy:before{content:"\e67e"}.fw-security:before{content:"\e669"}.fw-paper-rocket:before,.fw-send:before{content:"\e66a"}.fw-sequence:before{content:"\e66b"}.fw-server:before{content:"\e66c"}.fw-service-provider:before{content:"\e66e"}.fw-cogwheels:before,.fw-gears:before,.fw-service:before{content:"\e66d"}.fw-cogwheel:before,.fw-gear:before,.fw-settings:before{content:"\e66f"}.fw-share:before{content:"\e670"}.fw-sign-in:before{content:"\e671"}.fw-sign-out:before{content:"\e6b8"}.fw-skype:before{content:"\e6de"}.fw-slash:before{content:"\e6e1"}.fw-soap:before{content:"\e672"}.fw-sort-down:before{content:"\e663"}.fw-sort-up:before{content:"\e64b"}.fw-sort:before{content:"\e673"}.fw-square-outline:before{content:"\e6b2"}.fw-square:before{content:"\e6b1"}.fw-star:before{content:"\e674"}.fw-statistics:before{content:"\e675"}.fw-store:before{content:"\e676"}.fw-subscribe:before{content:"\e677"}.fw-success:before{content:"\e657"}.fw-swagger:before{content:"\e679"}.fw-sync:before{content:"\e6b3"}.fw-table:before{content:"\e6c4"}.fw-tag:before{content:"\e67a"}.fw-task:before{content:"\e67b"}.fw-text:before{content:"\e67c"}.fw-throttling-policy:before{content:"\e67f"}.fw-tiles:before{content:"\e681"}.fw-try-catch:before{content:"\e703"}.fw-twitter:before{content:"\e6df"}.fw-uncheck:before{content:"\e682"}.fw-undo:before{content:"\e683"}.fw-ungroup:before{content:"\e6b5"}.fw-unmute:before{content:"\e6ae"}.fw-up-arrow:before{content:"\e688"}.fw-up:before{content:"\e684"}.fw-upload:before{content:"\e68c"}.fw-uri:before{content:"\e68d"}.fw-usb-drive:before{content:"\e68e"}.fw-use:before{content:"\e6ca"}.fw-user:before{content:"\e68f"}.fw-variable:before{content:"\e6ee"}.fw-view:before{content:"\e691"}.fw-vpn:before{content:"\e603"}.fw-wadl:before{content:"\e6a1"}.fw-war:before{content:"\e69e"}.fw-warning:before{content:"\e693"}.fw-web-app:before{content:"\e696"}.fw-web-clip:before{content:"\e698"}.fw-web-service:before{content:"\e69a"}.fw-website:before{content:"\e69b"}.fw-wifi:before{content:"\e607"}.fw-windows:before{content:"\e605"}.fw-worker:before{content:"\e6ef"}.fw-wsdl:before{content:"\e6a0"}.fw-wso2-logo:before{content:"\e6a7"}.fw-wso2:before{content:"\e6a8"}.fw-xacml:before{content:"\e69f"}.fw-xml:before{content:"\e69c"}.fw-xq:before{content:"\e6a2"}.fw-xsd:before{content:"\e6a3"}.fw-xslt:before{content:"\e6a4"}.fw-youtube:before{content:"\e6e0"}.fw-zoom-in:before{content:"\e6a5"}.fw-zoom-out:before{content:"\e6a6"} \ No newline at end of file diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/uuf-template-app/app/units/uuf.unit.theme/public/lib/font-wso2_1.2/fonts/font-wso2.eot b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/uuf-template-app/app/units/uuf.unit.theme/public/lib/font-wso2_1.2/fonts/font-wso2.eot index 3ba798e8af..9f57898669 100644 Binary files a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/uuf-template-app/app/units/uuf.unit.theme/public/lib/font-wso2_1.2/fonts/font-wso2.eot and b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/uuf-template-app/app/units/uuf.unit.theme/public/lib/font-wso2_1.2/fonts/font-wso2.eot differ diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/uuf-template-app/app/units/uuf.unit.theme/public/lib/font-wso2_1.2/fonts/font-wso2.svg b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/uuf-template-app/app/units/uuf.unit.theme/public/lib/font-wso2_1.2/fonts/font-wso2.svg index 72a370b157..7701c14851 100644 --- a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/uuf-template-app/app/units/uuf.unit.theme/public/lib/font-wso2_1.2/fonts/font-wso2.svg +++ b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/uuf-template-app/app/units/uuf.unit.theme/public/lib/font-wso2_1.2/fonts/font-wso2.svg @@ -1,221 +1,2016 @@ - + + - - -{ - "fontFamily": "font-wso2", - "majorVersion": 1, - "minorVersion": 2, - "fontURL": "http://wso2-dev-ux.github.io/font-wso2/", - "description": "WSO2 Products User Interface Icons Set\nFont generated by IcoMoon.", - "copyright": "2015", - "designer": "WSO2", - "designerURL": "http://wso2.com", - "license": "Apache License, Version 2.0 MIT", - "licenseURL": "http://wso2.com/licenses", - "version": "Version 1.2", - "fontId": "font-wso2", - "psName": "font-wso2", - "subFamily": "Regular", - "fullName": "font-wso2" -} - - +Created by FontForge 20160407 at Thu Jan 05 15:18:03 2017 + By Jerad + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/uuf-template-app/app/units/uuf.unit.theme/public/lib/font-wso2_1.2/fonts/font-wso2.ttf b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/uuf-template-app/app/units/uuf.unit.theme/public/lib/font-wso2_1.2/fonts/font-wso2.ttf index ab24344e3e..f3c32e5eae 100644 Binary files a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/uuf-template-app/app/units/uuf.unit.theme/public/lib/font-wso2_1.2/fonts/font-wso2.ttf and b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/uuf-template-app/app/units/uuf.unit.theme/public/lib/font-wso2_1.2/fonts/font-wso2.ttf differ diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/uuf-template-app/app/units/uuf.unit.theme/public/lib/font-wso2_1.2/fonts/font-wso2.woff b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/uuf-template-app/app/units/uuf.unit.theme/public/lib/font-wso2_1.2/fonts/font-wso2.woff index 14fc70988e..96a8efabf2 100644 Binary files a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/uuf-template-app/app/units/uuf.unit.theme/public/lib/font-wso2_1.2/fonts/font-wso2.woff and b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/uuf-template-app/app/units/uuf.unit.theme/public/lib/font-wso2_1.2/fonts/font-wso2.woff differ diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/uuf-template-app/app/units/uuf.unit.theme/public/lib/font-wso2_1.2/fonts/font-wso2.woff2 b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/uuf-template-app/app/units/uuf.unit.theme/public/lib/font-wso2_1.2/fonts/font-wso2.woff2 new file mode 100644 index 0000000000..ddaffbaa82 Binary files /dev/null and b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/uuf-template-app/app/units/uuf.unit.theme/public/lib/font-wso2_1.2/fonts/font-wso2.woff2 differ diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/common/PluginConstants.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/common/PluginConstants.java index b44bee0374..bebdafe005 100644 --- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/common/PluginConstants.java +++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/common/PluginConstants.java @@ -68,7 +68,7 @@ public final class PluginConstants { public static final String CXF_REQUEST_URI = "org.apache.cxf.request.uri"; //Web services media types - public static final String SYNCML_MEDIA_TYPE = "application/vnd.syncml.dm+xml;charset=utf-8"; + public static final String SYNCML_MEDIA_TYPE = "application/vnd.syncml.dm+xml"; /** * Discovery service related other constants @@ -342,6 +342,7 @@ public final class PluginConstants { } public static final String REQUESTED_WIN10_VERSION = "3.0"; public static final String REQUESTED_WIN81_VERSION = "2.0"; + public static final String OS_VERSION = "10"; } /** diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/DeviceManagementAdminService.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/DeviceManagementAdminService.java index 5461cf3c0f..936b353ac0 100644 --- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/DeviceManagementAdminService.java +++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/DeviceManagementAdminService.java @@ -76,7 +76,7 @@ import java.util.List; name = "Un-enroll Device", description = "Unregister an Windows device", key = "perm:windows:disenroll", - permissions = {"/device-mgt/devices/disenroll/windows"} + permissions = {"/device-mgt/devices/owning-device/operations/windows/disenroll"} ), @Scope( name = "Factory Reset", diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/DeviceManagementService.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/DeviceManagementService.java index 7a08827df3..602403cd6f 100644 --- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/DeviceManagementService.java +++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/DeviceManagementService.java @@ -21,11 +21,14 @@ package org.wso2.carbon.device.mgt.mobile.windows.api.services; import io.swagger.annotations.*; import org.w3c.dom.Document; +import org.wso2.carbon.apimgt.annotations.api.Scope; +import org.wso2.carbon.apimgt.annotations.api.Scopes; import org.wso2.carbon.device.mgt.common.notification.mgt.NotificationManagementException; import org.wso2.carbon.device.mgt.mobile.windows.api.common.PluginConstants; import org.wso2.carbon.device.mgt.mobile.windows.api.common.exceptions.WindowsConfigurationException; import org.wso2.carbon.device.mgt.mobile.windows.api.common.exceptions.WindowsDeviceEnrolmentException; import org.wso2.carbon.device.mgt.mobile.windows.api.operations.WindowsOperationException; +import org.wso2.carbon.device.mgt.mobile.windows.api.operations.util.Constants; import javax.ws.rs.Consumes; import javax.ws.rs.POST; @@ -38,25 +41,17 @@ import javax.ws.rs.core.Response; /** * Interface for Windows 10 Device management phase. */ -@SwaggerDefinition( - info = @Info( - version = "1.0.0", - title = "", - extensions = { - @Extension(properties = { - @ExtensionProperty(name = "name", value = "Windows 10 Device management"), - @ExtensionProperty(name = "context", - value = "/api/device-mgt/windows/v1.0/management"), - }) - } - ), - tags = { - @Tag(name = "windows", description = "") +@Path("/devicemgt") +@Scopes( + scopes = { + @Scope( + name = "Pending operations", + description = "Register an Android device", + key = "perm:windows:enroll", + permissions = {"/device-mgt/devices/enroll/windows"} + ) } ) -@Api(value = "Windows 10 Device management", - description = "This carries all the resources related to Windows 10 management session message flow.") -@Path("/devicemgt") public interface DeviceManagementService { @Path("/pending-operations") @POST @@ -68,14 +63,10 @@ public interface DeviceManagementService { notes = "Using this API to fetching more information to enroll the Device and " + "getting pending operations.", tags = "Windows Device Management Administrative Service", - authorizations = { - @Authorization( - value = "permission", - scopes = {@AuthorizationScope( - scope = "/device-mgt/devices/enroll/windows", - description = "Getting pending operations and " + - "device information to enroll the device")} - ) + extensions = { + @Extension(properties = { + @ExtensionProperty(name = Constants.SCOPE, value = "perm:android:enroll") + }) } ) @ApiResponses(value = { diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/discovery/DiscoveryService.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/discovery/DiscoveryService.java index db9a8125df..2b856cb85b 100644 --- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/discovery/DiscoveryService.java +++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/discovery/DiscoveryService.java @@ -42,24 +42,7 @@ import javax.xml.ws.soap.SOAPBinding; /** * Interface for Discovery service related operations. */ -@SwaggerDefinition( - info = @Info( - version = "1.0.0", - title = "", - extensions = { - @Extension(properties = { - @ExtensionProperty(name = "name", value = "Windows Discovery Service"), - @ExtensionProperty(name = "context", - value = "/api/device-mgt/windows/v1.0/discovery/post"), - }) - } - ), - tags = { - @Tag(name = "windows", description = "") - } -) -@Api(value = "Windows Discovery Service", - description = "This carries all the resources related to Windows Discovery service.") + @WebService(targetNamespace = PluginConstants.DISCOVERY_SERVICE_TARGET_NAMESPACE, name = "IDiscoveryService") @BindingType(value = SOAPBinding.SOAP12HTTP_BINDING) diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/discovery/beans/DiscoveryRequest.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/discovery/beans/DiscoveryRequest.java index 2c8260fb9c..d6e3a185e7 100644 --- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/discovery/beans/DiscoveryRequest.java +++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/discovery/beans/DiscoveryRequest.java @@ -86,4 +86,13 @@ public class DiscoveryRequest implements Serializable { this.osEdition = osEdition; } -} \ No newline at end of file + public String getApplicationVersion() { + return applicationVersion; + } + + public void setApplicationVersion(String applicationVersion) { + this.applicationVersion = applicationVersion; + } + + +} diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/discovery/impl/DiscoveryServiceImpl.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/discovery/impl/DiscoveryServiceImpl.java index 08e69af07d..2ba4c9abc8 100644 --- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/discovery/impl/DiscoveryServiceImpl.java +++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/discovery/impl/DiscoveryServiceImpl.java @@ -68,9 +68,11 @@ public class DiscoveryServiceImpl implements DiscoveryService { String emailId = discoveryRequest.getEmailId(); String[] userDomains = emailId.split(DELIMITER); String domain = userDomains[DOMAIN_SEGMENT]; + String applicationVersion = discoveryRequest.getApplicationVersion(); + String[] osVersions = applicationVersion .split("\\."); + String os = osVersions[0]; DiscoveryResponse discoveryResponse; - if (PluginConstants.WindowsVersionProperties.REQUESTED_WIN10_VERSION.equals(discoveryRequest.getVersion()) && - FEDERATED.equals(getAuthPolicy())) { + if (PluginConstants.WindowsVersionProperties.OS_VERSION.equals(os) && FEDERATED.equals(getAuthPolicy())) { discoveryResponse = new DiscoveryResponse(); discoveryResponse.setAuthPolicy(FEDERATED); diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/enrollment/EnrollmentService.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/enrollment/EnrollmentService.java index 42af805411..cb3e380917 100644 --- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/enrollment/EnrollmentService.java +++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/enrollment/EnrollmentService.java @@ -35,25 +35,6 @@ import javax.xml.ws.ResponseWrapper; import javax.xml.ws.soap.SOAPBinding; import java.io.UnsupportedEncodingException; -@SwaggerDefinition( - info = @Info( - version = "1.0.0", - title = "", - extensions = { - @io.swagger.annotations.Extension(properties = { - @ExtensionProperty(name = "name", value = "Windows 10 Enrollment Service"), - @ExtensionProperty(name = "context", - value = "/api/device-mgt/windows/v1.0/deviceenrolment/enrollment"), - }) - } - ), - tags = { - @Tag(name = "windows", description = "") - } -) -@Api(value = "Windows 10 Enrollment Service", - description = "This carries all the resources related to Windows enrollment.") - @WebService(targetNamespace = PluginConstants.DEVICE_ENROLLMENT_SERVICE_TARGET_NAMESPACE, name = "enrollment") @BindingType(value = SOAPBinding.SOAP12HTTP_BINDING) public interface EnrollmentService { diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/impl/DeviceManagementServiceImpl.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/impl/DeviceManagementServiceImpl.java index f754ff80cb..38dfde51de 100644 --- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/impl/DeviceManagementServiceImpl.java +++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/impl/DeviceManagementServiceImpl.java @@ -89,7 +89,7 @@ public class DeviceManagementServiceImpl implements DeviceManagementService { if (modifyEnrollWithMoreDetail(request)) { pendingOperations = operationHandler.getPendingOperations(syncmlDocument); - response = operationReply.generateReply(syncmlDocument,pendingOperations); + response = operationReply.generateReply(syncmlDocument, pendingOperations); return Response.status(Response.Status.OK).entity(response).build(); } else { String msg = "Error occurred in while modify the enrollment."; @@ -101,7 +101,7 @@ public class DeviceManagementServiceImpl implements DeviceManagementService { log.error(msg); return Response.status(Response.Status.UNAUTHORIZED).entity(msg).build(); } - } else { + } else { if ((syncmlDocument.getBody().getAlert() != null)) { if (!syncmlDocument.getBody().getAlert().getData().equals(Constants.DISENROLL_ALERT_DATA)) { pendingOperations = operationHandler.getPendingOperations(syncmlDocument); @@ -155,8 +155,8 @@ public class DeviceManagementServiceImpl implements DeviceManagementService { private boolean modifyEnrollWithMoreDetail(Document request) throws WindowsDeviceEnrolmentException, WindowsOperationException { - String devMan; - String devMod; + String devMan = null; + String devMod = null; boolean status = false; String user; SyncmlDocument syncmlDocument; @@ -165,8 +165,15 @@ public class DeviceManagementServiceImpl implements DeviceManagementService { syncmlDocument = SyncmlParser.parseSyncmlPayload(request); ReplaceTag replace = syncmlDocument.getBody().getReplace(); List itemList = replace.getItems(); - devMan = itemList.get(PluginConstants.SyncML.DEVICE_MAN_POSITION).getData(); - devMod = itemList.get(PluginConstants.SyncML.DEVICE_MODEL_POSITION).getData(); + for (ItemTag itemTag : itemList) { + String locURI = itemTag.getSource().getLocURI(); + if (OperationCode.Info.MANUFACTURER.getCode().equals(locURI)) { + devMan = itemTag.getData(); + } + if (OperationCode.Info.DEVICE_MODEL.getCode().equals(locURI)) { + devMod = itemTag.getData(); + } + } user = syncmlDocument.getHeader().getSource().getLocName(); AuthenticationInfo authenticationInfo = new AuthenticationInfo(); authenticationInfo.setUsername(user); diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/syncml/SyncmlService.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/syncml/SyncmlService.java index 7ba8c570b7..d165763aee 100644 --- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/syncml/SyncmlService.java +++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/syncml/SyncmlService.java @@ -37,24 +37,7 @@ import javax.ws.rs.core.Response; /** * Interface for Windows 8.1 enrollment flow. */ -@SwaggerDefinition( - info = @Info( - version = "1.0.0", - title = "", - extensions = { - @Extension(properties = { - @ExtensionProperty(name = "name", value = "Windows 8.1 Device Management Service"), - @ExtensionProperty(name = "context", - value = "/api/device-mgt/windows/v1.0/syncml"), - }) - } - ), - tags = { - @Tag(name = "windows", description = "") - } -) -@Api(value = "Windows 8.1 Device Management Service", - description = "This carries all the resources related to Windows syncml message flow.") + @Path("/devicemanagement") public interface SyncmlService { diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/wstep/CertificateEnrollmentService.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/wstep/CertificateEnrollmentService.java index eb6f7001a6..1b29298b35 100644 --- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/wstep/CertificateEnrollmentService.java +++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/wstep/CertificateEnrollmentService.java @@ -41,24 +41,7 @@ import java.io.UnsupportedEncodingException; /** * Interface of WSTEP implementation. */ -@SwaggerDefinition( - info = @Info( - version = "1.0.0", - title = "", - extensions = { - @Extension(properties = { - @ExtensionProperty(name = "name", value = "Windows 8.1 Enrollment Service"), - @ExtensionProperty(name = "context", - value = "/api/device-mgt/windows/v1.0/deviceenrolment/wstep"), - }) - } - ), - tags = { - @Tag(name = "windows", description = "") - } -) -@Api(value = "Windows Enrollment service Management", - description = "This carries all the resources related to Windows enrollment service.") + @WebService(targetNamespace = PluginConstants.DEVICE_ENROLLMENT_SERVICE_TARGET_NAMESPACE, name = "wstep") @BindingType(value = SOAPBinding.SOAP12HTTP_BINDING) public interface CertificateEnrollmentService { diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/xcep/CertificateEnrollmentPolicyService.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/xcep/CertificateEnrollmentPolicyService.java index 0934824c95..91cb4de1c8 100644 --- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/xcep/CertificateEnrollmentPolicyService.java +++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/xcep/CertificateEnrollmentPolicyService.java @@ -41,24 +41,6 @@ import javax.xml.ws.soap.SOAPBinding; * Interface for MS-XCEP implementation. */ -@SwaggerDefinition( - info = @Info( - version = "1.0.0", - title = "", - extensions = { - @io.swagger.annotations.Extension(properties = { - @ExtensionProperty(name = "name", value = "Windows Enrollment policy Service"), - @ExtensionProperty(name = "context", - value = "/api/device-mgt/windows/v1.0/certificatepolicy/xcep"), - }) - } - ), - tags = { - @Tag(name = "windows", description = "") - } -) -@Api(value = "Windows Enrollment policy Service", - description = "This carries all the resources related to Windows enrollment policy.") @WebService(targetNamespace = PluginConstants.CERTIFICATE_ENROLLMENT_POLICY_SERVICE_TARGET_NAMESPACE, name = "IPolicy") @BindingType(value = SOAPBinding.SOAP12HTTP_BINDING) diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/webapp/WEB-INF/web.xml b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/webapp/WEB-INF/web.xml index 8dbd5e3524..6ea6be132a 100644 --- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/webapp/WEB-INF/web.xml +++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/webapp/WEB-INF/web.xml @@ -48,10 +48,6 @@ 60 - - isAdminService - false - managed-api-enabled true diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/device-view.hbs b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/device-view.hbs index cb00b423a1..3e999e40db 100644 --- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/device-view.hbs +++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/device-view.hbs @@ -52,7 +52,7 @@ Status {{#equal device.status "ACTIVE"}}Active{{/equal}} + class="fw fw-success icon-success">Active{{/equal}} {{#equal device.status "INACTIVE"}}Inactive{{/equal}} {{#equal device.status "BLOCKED"}}