Sundsvallskommun / OpenEMap-WebUserInterface

Open eMap user interface for the main map client
GNU Affero General Public License v3.0
4 stars 5 forks source link

Permalinkfunktion - dela (8-16h) #85

Closed anderserla closed 9 years ago

anderserla commented 10 years ago

Testa om den inbyggda permalinkfunktionen i GeoExt funkar, annars diskuterar vi vidare hur vi kan lösa det.

ghost commented 9 years ago

Det är avgörande hur mycket tillstånd som behöver följa med permalink. Detta kan vara till exempel kartans utbredning, verktygstatus, lagersynlighet, lagerinnehåll (ritat lager) m.m.

anderserla commented 9 years ago

Lagerstatus, ritade objekt och utbredning måste följa med om den ska vara användbar. Verktygsstatus är däremot inte lika viktigt.

anderserla commented 9 years ago

Egen javaservlet med koppling mot egen tabell i MySQL för lagring av status i kartan skattas till 8-16 h Utveckling av befintlig Oemap Admin Services servlet skattas till 30-60 h

ghost commented 9 years ago

Enligt @anderserla kör vi på insatsen estimerat till 8-16h.

ghost commented 9 years ago

Implementation hanteras i PR #186.

ghost commented 9 years ago

Klart. Funktionen påverkas dock av ett problem som bör ha funnits sedan ett tag tillbaks, har gjort en issue på det i #185.

anderserla commented 9 years ago

Testat i utvecklingsmiljö med följande problem

Behövs permalink.extent? Bör man inte uppdatera permalink.config.extent?

ghost commented 9 years ago

Har kollat på "Texten ritas som punkter" och hittat förklaringen. För att text ska visas på rätt rätt krävs ändring i stylemap vilket görs i integration (t.ex debug.html). Jag har inte lagt in det i debug_permalink.html. Om jag minns rätt så är anledningen att det inte är med i default style för att det ger negativa effekter för hantering av punkter utan text, i alla fall var det så förut.

anderserla commented 9 years ago

Vi borde ha en "DrawGeometry default stylemap" som då fungerar för såväl labels, points, paths och polygons. Har du nåt tips om hur vi bör utforma den?

ghost commented 9 years ago

Har fixat så att debug_permalink.html applicerar samma stil i PR #194

ghost commented 9 years ago

Det vore trevligt med en default stil som kan fungera för samtliga fall men tyvärr har jag ingen enkel lösning på detta som jag är säker på fungerar till samma saker som idag.

anderserla commented 9 years ago

Fellogg när jag försöker använda annat databasnamn än "permalinks" Vore bra att kunna konfigurera tabellnamn också.

Databasnamn: dataSource.databaseName=oemapadmin

07:48:09.320 [http-bio-8080-exec-5] ERROR s.r.permalink.GenericExceptionMapper - Unhandled exception will be mapped to JSON and sent as a HTTP 500 reponse org.jooq.exception.DataAccessException: SQL [insert into permalinks.permalinks (data) values (?)]; Table 'permalinks.permalinks' doesn't exist at org.jooq.impl.Utils.translate(Utils.java:1553) ~[jooq-3.5.4.jar:na] at org.jooq.impl.DefaultExecuteContext.sqlException(DefaultExecuteContext.java:609) ~[jooq-3.5.4.jar:na] at org.jooq.impl.AbstractQuery.execute(AbstractQuery.java:355) ~[jooq-3.5.4.jar:na] at org.jooq.impl.InsertImpl.fetchOne(InsertImpl.java:524) ~[jooq-3.5.4.jar:na] at se.riges.permalink.resources.PermalinksResource.post(PermalinksResource.java:67) ~[PermalinksResource.class:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_51] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.7.0_51] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.7.0_51] at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.7.0_51] at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81) ~[jersey-server-2.17.jar:na] at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:164) ~[jersey-server-2.17.jar:na] at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:181) ~[jersey-server-2.17.jar:na] at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:203) ~[jersey-server-2.17.jar:na] at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:101) ~[jersey-server-2.17.jar:na] at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389) ~[jersey-server-2.17.jar:na] at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347) ~[jersey-server-2.17.jar:na] at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102) ~[jersey-server-2.17.jar:na] at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:305) ~[jersey-server-2.17.jar:na] at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) [jersey-common-2.17.jar:na] at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) [jersey-common-2.17.jar:na] at org.glassfish.jersey.internal.Errors.process(Errors.java:315) [jersey-common-2.17.jar:na] at org.glassfish.jersey.internal.Errors.process(Errors.java:297) [jersey-common-2.17.jar:na] at org.glassfish.jersey.internal.Errors.process(Errors.java:267) [jersey-common-2.17.jar:na] at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317) [jersey-common-2.17.jar:na] at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:288) [jersey-server-2.17.jar:na] at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1110) [jersey-server-2.17.jar:na] at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:401) [jersey-container-servlet-core-2.17.jar:na] at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:386) [jersey-container-servlet-core-2.17.jar:na] at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:335) [jersey-container-servlet-core-2.17.jar:na] at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:222) [jersey-container-servlet-core-2.17.jar:na] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) [catalina.jar:7.0.57] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) [catalina.jar:7.0.57] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) [tomcat7-websocket.jar:7.0.57] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) [catalina.jar:7.0.57] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) [catalina.jar:7.0.57] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) [catalina.jar:7.0.57] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) [catalina.jar:7.0.57] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503) [catalina.jar:7.0.57] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) [catalina.jar:7.0.57] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) [catalina.jar:7.0.57] at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) [catalina.jar:7.0.57] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) [catalina.jar:7.0.57] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421) [catalina.jar:7.0.57] at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070) [tomcat-coyote.jar:7.0.57] at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) [tomcat-coyote.jar:7.0.57] at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314) [tomcat-coyote.jar:7.0.57] at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [na:1.7.0_51] at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.7.0_51] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-coyote.jar:7.0.57] at java.lang.Thread.run(Unknown Source) [na:1.7.0_51] Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'permalinks.permalinks' doesn't exist at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.7.0_51] at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) ~[na:1.7.0_51] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) ~[na:1.7.0_51] at java.lang.reflect.Constructor.newInstance(Unknown Source) ~[na:1.7.0_51] at com.mysql.jdbc.Util.handleNewInstance(Util.java:389) ~[mysql-connector-java-5.1.35.jar:5.1.35] at com.mysql.jdbc.Util.getInstance(Util.java:372) ~[mysql-connector-java-5.1.35.jar:5.1.35] at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:980) ~[mysql-connector-java-5.1.35.jar:5.1.35] at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3835) ~[mysql-connector-java-5.1.35.jar:5.1.35] at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3771) ~[mysql-connector-java-5.1.35.jar:5.1.35] at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2435) ~[mysql-connector-java-5.1.35.jar:5.1.35] at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2582) ~[mysql-connector-java-5.1.35.jar:5.1.35] at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2535) ~[mysql-connector-java-5.1.35.jar:5.1.35] at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1911) ~[mysql-connector-java-5.1.35.jar:5.1.35] at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2145) ~[mysql-connector-java-5.1.35.jar:5.1.35] at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2081) ~[mysql-connector-java-5.1.35.jar:5.1.35] at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2066) ~[mysql-connector-java-5.1.35.jar:5.1.35] at com.zaxxer.hikari.proxy.PreparedStatementProxy.executeUpdate(PreparedStatementProxy.java:61) ~[HikariCP-java6-2.3.4.jar:na] at com.zaxxer.hikari.proxy.PreparedStatementJavassistProxy.executeUpdate(PreparedStatementJavassistProxy.java) ~[HikariCP-java6-2.3.4.jar:na] at org.jooq.tools.jdbc.DefaultPreparedStatement.executeUpdate(DefaultPreparedStatement.java:88) ~[jooq-3.5.4.jar:na] at org.jooq.impl.AbstractStoreQuery.execute(AbstractStoreQuery.java:378) ~[jooq-3.5.4.jar:na] at org.jooq.impl.AbstractQuery.execute(AbstractQuery.java:341) ~[jooq-3.5.4.jar:na] ... 47 common frames omitted

ghost commented 9 years ago

Ok nu förstår jag varför detta händer. Jag använder en teknologi (jOOQ) som binder sig mot databasens schema och tydligen ingår databasnamnet i bindningen i alla fall när det gäller MySQL. Detta gör att det inte är helt trivialt att göra varken databasnamn eller tabellnamn konfigurerbart.

Skapar du repo så att det går att jobba vidare med koden när det krävs?

anderserla commented 9 years ago

Closes this one and moves the rest to Sundsvallskommun/OpenEMap-Permalink-Services#1

anderserla commented 9 years ago

Error on long configs. Too small database field @sweco-sebhar ?

ghost commented 9 years ago

Probably. MySQL documentation on TEXT fields does not make it easy to figure out what the maximum size is though or what to do about it. I have only limited experience with MySQL and can't think of single good reason to use it. :)

ghost commented 9 years ago

BTW, Sundsvallskommun/OpenEMap-Permalink-Services does not seem to be accessible, perhaps you made it private?

anderserla commented 9 years ago

TEXT is 2 raised to 16 = 65536 bytes Changed it to MEDIUMTEXT 2 raised to 24 ~ 16 Mb