Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ There are several branches in the repository. Here are the ones that you should
- [Gradle 8.10] (https://gradle.org/install/)
Gradle is an open source build automation system.

- [Tomcat 9] (https://tomcat.apache.org/download-90.cgi)
- [Tomcat 11] (https://tomcat.apache.org/download-11.cgi)
Apache Tomcat is an open source software implementation of the Java Servlet and JavaServer Pages technologies.

- [Node v18] (https://nodejs.org/)
Expand Down
18 changes: 1 addition & 17 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,24 +1,8 @@
ext.fireflyPath = rootDir.path

allprojects {
defaultTasks 'preselect'
}
apply from: "$fireflyPath/buildScript/base.gincl"

subprojects {
apply plugin: "java"
apply from: "$fireflyPath/buildScript/global.gincl"
apply from: "$fireflyPath/buildScript/tasks.gincl"
}

task purge {
description= 'Remove all build files from this project, including node_module.'

doLast {
println('Removes all firefly build directories.')
delete "${fireflyPath}/build", "${fireflyPath}/jars/build", "${fireflyPath}/node_modules"
}
}

task preselect {
description= 'A placeholder task to designate the task to run for each project. Similar to defaultTasks.'
}
48 changes: 48 additions & 0 deletions buildScript/base.gincl
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
import java.nio.file.Path
import java.nio.file.Paths
import java.nio.file.Files

def deleteLink(String filePath) {
Path path = Paths.get(filePath)
if (Files.exists(path) && Files.isSymbolicLink(path)) {
println("Deleting symlink: $filePath")
Files.delete(path) // deletes symlink only
}
}

allprojects {
defaultTasks 'preselect'
}

task preselect {
description= 'A placeholder task to designate the task to run for each project. Similar to defaultTasks.'
}

task purge {
description = 'Removes all build files from this project, including node_modules, Maven cache, and Gradle cache.'

doLast {
println('Removing build directories, including node_modules, Maven cache, and Gradle cache.')
delete "${rootDir}/build",
"${rootDir}/jars/build",
"${rootDir}/node_modules",
"${rootDir}/.gradle"

println('Removing Maven and Gradle caches...')
delete "${System.getProperty('user.home')}/.m2/repository",
"${System.getProperty('user.home')}/.gradle/caches"

deleteLink("${rootDir}/yarn.lock")
deleteLink("${rootDir}/package.json")
deleteLink("${rootDir}/config/test")

}
}

task clean {
description= 'Removes all build files except installed libraries, e.g. node_modules, Maven cache.'
doLast {
println('Removing all build directories.')
delete "${rootDir}/build", "${rootDir}/jars/build"
}
}
14 changes: 10 additions & 4 deletions buildScript/dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,18 @@ def libPath = "$fireflyPath/jars"
//project.ext.properties.each{ k, v -> println "${k}:${v}\n" }

repositories {
mavenCentral()
maven {
url "https://maven.repository.redhat.com/ga/"
content {
includeGroup "org.josso"
}
}
flatDir {
name 'firefly_repo'
dirs "$libPath/build",
"$libPath/starlink"
}
mavenCentral()
}

configurations {
Expand All @@ -35,7 +38,7 @@ dependencies {
// ============== from maven central ===============

// apache commons
implementation 'commons-fileupload:commons-fileupload:1.2.2', 'commons-io:commons-io:2.4', 'commons-lang:commons-lang:2.2', 'org.apache.commons:commons-csv:1.0', 'org.apache.commons:commons-compress:1.28.0'
implementation 'commons-io:commons-io:2.4', 'commons-lang:commons-lang:2.2', 'org.apache.commons:commons-csv:1.0', 'org.apache.commons:commons-compress:1.28.0'

// axis Web Services SOAP
implementation 'axis:axis:1.4'
Expand Down Expand Up @@ -78,7 +81,10 @@ dependencies {
implementation 'org.reflections:reflections:0.9.11'

// servlet API
implementation 'javax.servlet:javax.servlet-api:3.1.0'
implementation 'jakarta.servlet:jakarta.servlet-api:6.1.0'

// FileUpload Jakarta fork for servlet api 6.0+
implementation 'org.apache.commons:commons-fileupload2-jakarta:2.0.0-M1'

// spring jdbc
implementation 'org.springframework:spring-jdbc:2.5.5'
Expand All @@ -91,7 +97,7 @@ dependencies {
implementation 'javax.validation:validation-api:1.1.0.Final'

// websocket
implementation 'javax.websocket:javax.websocket-api:1.1'
implementation 'jakarta.platform:jakarta.jakartaee-web-api:10.0.0'

// junit for java test
implementation 'junit:junit:4.12'
Expand Down
17 changes: 0 additions & 17 deletions config/web.xml
Original file line number Diff line number Diff line change
Expand Up @@ -27,23 +27,6 @@
<url-pattern>/firefly_loader.js</url-pattern>
</filter-mapping>

<!--GZipFilter-->
<filter>
<filter-name>GZipFilter</filter-name>
<filter-class>net.sf.ehcache.constructs.web.filter.GzipFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>GZipFilter</filter-name>
<url-pattern>*.html</url-pattern>
<url-pattern>*.css</url-pattern>
<url-pattern>*.js</url-pattern>
<url-pattern>/sticky/CmdSrv</url-pattern>
<url-pattern>/CmdSrv/sync</url-pattern>
<url-pattern>/CmdSrv/async</url-pattern>
<url-pattern>/CmdSrv/async/*</url-pattern>
<url-pattern>/sticky/firefly/events</url-pattern>
</filter-mapping>

<!--CORS Filter-->
<filter>
<filter-name>CorsFilter</filter-name>
Expand Down
11 changes: 9 additions & 2 deletions docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ RUN apt-get update \
# cleanup
&& rm -rf /var/lib/apt/lists/*;

COPY --from=tomcat:9.0-jre21-temurin-jammy /usr/local/tomcat /usr/local/tomcat
COPY --from=tomcat:11.0.11-jre21-temurin-jammy /usr/local/tomcat /usr/local/tomcat


ENV CATALINA_HOME=/usr/local/tomcat \
Expand Down Expand Up @@ -106,7 +106,7 @@ RUN gradle -Penv=${env} -PBranchOverride=${BranchOverride} ${target}
# /external : default external data directory visible to Firefly


FROM tomcat:9.0-jre21-temurin-jammy
FROM tomcat:11.0.11-jre21-temurin-jammy

ARG build_dir
ARG user=tomcat
Expand Down Expand Up @@ -164,6 +164,13 @@ COPY firefly/docker/local.xml conf/Catalina/localhost
#copy all wars, typically there should only be one
COPY --from=builder /opt/work/${build_dir}/build/dist/*.war ${CATALINA_HOME}/webapps-ref/

# Turn on GZIP compression by adding these attributes to the Tomcat connector:
# - compression="on" → turn on response compression
# - useSendfile="false" → avoids bypassing compression for static files
# - compressibleMimeType → list of text-based formats to compress (HTML, CSS, JS, JSON, VOTable, XML, CSV, SVG, Fonts)
RUN sed -i 's/<Connector port="8080" protocol="HTTP\/1.1"/<Connector port="8080" protocol="HTTP\/1.1" compression="on" useSendfile="false" compressibleMimeType="text\/html,text\/plain,text\/css,text\/javascript,application\/javascript,application\/json,application\/xml,text\/xml,application\/x-votable+xml,application\/x-yaml,application\/ld+json,image\/svg+xml,text\/csv,application\/xhtml+xml,application\/rss+xml,application\/atom+xml,application\/x-font-ttf,font\/otf,font\/woff,font\/woff2"/' \
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you make this a script? it is very hard to understand.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also is there any related setup to the local developer environment?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The changes to developer's setup are here: https://github.com/IPAC-SW/irsa-ife/pull/440/files#diff-865bcc67bc7ab28b0cfc427453a74b51aae44b381a574d6769cf78e1f2cf4c44

I don’t think a script would help, but I can add more comments to explain what it’s doing.

$CATALINA_HOME/conf/server.xml

# preinstall DuckDB extensions; remember to update version when DuckDB is updated
ARG DUCKDB_TARGET=v1.1.3/linux_amd64_gcc4
RUN mkdir -p temp/$DUCKDB_TARGET \
Expand Down
1 change: 1 addition & 0 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
org.gradle.jvmargs=-Xms256m -Xmx8048m
org.gradle.daemon=false
6 changes: 3 additions & 3 deletions src/firefly/java/edu/caltech/ipac/firefly/api/Async.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@
import edu.caltech.ipac.firefly.core.background.JobInfo;
import edu.caltech.ipac.firefly.core.background.JobManager;

import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.ServletOutputStream;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.time.Instant;
import java.util.Comparator;
import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
import edu.caltech.ipac.firefly.server.util.Logger;
import edu.caltech.ipac.util.StringUtils;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.http.Cookie;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
import edu.caltech.ipac.util.AppProperties;
import edu.caltech.ipac.util.cache.StringKey;

import javax.servlet.http.Cookie;
import jakarta.servlet.http.Cookie;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import edu.caltech.ipac.firefly.server.util.Logger;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.ServletOutputStream;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

/**
* Date: 10/24/16
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@
import edu.caltech.ipac.firefly.server.ws.WsServerCommands;
import edu.caltech.ipac.firefly.core.background.Job;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.Map;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,13 @@
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.websocket.HandshakeResponse;
import javax.websocket.server.HandshakeRequest;
import jakarta.servlet.ServletContext;
import jakarta.servlet.ServletContextEvent;
import jakarta.servlet.ServletContextListener;
import jakarta.servlet.annotation.WebListener;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.websocket.server.HandshakeRequest;
import java.io.File;
import java.io.IOException;
import java.lang.management.ManagementFactory;
Expand Down Expand Up @@ -401,15 +400,6 @@ public static RequestAgent getHttpRequestAgent(HttpServletRequest request, HttpS
return new RequestAgent.HTTP(request, response);
}

public static RequestAgent getWsRequestAgent(HandshakeRequest request, HandshakeResponse response) {
// this is an abstraction point. this class can be loaded from configuration.
if (request instanceof HttpServletRequest) {
return new RequestAgent.HTTP((HttpServletRequest) request, (HttpServletResponse) response);
} else {
return null;
}
}

//====================================================================
//
//====================================================================
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@
import edu.caltech.ipac.firefly.server.util.Logger;
import edu.caltech.ipac.firefly.util.event.Name;

import javax.websocket.CloseReason;
import javax.websocket.OnClose;
import javax.websocket.OnError;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;
import jakarta.websocket.CloseReason;
import jakarta.websocket.OnClose;
import jakarta.websocket.OnError;
import jakarta.websocket.OnMessage;
import jakarta.websocket.OnOpen;
import jakarta.websocket.Session;
import jakarta.websocket.server.ServerEndpoint;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@
import edu.caltech.ipac.firefly.server.util.StopWatch;
import edu.caltech.ipac.util.cache.CacheManager;

import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.*;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@
*/
package edu.caltech.ipac.firefly.server.filters;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.Filter;
import jakarta.servlet.FilterChain;
import jakarta.servlet.FilterConfig;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
*/
package edu.caltech.ipac.firefly.server.filters;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.Filter;
import jakarta.servlet.FilterChain;
import jakarta.servlet.FilterConfig;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Date;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,8 @@
import edu.caltech.ipac.util.StringUtils;
import org.json.simple.JSONObject;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.math.BigInteger;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
Expand Down
Loading