I don’t use Maven, so I’m not used to declaring the swcs I need.

A quick look seems to indicate that you’re missing Basic.

> On Aug 14, 2020, at 1:20 PM, Christofer Dutz <christofer.d...@c-ware.de> 
> wrote:
> 
> Hi all,
> 
> So I am currently doing my first steps in porting an existing framework to 
> Royale. So far I have made good progress.
> I am now able to login to my SpringBoot application using Spring Security 
> using BlazeDS and am currently working on porting a loader application.
> 
> So as soon as a user logs in, it automatically lists the modules this user is 
> allowed to use and then it should load these modules.
> 
> Unfortunately something seems to be not going right with this module. While 
> the others worked nicely, in this case not all referenced classes are output 
> in the built application. Some js files are simply missing. If I manually 
> copy them there and add them to the dependencies in the index.html I can 
> manage to load them, but all in all it’s not really working.
> 
> Not sure what I’m doing wrong :-/
> 
> The code of the loader application should be quite simple and straight 
> forward:
> 
> 
> <?xml version="1.0" encoding="utf-8"?>
> <!--
>  Licensed to the Apache Software Foundation (ASF) under one
>  or more contributor license agreements.  See the NOTICE file
>  distributed with this work for additional information
>  regarding copyright ownership.  The ASF licenses this file
>  to you under the Apache License, Version 2.0 (the
>  "License"); you may not use this file except in compliance
>  with the License.  You may obtain a copy of the License at
> 
>      http://www.apache.org/licenses/LICENSE-2.0
> 
>  Unless required by applicable law or agreed to in writing,
>  software distributed under the License is distributed on an
>  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>  KIND, either express or implied.  See the License for the
>  specific language governing permissions and limitations
>  under the License.
>  -->
> <j:Application xmlns:fx="http://ns.adobe.com/mxml/2009";
>               xmlns:j="library://ns.apache.org/royale/jewel"
>               xmlns:js="library://ns.apache.org/royale/basic"
>               xmlns:html="library://ns.apache.org/royale/html"
>               xmlns:mx="library://ns.apache.org/royale/mx"
>               initialize="init(event)">
> 
>    <j:beads>
>        <js:ApplicationDataBinding/>
>        <js:ClassAliasBead/>
>    </j:beads>
> 
>    <fx:Declarations>
>        <mx:RemoteObject id="moduleService"
>                         destination="moduleService"
>                         fault="onError(event)">
>            <mx:method name="listModulesForCurrentUser" 
> result="onListModulesForCurrentUserResult(event)"/>
>        </mx:RemoteObject>
>    </fx:Declarations>
> 
>    <fx:Style>
>        @namespace "http://www.w3.org/1999/xhtml";;
> 
>        .bgshape
>        {
>            background: #00ff00;
>        }
>        .fgshape
>        {
>            border: 1px solid #000000;
>        }
> 
>    </fx:Style>
> 
>    <fx:Script>
>        <![CDATA[
>        import de.cware.cweb.server.core.types.Enum;
>        import de.cware.cweb.server.module.model.FrontendModule;
> 
>        import org.apache.royale.reflection.registerClassAlias;
> 
>        import mx.logging.ILoggingTarget;
>        import mx.logging.Log;
>        import mx.logging.LogEventLevel;
>        import mx.logging.targets.TraceTarget;
>        import mx.messaging.ChannelSet;
>        import mx.messaging.channels.AMFChannel;
>        import mx.rpc.AsyncToken;
>        import mx.rpc.Responder;
>        import mx.rpc.events.FaultEvent;
>        import mx.rpc.events.ResultEvent;
> 
>        import org.apache.royale.collections.ArrayList;
>        import org.apache.royale.events.Event;
> 
>        private var channelSet:ChannelSet;
> 
>        private var enum:Enum;
> 
>        private function init(event:org.apache.royale.events.Event):void {
>            // ArrayCollection has been renamed to ArrayList.
>            registerClassAlias('flex.messaging.io.ArrayCollection', ArrayList);
> 
>            // Initialize the logging system
>            var traceLogger:ILoggingTarget = new TraceTarget();
>            traceLogger.filters = ["mx.rpc.*", "mx.messaging.*"];
>            traceLogger.level = LogEventLevel.ALL;
>            Log.addTarget(traceLogger);
> 
>            // Get the base url of the application
>            var appUrl:String = getApplicationBaseUrl();
>            trace("Application url " + appUrl);
> 
>            // TODO: For debugging ... remove
>            //appUrl = "http://localhost:8080";;
> 
>            channelSet = new ChannelSet();
> 
>            // Define a short-polling-channel
>            var shortPollingChannel:AMFChannel = new 
> AMFChannel("shortPollingAmf", appUrl + "/messagebroker/short-polling-amf");
>            shortPollingChannel.pollingEnabled = true;
>            shortPollingChannel.pollingInterval = 500;
>            shortPollingChannel.useSmallMessages = true;
>            channelSet.addChannel(shortPollingChannel);
> 
>            moduleService.channelSet = channelSet;
> 
>            // Instantly log in as "guest"
>            var loginToken:AsyncToken = channelSet.login("guest", 
> "somepassword", "UTF-8");
>            loginToken.addResponder(new Responder(onLoginSuccess, 
> onLoginError));
>        }
> 
>        public static function getApplicationBaseUrl():String {
>            var appUrl:String = window.location.href;
>            appUrl = appUrl.substring(0, appUrl.lastIndexOf("/"));
>            return appUrl;
>        }
> 
>        private function onButtonClick(event:MouseEvent):void {
>            var token:AsyncToken = moduleService.listModulesForCurrentUser();
>            // We need to manually register until the support of defining 
> result hanlders
>            // in the mx:method element is supported …
>            token.addResponder(new 
> Responder(onListModulesForCurrentUserResult, onError));
>        }
> 
>        private function onLoginSuccess(event:Event):void {
>            trace("Login Success");
>            // After successfully logging in, we have to load the list of 
> modules
>            // the user is allowed to use.
>            var token:AsyncToken = moduleService.listModulesForCurrentUser();
>            // We need to manually register until the support of defining 
> result hanlders
>            // in the mx:method element is supported …
>            token.addResponder(new 
> Responder(onListModulesForCurrentUserResult, onError));
>        }
> 
>        private function onLoginError(event:Event):void {
>            trace("Login Error " + event);
>        }
> 
>        private function 
> onListModulesForCurrentUserResult(event:ResultEvent):void {
>            trace("Got Module List:");
>            var moduleList:ArrayList = ArrayList(event.result);
>            for each(var frontendModule:FrontendModule in moduleList) {
>                trace("   " + frontendModule.name);
>            }
> 
>        }
> 
>        private function onError(event:FaultEvent):void {
>            trace("Fault");
>        }
>        ]]>
>    </fx:Script>
> 
>    <j:initialView>
>        <j:View width="100%" height="100%">
>            <j:beads>
>                <j:HorizontalCenteredLayout/>
>                <j:Paddings padding="50"/>
>            </j:beads>
> 
>            <j:Card width="460" height="680">
>                <j:CardHeader>
>                    <html:H3 text="Conferences" className="primary-normal"/>
>                </j:CardHeader>
>                <j:CardPrimaryContent>
>                    <!--j:List width="100%" height="100%" 
> dataProvider="{conferences}"
>                            change="onConferenceSelectionChange(event)" 
> labelField="name"/-->
>                    <j:Button width="100%" text="Get Module List" 
> click="onButtonClick(event)">
>                        <!--j:beads>
>                            <j:Disabled disabled="{selectedConference == 
> null}"/>
>                        </j:beads-->
>                    </j:Button>
>                </j:CardPrimaryContent>
>            </j:Card>
>        </j:View>
>    </j:initialView>
> 
> </j:Application>
> 
> The pom also should be quite simple:
> 
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <!--
>  Licensed to the Apache Software Foundation (ASF) under one
>  or more contributor license agreements.  See the NOTICE file
>  distributed with this work for additional information
>  regarding copyright ownership.  The ASF licenses this file
>  to you under the Apache License, Version 2.0 (the
>  "License"); you may not use this file except in compliance
>  with the License.  You may obtain a copy of the License at
> 
>      http://www.apache.org/licenses/LICENSE-2.0
> 
>  Unless required by applicable law or agreed to in writing,
>  software distributed under the License is distributed on an
>  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>  KIND, either express or implied.  See the License for the
>  specific language governing permissions and limitations
>  under the License.
>  -->
> <project xmlns="http://maven.apache.org/POM/4.0.0"; 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
> http://maven.apache.org/maven-v4_0_0.xsd";>
>  <modelVersion>4.0.0</modelVersion>
> 
>  <parent>
>   <groupId>de.cware.cweb</groupId>
>    <artifactId>cweb-frontend</artifactId>
>    <version>1.0.0-SNAPSHOT</version>
>  </parent>
> 
>  <artifactId>cweb-frontend-application</artifactId>
>  <packaging>swf</packaging>
> 
>  <name>C-Web: Frontend: Application</name>
> 
>  <build>
>    <sourceDirectory>src/main/royale</sourceDirectory>
>    <plugins>
>      <!--
>        This plugin doesn't actually do anything in the build,
>        it only makes IntelliJ turn on Flex support
>      -->
>      <plugin>
>        <groupId>net.flexmojos.oss</groupId>
>        <artifactId>flexmojos-maven-plugin</artifactId>
>        <version>7.1.1</version>
>      </plugin>
>      <plugin>
>        <groupId>org.apache.royale.compiler</groupId>
>        <artifactId>royale-maven-plugin</artifactId>
>        <version>${royale.version}</version>
>        <extensions>true</extensions>
>        <configuration>
>          <mainClass>App.mxml</mainClass>
>          <targets>JSRoyale</targets>
>          <debug>true</debug>
>          
> <additionalCompilerOptions>-source-map=true;</additionalCompilerOptions>
>        </configuration>
>        <dependencies>
>          <dependency>
>            <groupId>org.apache.royale.compiler</groupId>
>            <artifactId>compiler-jx</artifactId>
>            <version>${royale.version}</version>
>          </dependency>
>        </dependencies>
>      </plugin>
>    </plugins>
>  </build>
> 
>  <dependencies>
>    <dependency>
>      <groupId>de.cware.cweb</groupId>
>      <artifactId>cweb-core-frontend-utils</artifactId>
>      <version>1.0.0-SNAPSHOT</version>
>      <type>swc</type>
>      <classifier>js</classifier>
>    </dependency>
>    <dependency>
>      <groupId>de.cware.cweb</groupId>
>      <artifactId>cweb-module-frontend-utils</artifactId>
>      <version>1.0.0-SNAPSHOT</version>
>      <type>swc</type>
>      <classifier>js</classifier>
>    </dependency>
> 
>    <dependency>
>      <groupId>org.apache.royale.framework</groupId>
>      <artifactId>Core</artifactId>
>      <version>${royale.version}</version>
>      <type>swc</type>
>      <classifier>js</classifier>
>    </dependency>
>    <dependency>
>      <groupId>org.apache.royale.framework</groupId>
>      <artifactId>Jewel</artifactId>
>      <version>${royale.version}</version>
>      <type>swc</type>
>      <classifier>js</classifier>
>    </dependency>
>    <dependency>
>      <groupId>org.apache.royale.framework</groupId>
>      <artifactId>Language</artifactId>
>      <version>${royale.version}</version>
>      <type>swc</type>
>      <classifier>js</classifier>
>    </dependency>
>    <dependency>
>      <groupId>org.apache.royale.framework</groupId>
>      <artifactId>Network</artifactId>
>      <version>${royale.version}</version>
>      <type>swc</type>
>      <classifier>js</classifier>
>    </dependency>
>    <dependency>
>      <groupId>org.apache.royale.framework</groupId>
>      <artifactId>Reflection</artifactId>
>      <version>${royale.version}</version>
>      <type>swc</type>
>      <classifier>js</classifier>
>    </dependency>
>    <dependency>
>      <groupId>org.apache.royale.framework</groupId>
>      <artifactId>MXRoyale</artifactId>
>      <version>${royale.version}</version>
>      <type>swc</type>
>      <classifier>js</classifier>
>    </dependency>
> 
>    <!-- Use the Jewel Theme -->
>    <dependency>
>      <groupId>org.apache.royale.framework</groupId>
>      <artifactId>JewelTheme</artifactId>
>      <version>${royale.version}</version>
>      <type>swc</type>
>      <scope>theme</scope>
>      <classifier>js</classifier>
>    </dependency>
>  </dependencies>
> 
> </project>
> 
> Anyone can spot something bad happening here?
> 
> Chris
> 

Reply via email to