Package com.volantis.map.operation

Examples of com.volantis.map.operation.ResourceDescriptor


        String rule,
        String fileName,
        String[][] parameters,
        boolean enableGif) throws Exception {

        ResourceDescriptor descriptor = ResourceDescriptorFactory.getInstance()
            .createDescriptor("ics", "image.");
        URL sourceURL = TestUtilities.class.getResource("images/" + fileName);
        descriptor.getInputParameters().setParameterValue(ParameterNames.SOURCE_URL, sourceURL.toExternalForm());

        HttpServletRequestMock request = new HttpServletRequestMock(
            "test-request", expectationContainer);
        String pathInfo = "/" + rule + "/" + fileName;
        request.expects.getPathInfo().returns(pathInfo).any();
        final MockFactory mf = MockFactory.getDefaultInstance();

        // use a vector as we need to return an enumeration for calls to
        // getHeaderNames()
        final Map params = new HashMap();
        request.fuzzy.getParameter(mf.expectsAny()).does(new MethodAction(){
            public Object perform(MethodActionEvent event) throws Throwable {
                return params.get(event.getArguments()[0]);
            }
        }).any();

        StringBuffer url = new StringBuffer(pathInfo);
        char c = '?';
        if (parameters != null) {
            url.append('/');
            for (int i = 0; i < parameters.length; i++) {
                if (parameters[i].length != 2) {
                    throw new IllegalArgumentException(
                        "Supplied parameter " +
                        i +
                        " has incorrect " +
                        "length: expected 2 got " +
                        parameters[i].length);
                }
                url.append(c).append(parameters[i][0]).append("=").append(parameters[i][1]);
                c = '&';
                params.put(parameters[i][0], parameters[i][1]);
            }
        }

        // Hack to enable gif support without having a config file.
        if (enableGif) {
            params.put("v.gifEnabled", "true");
            url.append(c).append("v.gifEnabled=true");
        }

        request.expects.getParameterNames().does(new MethodAction() {
            public Object perform(MethodActionEvent event) throws Throwable {
                return Collections.enumeration(params.keySet());
            }
        }).any();

        final ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        ServletOutputStream os = new ServletOutputStream() {
            public void write(int b) {
                outputStream.write(b);
            }
        };
        HttpServletResponseMock response = new HttpServletResponseMock(
            "test-response", expectationContainer);
        response.expects.getOutputStream().returns(os).any();

        // content type should only be set once
        response.fuzzy.setContentType(mf.expectsAny()).returns().any();
        response.fuzzy.setDateHeader(mf.expectsAny(), mf.expectsAny()).returns().any();
        response.fuzzy.addDateHeader(mf.expectsAny(), mf.expectsAny()).returns().any();
        response.fuzzy.addHeader(mf.expectsAny(), mf.expectsAny()).returns().any();
        response.fuzzy.addIntHeader(mf.expectsAny(), mf.expectsAny()).returns().any();

        response.fuzzy.setContentLength(mf.expectsAny()).returns().any();

        ICSParamBuilder builder = new ICSParamBuilder();
        builder.build(new URI(url.toString()),
                      descriptor.getInputParameters());

        ComponentContextMock componentCtx
                = new ComponentContextMock("componentCtx", expectationContainer);
        ICSOperation op = new ICSOperation();
View Full Code Here


    public void testNotUsingPreservation() throws Exception {

        PreservationParamsBuilder ppb = new PreservationParamsBuilder();

        // override the default repository url with nothing
        ResourceDescriptor descriptor = createResourceDescriptor("image/jpeg",
                                                                 2000);
        Parameters params = descriptor.getInputParameters();
        HttpServletRequest request = createHttpRequest("TestDevice/");

        ppb.process(request, descriptor);

        assertFalse("MaxImageSize shouldn't have been changed ",
View Full Code Here

     */
    private ResourceDescriptor createResourceDescriptor(String ImageMIMEType,
                                                        int ImageSize)
        throws Exception {

        ResourceDescriptor descriptor = ResourceDescriptorFactory.getInstance().
            createDescriptor("an-external-id", "a-resource-type");
        MutableParameters params = descriptor.getInputParameters();
        params.setParameterValue(ParameterNames.SOURCE_IMAGE_MIME_TYPE, ImageMIMEType);
        params.setParameterValue("InputImageSize",
                                 Integer.toString(ImageSize));
        params.setParameterValue(ParameterNames.DEVICE_REPOSITORY_URL,
                                 getRepositoryURL());
View Full Code Here

    public void processRequest(HttpServletRequest request,
                               HttpServletResponse response)
        throws ServletException, IOException {


        ResourceDescriptor descriptor =
            ResourceDescriptorFactory.getInstance()
            .createDescriptor("ICS", "image");


        try {
            // build up the parameters based on the ICS request
            ICSParamBuilder builder = new ICSParamBuilder();
            StringBuffer uri = new StringBuffer();
            uri.append(getStandardisedPathInfo(request));
            String queryString = request.getQueryString();

            if (queryString != null && !"".equals(queryString)) {
                uri.append('?').append(queryString);
            }

            builder.build(new URI(uri.toString()),
                          descriptor.getInputParameters());
           
            // todo: delegate to the Operation Engine here, which does exactly the same
            ServiceReference[] references =
                context.getBundleContext().getServiceReferences(
                    Operation.class.getName(), "(operationType=ics)");
            if (null == references || references.length < 1) {
                throw new OperationNotFoundException(
                    "operation-type-not-found",
                    descriptor.getResourceType());
            } else {
                Result result = Result.UNSUPPORTED;
                for (int i=0; i< references.length &&
                    result == Result.UNSUPPORTED; i++) {

                    ServiceReference ref = references[i];
                    Object service =
                        context.getBundleContext().getService(ref);
                    if (null == service) {
                        Object[] params = new Object[] {
                            ref.getProperty("service.pid"),
                            ref.getBundle().getSymbolicName()
                        };
                        LOGGER.error("service-has-been-unregistered", params);
                    } else {
                        Operation operation =
                            (Operation) service;
                        result  = operation.execute(
                            descriptor, request, response);
                    }
                }
                if (result == Result.UNSUPPORTED) {
                    throw new OperationNotFoundException(
                        "no-plugin-available",
                            new String[] { descriptor.getExternalID(), descriptor.getResourceType() });
                }
            }
        } catch (OperationNotFoundException x) {
            sendError(response, descriptor, HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE, x);
        } catch (ParameterBuilderException x) {
View Full Code Here

TOP

Related Classes of com.volantis.map.operation.ResourceDescriptor

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.