Skip to content

Commit

Permalink
Reducing complexity - redundant constants for archive types
Browse files Browse the repository at this point in the history
Signed-off-by: David Matějček <david.matejcek@omnifish.ee>
  • Loading branch information
dmatej committed Sep 18, 2022
1 parent 5b31b87 commit f22ee37
Show file tree
Hide file tree
Showing 10 changed files with 184 additions and 190 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/*
* Copyright (c) 2022 Contributors to the Eclipse Foundation
* Copyright (c) 2012, 2018 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
Expand All @@ -16,19 +17,18 @@

package org.glassfish.appclient.server.connector;

import java.io.IOException;
import java.util.logging.Logger;
import java.util.jar.Manifest;
import java.util.jar.Attributes;

import jakarta.inject.Inject;
import jakarta.inject.Singleton;

import java.io.IOException;
import java.util.jar.Attributes;
import java.util.jar.Manifest;
import java.util.logging.Logger;

import org.glassfish.api.deployment.archive.ArchiveDetector;
import org.glassfish.api.deployment.archive.ArchiveHandler;
import org.glassfish.api.deployment.archive.ArchiveType;
import org.glassfish.api.deployment.archive.ReadableArchive;
import org.glassfish.deployment.common.DeploymentUtils;
import org.glassfish.hk2.api.ServiceLocator;
import org.jvnet.hk2.annotations.Service;

Expand All @@ -39,12 +39,11 @@
*
* @author sanjeeb.sahoo@oracle.com
*/
@Service(name = CarDetector.ARCHIVE_TYPE)
@Service(name = CarType.ARCHIVE_TYPE)
@Singleton
public class CarDetector implements ArchiveDetector {
public static final String CAR_DETECTOR_RANK_PROP = "glassfish.car.detector.rank";
public static final int DEFAULT_CAR_DETECTOR_RANK = 500;
public static final String ARCHIVE_TYPE = CarType.ARCHIVE_TYPE;
private static final String CAR_DETECTOR_RANK_PROP = "glassfish.car.detector.rank";
private static final int DEFAULT_CAR_DETECTOR_RANK = 500;

@Inject
private ServiceLocator serviceLocator;
Expand All @@ -54,7 +53,7 @@ public class CarDetector implements ArchiveDetector {
private CarType archiveType;
private ArchiveHandler archiveHandler;

private Logger logger = Logger.getLogger(getClass().getPackage().getName());
private static final Logger LOG = Logger.getLogger(CarDetector.class.getName());

private static final String APPLICATION_CLIENT_XML = "META-INF/application-client.xml";
private static final String SUN_APPLICATION_CLIENT_XML = "META-INF/sun-application-client.xml";
Expand Down Expand Up @@ -91,11 +90,11 @@ public ArchiveHandler getArchiveHandler() {
synchronized (this) {
if (archiveHandler == null) {
try {
sniffer.setup(null, logger);
sniffer.setup(null, LOG);
} catch (IOException e) {
throw new RuntimeException(e);
}
archiveHandler = serviceLocator.getService(ArchiveHandler.class, ARCHIVE_TYPE);
archiveHandler = serviceLocator.getService(ArchiveHandler.class, CarType.ARCHIVE_TYPE);
}
return archiveHandler;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/*
* Copyright (c) 2022 Contributors to the Eclipse Foundation
* Copyright (c) 2012, 2018 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
Expand Down Expand Up @@ -28,14 +29,9 @@
@Service(name = CarType.ARCHIVE_TYPE)
@jakarta.inject.Singleton
public class CarType extends ArchiveType {
/**
*
*/

public static final String ARCHIVE_TYPE = "car";

/**
*
*/
public static final String ARCHIVE_EXTENSION = ".car";

public CarType() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/*
* Copyright (c) 2022 Contributors to the Eclipse Foundation
* Copyright (c) 2012, 2018 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
Expand All @@ -18,41 +19,47 @@

import com.sun.enterprise.deploy.shared.AbstractArchiveHandler;
import com.sun.enterprise.loader.ASURLClassLoader;
import com.sun.enterprise.security.perms.SMGlobalPolicyUtil;
import com.sun.enterprise.security.perms.PermsArchiveDelegate;
import org.glassfish.api.deployment.DeploymentContext;
import org.glassfish.api.deployment.archive.ArchiveDetector;
import org.glassfish.api.deployment.archive.ReadableArchive;
import org.glassfish.appclient.server.connector.CarDetector;
import org.jvnet.hk2.annotations.Service;
import com.sun.enterprise.security.perms.SMGlobalPolicyUtil;

import jakarta.inject.Inject;
import jakarta.inject.Named;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;

import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.security.PrivilegedActionException;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.net.URL;

import static javax.xml.stream.XMLStreamConstants.*;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;

import org.glassfish.api.deployment.DeploymentContext;
import org.glassfish.api.deployment.archive.ArchiveDetector;
import org.glassfish.api.deployment.archive.ReadableArchive;
import org.glassfish.appclient.server.connector.CarType;
import org.glassfish.appclient.server.core.jws.JavaWebStartInfo;
import org.jvnet.hk2.annotations.Service;

import static javax.xml.stream.XMLStreamConstants.END_DOCUMENT;
import static javax.xml.stream.XMLStreamConstants.END_ELEMENT;
import static javax.xml.stream.XMLStreamConstants.START_ELEMENT;

/**
* @author sanjeeb.sahoo@oracle.com
*/
@Service(name = CarDetector.ARCHIVE_TYPE)
@Service(name = CarType.ARCHIVE_TYPE)
public class CarHandler extends AbstractArchiveHandler {

@Inject @Named(CarDetector.ARCHIVE_TYPE)
@Inject
@Named(CarType.ARCHIVE_TYPE)
private ArchiveDetector detector;

private static final Logger _logger = Logger.getLogger(JavaWebStartInfo.APPCLIENT_SERVER_MAIN_LOGGER,
private static final Logger LOG = Logger.getLogger(JavaWebStartInfo.APPCLIENT_SERVER_MAIN_LOGGER,
JavaWebStartInfo.APPCLIENT_SERVER_LOGMESSAGE_RESOURCE);

@Override
Expand All @@ -67,9 +74,9 @@ public String getVersionIdentifier(ReadableArchive archive) {
GFCarXMLParser gfXMLParser = new GFCarXMLParser();
versionIdentifier = gfXMLParser.extractVersionIdentifierValue(archive);
} catch (IOException e) {
_logger.log(Level.SEVERE, e.getMessage());
LOG.log(Level.SEVERE, e.getMessage());
} catch (XMLStreamException e) {
_logger.log(Level.SEVERE, e.getMessage());
LOG.log(Level.SEVERE, e.getMessage());
}
return versionIdentifier;

Expand Down Expand Up @@ -114,7 +121,7 @@ public ASURLClassLoader run() {
}

private static class GFCarXMLParser {
private XMLStreamReader parser = null;
private XMLStreamReader parser;

protected String extractVersionIdentifierValue(ReadableArchive archive) throws XMLStreamException, IOException {

Expand Down Expand Up @@ -180,8 +187,5 @@ private void skipSubTree(String name) throws XMLStreamException {
}
}
}

}


}
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/*
* Copyright (c) 2022 Contributors to the Eclipse Foundation
* Copyright (c) 2012, 2020 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
Expand All @@ -17,21 +18,21 @@
package com.sun.enterprise.connectors.connector.module;

import com.sun.enterprise.deploy.shared.FileArchive;
import org.glassfish.api.deployment.archive.ArchiveDetector;
import org.glassfish.api.deployment.archive.ArchiveHandler;
import org.glassfish.api.deployment.archive.ArchiveType;
import org.glassfish.api.deployment.archive.ReadableArchive;
import com.sun.enterprise.deployment.deploy.shared.Util;
import org.glassfish.deployment.common.GenericAnnotationDetector;

import org.jvnet.hk2.annotations.Service;
import org.glassfish.hk2.api.ServiceLocator;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;

import java.io.IOException;
import java.util.logging.Logger;

import jakarta.inject.Inject;
import org.glassfish.api.deployment.archive.ArchiveDetector;
import org.glassfish.api.deployment.archive.ArchiveHandler;
import org.glassfish.api.deployment.archive.ArchiveType;
import org.glassfish.api.deployment.archive.ReadableArchive;
import org.glassfish.deployment.common.GenericAnnotationDetector;
import org.glassfish.hk2.api.ServiceLocator;
import org.jvnet.hk2.annotations.Service;

/**
* Detects rar type archives.
Expand All @@ -40,15 +41,15 @@
*
* @author sanjeeb.sahoo@oracle.com
*/
@Service(name = RarDetector.ARCHIVE_TYPE)
@Service(name = RarType.ARCHIVE_TYPE)
@Singleton
public class RarDetector implements ArchiveDetector {
private static final Class[] connectorAnnotations = new Class[]{
jakarta.resource.spi.Connector.class};

public static final String RAR_DETECTOR_RANK_PROP = "glassfish.rar.detector.rank";
public static final int DEFAULT_RAR_DETECTOR_RANK = 300;
public static final String ARCHIVE_TYPE = RarType.ARCHIVE_TYPE;
private static final Class<?>[] connectorAnnotations = new Class[] {jakarta.resource.spi.Connector.class};

private static final String RAR_DETECTOR_RANK_PROP = "glassfish.rar.detector.rank";
private static final int DEFAULT_RAR_DETECTOR_RANK = 300;

@Inject
private RarType archiveType;
@Inject
Expand All @@ -57,52 +58,56 @@ public class RarDetector implements ArchiveDetector {
private ServiceLocator services;

private ArchiveHandler archiveHandler; // lazy initialisation
private Logger logger = Logger.getLogger(getClass().getPackage().getName());
private static final Logger LOG = Logger.getLogger(RarDetector.class.getName());

private static final String RA_XML = "META-INF/ra.xml";
private static final String RAR_EXTENSION = ".rar";

@Override
public int rank() {
return Integer.getInteger(RAR_DETECTOR_RANK_PROP, DEFAULT_RAR_DETECTOR_RANK);
}


@Override
public ArchiveHandler getArchiveHandler() {
synchronized (this) {
if (archiveHandler == null) {
try {
sniffer.setup(null, logger);
sniffer.setup(null, LOG);
} catch (IOException e) {
throw new RuntimeException(e);
}
archiveHandler = services.getService(ArchiveHandler.class, ARCHIVE_TYPE);
archiveHandler = services.getService(ArchiveHandler.class, RarType.ARCHIVE_TYPE);
}
return archiveHandler;
}
}


@Override
public ArchiveType getArchiveType() {
return archiveType;
}


/**
* {@inheritDoc}
*/
@Override
public boolean handles(ReadableArchive archive) throws IOException {
boolean handles = false;
try{
try {
if (Util.getURIName(archive.getURI()).endsWith(RAR_EXTENSION)) {
return true;
}

handles = archive.exists(RA_XML);
}catch(IOException ioe){
//ignore
} catch (IOException ioe) {
// ignore
}
if (!handles && (archive instanceof FileArchive)) {
GenericAnnotationDetector detector =
new GenericAnnotationDetector(connectorAnnotations);
GenericAnnotationDetector detector = new GenericAnnotationDetector(connectorAnnotations);
handles = detector.hasAnnotationInArchive(archive);
}
return handles;
Expand Down

0 comments on commit f22ee37

Please sign in to comment.