Hi Harbs, thanks for that ... I'm currently going through the problem with Carlos. In the end if I removed the dependencies to my super tiny two other libraries the application started ... so I'm trying to narrow down the problem.
Chris Am 14.08.20, 12:32 schrieb "Harbs" <harbs.li...@gmail.com>: 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 >